diff --git a/.eslintignore b/.eslintignore index 47bab751c9..0ff323b53a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1 +1,2 @@ -modules/babylonlabs-io-btc-staking-ts \ No newline at end of file +modules/babylonlabs-io-btc-staking-ts +modules/realfi-partner-sdk \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 4b01fe035d..0fb41359b9 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,4 +8,5 @@ CHANGELOG.md flake.lock modules/babylonlabs-io-btc-staking-ts/ +modules/realfi-partner-sdk/ /.nx/workspace-data \ No newline at end of file diff --git a/.yarnrc b/.yarnrc index 142dad8170..0e372126f3 100644 --- a/.yarnrc +++ b/.yarnrc @@ -1 +1,2 @@ registry "https://registry.npmjs.org" +ignore-engines true diff --git a/modules/realfi-partner-sdk/.gitignore b/modules/realfi-partner-sdk/.gitignore new file mode 100644 index 0000000000..b0066d5b9f --- /dev/null +++ b/modules/realfi-partner-sdk/.gitignore @@ -0,0 +1,8 @@ +node_modules/ +dist/ +*.tsbuildinfo +.nyc_output +coverage +*.log +.env +.DS_Store diff --git a/modules/realfi-partner-sdk/CHANGELOG.md b/modules/realfi-partner-sdk/CHANGELOG.md new file mode 100644 index 0000000000..238890b97d --- /dev/null +++ b/modules/realfi-partner-sdk/CHANGELOG.md @@ -0,0 +1,479 @@ +# @realfi-co/realfi-partner-sdk + +## 2.14.0 + +### Minor Changes + +- Support SundaeSwap V4 swaps on equal-weight constant-sum pools. + + `quoteSwap` now accepts those V4 pools alongside V3 and Stableswaps, so callers + no longer branch on `pool.version` to quote. A constant-sum pool holds its price + whatever the order size, so the quote is exact and `priceImpact` is `0`. Other + V4 curves are not priced — see below. + + The V4 quote cannot go through `SundaeUtils.getSwapOutput`, which dispatches on + `pool.curve` — a field the Sundae API never populates, so it falls through to + `Unsupported v4 pool curve: undefined`. Instead we run `ConstantSumPool`'s + arithmetic from `@sundaeswap/math` directly, carrying the pool's shared price + weight through the fee and the quotient rather than dividing it out (the two + roundings only collapse at a weight of `1`). Two settlements captured live from + `api.preview.sundae.fi` pin it to what Sundae's engine actually produces. + + A V4 pool's swap math follows its invariant module, not its contract version, so + "V4" does not by itself mean constant-sum. The quote refuses any pool it cannot + confirm is constant-sum with equal price weights — including one whose `curve` + or `prices` are simply absent, since absent means unasked rather than 1:1. The + error names pool discovery, which supplies both. + + `slippage` is validated and then ignored on the V4 path. A linear pool has no + price movement to buffer, and the surplus above a V4 order's `min_received` is + unbound on chain: the scooper keeps whatever the fill clears the floor by. Slack + in the floor is therefore not a safety margin, it is skimmable, so + `minReceived` sits exactly at `estimatedReceived`. For the same reason the quote + does not cap its output at the quoted pool's reserve, though `ConstantSumPool` + does — a V4 order is bound to no pool, so capping would silently lower the + owner's only guarantee. + + New `quoteSwapInput` is the inverse of `quoteSwap`: it returns the smallest + supply that still yields a wanted output. A swap form needs this direction when + the user edits the receive field rather than the pay field, and + `SundaeUtils.getSwapInput` fails on a V4 pool for the same missing-`curve` + reason as `getSwapOutput`. Like the forward direction it is version-aware, so + callers use one function for all supported pools. + + New `buildSwapIntentTx` places a V4 swap. It takes no pool, because a V4 order + names none: it is an offer and a floor, and the scooper decides how to fill it. + It routes through `swapIntent` rather than `swap`, since `TxBuilderV4.swap` + throws by design — a swap order carries the route constraint, which is outside + the audited launch surface. `buildSwapOrderTx` now rejects V4 with a pointer to + it rather than the misleading "unsupported version". + + Version support becomes a table keyed by every Sundae contract version, with a + column per question: `swap` (can we quote it and place an order) and + `buildAgainstPool` (does the order name the pool). A new Sundae version now + fails to compile until both are answered, rather than defaulting to unsupported + because nobody remembered a second list. `isSupportedSundaeSwapVersion` reads + the second column and still excludes V4; the new + `isSwappableSundaeSwapVersion` reads the first and includes it. + + Pool discovery's `buildable` scope now uses the first column, so a V4 pool is + discoverable through `buildable` and `curated` rather than only through `all`. + `buildable` means "the SDK can build an order for this pool", and for V4 that + order is a pool-less intent. The operational pool-selection scripts are + unaffected: they re-check `isSupportedSundaeSwapVersion` themselves, so they + still resolve exactly one pool per pair. + + Pool discovery now fills in `curve` and `prices` itself. Sundae's own pool + query selects neither, so every v4 pool arrived with both undefined and anything + downstream had to assume the curve rather than check it. A small second request + supplies them, and it only runs for pools that are missing the fields — so the + day Sundae selects them upstream the request stops firing on its own and the + module is pure cleanup to delete. + + Weights are only mapped when they can be mapped safely: a v4 pool may hold up to + 16 assets while `IPoolData.prices` is a two-tuple, so an unequal set that cannot + be aligned to the pair is left unset rather than guessed at. + + New `selectV4QuotePool` picks which V4 pool's fee should quote a swap. It takes + a mixed candidate list, ignores every non-V4 pool and every V4 pool the quote + would refuse, and returns the cheapest of what is left — or undefined, meaning + the caller should fall back to another version. Cheapest is the safe rule as + well as the best rate: a pool overstating its fee would lower `min_received`, + so a hostile pool can only win by genuinely being the cheapest. + + It exists so the eligibility rules have one home. A caller choosing its own V4 + pool has to reproduce all of them — curve, price weights, decimals, fee, usable + reserves — and gets no error until quoting, by which point it has already + skipped the working Stableswap pool it could have used instead. Checking only + the curve is the easy version of that mistake, and it is not enough: discovery + reads the curve from the invariant module but leaves `prices` unset when the + weights cannot be aligned to the pair, so a pool can carry a constant-sum curve + and still be unpriceable. Selection is deliberately a little stricter than the + quote — it requires both reserves, where a single quote only checks the side it + pays out, because a swap form trades in both directions against one pool. + + Requires `@sundaeswap/core` 2.13.1, which is where V4 lands. + +## 2.13.1 + +### Patch Changes + +- Fix transaction building around timelocks and protocol settings: + - Resolve the native-script shape from a timelock UTxO's locking address, allowing claims from both retail and treasury/multisig unstake flows. + - Retry transient not-found responses when reading singleton NFT UTxOs, including the protocol settings proxy, while preserving the provider error if the retry budget is exhausted. + - Reserve the required minimum ADA before re-locking a V1.1 settings datum, so settings updates remain balanced when the datum grows. + +## 2.13.0 + +### Minor Changes + +- Let `protocolValidators` carry more than one generation of a deployment, so a + consumer can span a script cutover instead of failing closed across it. + + A cutover changes the proxy datum's `logic` hash on chain, and consumers learn + the new hashes from config, which cannot land in the same instant. With a + single generation, every consumer is failing closed for the width of a deploy — + observed as a full transaction outage on preprod. + + Pass an array of blueprint maps and detection selects the generation whose + protocol orchestrator matches the deployed `logic` hash, applying that + generation whole. Passing a single map behaves exactly as before, and when no + generation matches, detection still fails closed rather than guessing. + + Listing both generations in one map cannot work and is unsafe: the override + reads exact keys, so one generation's hashes would be applied regardless of + which matched, and the SDK would build against addresses the chain is not + using. The array is what keeps version and script hashes from different + generations from ever being mixed. + +## 2.12.3 + +### Patch Changes + +- Resolve deployed reference scripts when a provider omits script metadata from address-level UTxO responses. Reference-script lookup failures other than an unused address (rate limits, outages, malformed responses) now surface to the caller instead of being reported as a missing deployment. +- Reattach an NFT singleton's datum inline when a provider reports it as a datum + hash. A lagging `inline_datum` on the proxy, treasury or staking-vault read + previously left the UTxO unusable: a vault or treasury read failed batch + execution with `addInput: When spending datum hash, must provide datum (3rd +arg)`, and a proxy read failed every batch with `No proxy datum found`. Every + singleton read now goes through one repair, so this covers all versions from + V0_1 to V1_1_Rc1. + +## 2.12.2 + +### Patch Changes + +- Identify a deployment by the validators it runs, not by the artifacts this + package bundles. + + `detectParams` accepts an optional `protocolValidators` map, keyed as in + `backend/config/env/.protocol.yaml`. When supplied it decides the protocol + version and, more importantly, overrides the script hashes and addresses the SDK + would otherwise derive — including the order address funds are locked at. Every + identity was previously computed from the bundled Plutus artifacts, which is + correct only while those bytes match the ones on chain; where they do not, an + order transaction (metadata plus `lockAssets`, with no on-chain validation) + would build, sign and submit into an address nothing watches. + + Omitted, behaviour is unchanged. + +- Allow current V1 SDK instances to recover signature-owned orders from a + superseded same-schema order validator by resolving the reference scripts from + the supplied order UTxOs. + +## 2.12.1 + +### Patch Changes + +- Require Sundae Core 2.13.1 or newer so clean SDK installations avoid the + incompatible Core 2.13.0 and Sundae Math 0.2.2 pairing. + +## 2.12.0 + +### Minor Changes + +- Add a version-neutral Sundae swap-to-stake composer that selects V3 or + Stableswaps from the supplied pool, uses Sundae's guaranteed USDr output for + the RealFi stake continuation, and preserves cancellation and excess-output + destinations. Deprecate the lower-level, V3-only + `createTxFlowBuilder().sundaeV3SwapToStake` helper in favor of the new composer. +- Expose the decimal price impact on Sundae swap quotes. +- Add network-scoped Sundae pool discovery with a runtime-configured curated + default, every pool supported by the installed builders, and the complete raw + discovery set. +- Expose diffusion-aware sUSDr exchange-rate inputs, unstake claim transaction hashes, and `InvalidMinReceived` orders through the partner API. +- Add `RealfiSDK.api.getPartnerConfig()` for the authoritative USDr asset ID, + validated runtime swap asset lists, and non-negative integer mint/redeem UX + limits shared with each deployed RealFi environment. Asset IDs use Sundae's + dotted `policyId.assetName` representation so they can be passed directly to + the SDK's Sundae discovery and builder APIs. +- Add a version-neutral partner API for quoting and building standalone Sundae V3 and Stableswaps orders. Large swap minimums retain bigint precision, and the public `SundaeSwap` namespace exports the construction values and types partners need. + +### Patch Changes + +- Ship the patched V1.0 validators that reject unsigned treasury reserve outflows + during mint and withdraw operations. + +## 2.11.1 + +### Patch Changes + +- Upgrade `@cardano-sdk/core` to 0.46.15, removing the obsolete Ogmios client and + its vulnerable transitive NanoID dependency. This resolves + [GHSA-28wg-ghj8-5hjv](https://github.com/advisories/GHSA-28wg-ghj8-5hjv) and + [GHSA-2v37-7h3g-55p8](https://github.com/advisories/GHSA-2v37-7h3g-55p8). + +## 2.11.0 + +### Minor Changes + +- Add an SDK-backed Sundae V3 swap-to-stake continuation flow for RealFi V1.0 + and V1.1. The helper validates the swap's guaranteed USDr output, derives the + live request address and exchange rate, and computes the RealFi stake floor. + +## 2.10.0 + +### Minor Changes + +- Add the V1.1 deposit-batch alpha signing helpers. Batch creators can identify + whether alpha is required with `batchNeedsAlpha`, compute it once with + `computeDepositAlpha`, and pass the creator-selected value to + `getSignedPayloadFromOrderInputs` so every co-signer signs the batch's stored + alpha. First-party consumers can also import `IYieldSplitAlpha` from the + internal SDK entry point. + +## 2.9.0 + +### Minor Changes + +- Refuse to create or package an order that would crash the batch it joins + (WTB-1764). Every v1-family validator predicate that reads `min_received` + requires it to be strictly positive, and those predicates run inside a + `zip_fold` that `expect`s each request in turn — so one order with a zero floor + crashes the ENTIRE execution transaction, killing every valid order bundled + alongside it. Order creation is permissionless and has no on-chain gate, which + made this a cheap, repeatable denial-of-service against the execution pipeline + (738 Stake batch failures in 72h on preprod, all traced to a single order). + + `buildMintOrderTx`, `buildRedeemOrderTx`, `buildStakeOrderTx` and + `buildUnstakeOrderTx` now throw on a non-positive `min_received`, whether it was + passed explicitly or computed. That closes two paths the SDK itself could take: + a dust stake whose floor rounds to zero at a high vault rate, and a full-forfeit + unstake, which `computeUnstakeMinReceived` nets to zero (`unstake.ak`'s own + comment defers that case to `min_received > 0`, i.e. the batch-wide crash). + `computeStakeMinReceivedFromVaultRatio` in the tx-builder flow throws on the + same condition. + + New `screenOrderAction` on the internal entry is the off-chain mirror of the + validators' per-request predicates, so a candidate order can be screened before + it is batched. `getSignedPayloadFromOrderInputs` applies it and reports which + order ref is unexecutable, instead of letting the batch reach the validator and + fail with an opaque crash. + + The screen covers two kinds of abort, because the datum alone cannot detect + both. `screenOrderAction` handles the `process_*_requests` per-request + predicates. `screenOrderUtxoFacts` handles the value-dependent ones: an order + UTxO locking less of the consumed asset than its datum claims + (`utilities.ak:416`, and the equivalent inside mint/burn's `and {}`), and a + `min_received` above the deliverability ceiling `validate_destination_value` + enforces (`utilities.ak:594`). The first is the cheapest batch-killer of all — + min-ADA and none of the consumed asset. `screenOrderForExecution` on the SDK + family runs both and is what consumers should call; it reads settings for the + mint/burn reserve multiplier, off the memoised proxy datum. + +### Patch Changes + +- Route every time→slot conversion through one shared helper so slot alignment + cannot silently no-op. `provider.unixToSlot` does not floor — it returns a + fractional slot for any time that is not exactly on a slot boundary, which makes + the natural "snap to slot" round-trip `slotToUnix(unixToSlot(t))` the identity on + `t`, and lets a fractional slot reach the tx builder where CBOR truncates it + silently. That divergence crashed a v1_1_rc1 windowed deposit on preview: the + vault output's `diffusion_start` kept the sub-slot remainder while the tx's + validity lower bound was floored, so `validate_deposit_diffusion`'s + `diffusion_start == now` check failed. `slotFloor` and `slotAlignedTimeMs` (new, + on the internal entry's `Utils`) are now the only place `unixToSlot` is called, + and v1_1_rc1's execution validity bounds plus the order-creation scripts go + through them. + +## 2.8.0 + +### Minor Changes + +- `detectParams` (and `detectSDKParams`) accept a network name (`"mainnet"`, `"preprod"`, `"preview"`) in place of an explicit config — partners can now target a network by name (`RealfiSDK.cardano.detectParams(provider, "preprod")`) without sourcing bootstrap references themselves. Explicit configuration remains available for custom deployments. The built-in presets are exported as `NETWORK_REGISTRY`. + +### Patch Changes + +- COSE (CIP-8) signature handling reads the COSE_Sign1 with the CBOR primitives already in the dependency tree, including indefinite-length encodings of the array, maps, and byte strings. The Emurgo WASM message-signing packages and their environment-conditional (`typeof window`) dynamic import are removed, so the SDK loads in runtimes without WASM-bundled dependencies (e.g. React Native / Lace mobile). The unused internal utility `stripCborBstrWrapper` is removed. +- Export `RealfiSDKV1Family` (value) and the `IVaultDatumLike` type from the `/internal` entry, so first-party consumers can narrow a detected SDK to the V1 protocol family structurally with `instanceof` instead of matching version strings. +- Surface diffusion-window shortfalls when executing a v1_1_rc1 deposit. A deposit + order's `diffusion_end` is absolute and fixed at order creation, so delay before + the execute lands (batching, cold/multisig signing) eats the window — and once it + is gone the validator collapses it, settling the staked yield instantly. That is a + valid on-chain outcome, so nothing used to report it. The SDK now warns (naming + `diffusion_end`, the execution time, and the consequence) when a deposit execution + would collapse a window, including the case where an unwindowed deposit clears a + window that is still live. Two new optional params tune it: + `diffusionShortfallThresholdMs` also flags a window that survives execution with + almost nothing left, and `throwOnDiffusionWindowShortfall` refuses the build + instead of warning. + +## 2.7.0 + +### Minor Changes + +- Additive API surface for operating a v1_1_rc1 protocol. + - The `/internal` barrel now exports the diffusion and yield-split maths so + first-party consumers can reproduce on-chain figures instead of re-deriving + them: `pendingRemaining` and `settledBacking` (verbatim ports of the + `utilities.ak` helpers) and `calculateYieldShares`. + - `yieldOracleBootstrap` is now **optional** in the V1_1_Rc1 params. A + deployment that defers the yield oracle can omit the seed entirely, and both + `create()` and version detection fall back to + `YIELD_ORACLE_BOOTSTRAP_PLACEHOLDER` — a permanently un-consumable + `OutputReference` (all-zeros tx hash) now exported from the root barrel. The + orchestrator hash stays real, deterministic and reproducible by every + consumer, and no bootstrap UTxO has to be reserved and protected from fee + selection. Supplying a real seed continues to override it. The placeholder is + frozen, since it is shared by reference across every omitted-seed + reconstruction in the process. + - The V1 family gained batched bootstrap helpers, so a fresh protocol's script + deployments and stake registrations can be submitted as a few batched + transactions rather than one per script, while staying under the 16 KB + transaction limit. + +- Add public version-agnostic accessors on the V1 SDK family: `getSettingsConfig()` + reads the shared settings config (`reserve_assets`, `unstaked_yield_pot`) across + v1_0 and v1_1 datum layouts, `classifyOrderUtxo()` decodes and classifies a single + open-order UTxO with the active version's order schema (no same-action-type + constraint, for scanning mixed batches), and `parseOrders()` is the public + same-type batch wrapper over the order parser. The supporting types + (`IOnChainOrderInfo`, `IClassifiedOrderAction`, `IClassifiedOrderUtxo`, + `TV1SettingsConfig`) are exported from the internal entry. + +### Patch Changes + +- Fix two v1_1_rc1 execution-timing defects that only reproduce against a real + network — the emulator's injected clock is already slot-aligned, so neither + appeared in the emulator suite. + - **Slot-align the pinned execution time.** `provider.unixToSlot` does not floor: + for a wall-clock time off a slot boundary it returns a _fractional_ slot, so + `slotToUnix(unixToSlot(now))` round-tripped back to the raw millisecond. + The transaction body stores `invalid_before` as an **integer** slot, so + on-chain the validator reads `slotToUnix(floor(slot))` while the vault output's + `diffusion_start` kept the sub-slot remainder. `validate_deposit_diffusion` + requires `diffusion_start == now`, so a **windowed deposit crashed the + orchestrator at `Withdraw[0]`**. The slot is now floored when pinning the + execution time. + - **Open a vault-touching execution's validity interval slightly in the past.** + A submitter whose clock runs a few seconds fast produced a premature + transaction, rejected by the node with `OutsideValidityIntervalUTxO`. The + back-off is **execution-scoped** rather than a global clock shift: `now` + remains real wall-clock time, so duration-based diffusion windows keep their + requested length, and the forward `validUntil` bound is not shifted. Because + the validator welds `diffusion_start` to the validity lower bound, all three + values continue to derive from the same pinned instant. An injected clock + (emulator and tests) disables the back-off entirely, so deterministic time + assertions still hold. + + Because the back-off widens the effective validity span, the constructor now + rejects a configuration where the back-off plus `executionValidityWindowMs` + would exceed one hour (`MAX_DIFFUSION_RATE_SPAN_MS`) — previously such a span + was accepted here and only failed later on-chain, inside `diffusion_rate_time`. + + Also clarifies that a deposit's diffusion window is measured from **order + creation**, not execution: `buildDepositOrderTx` resolves `diffusionDurationMs` + against the order-creation time and writes an absolute `diffusion_end` into the + order datum, so any delay before the execute lands shortens the effective + window, and a window that fully elapses beforehand collapses the deposit to + instant on-chain. + +- Expose the v1_1_rc1 diffusion-aware sUSDr exchange-rate helper from the SDK and + normalize nested v1_1 proxy settings through `getSettings()`. First-party + frontends can now compute `susdrExchangeRateInputs` with the same linear + pending-yield diffusion math used by the validators instead of reimplementing it + locally. + +## 2.6.0 + +### Minor Changes + +- Add the in-place v1_0 → v1_1_rc1 protocol upgrade to `RealfiSDKV1_1Rc1`: `create()` wires the protocol-migration withdraw validator (registry-gated, exposed as `migrationScriptHash`), with `deployMigration()` and `registerMigrationStake()` for setup, `getMigrateStatePayload()` for the signed `MigrateState` authorization, and `buildMigrateStateTx()` to migrate the staking-vault datum in place — the vault is re-locked at the same address and value with the v1_1 datum shape, preserving `circulating_susdr`. The treasury, staking-vault, and USDr-policy scripts are hash-identical across the two versions, so no funds move during the upgrade. + +### Patch Changes + +- Resolve datums by hash when an NFT-located UTxO carries a datum hash instead of an inline datum: `getDatumFromNFT` falls back to the provider's datum resolution, so datum reads no longer fail for outputs created with hashed datums. +- Complete the partner-facing type surface for V1_1_Rc1: `IRealfiCardanoSDKV1_1Rc1`, a `TRealfiCardanoSDK` union member, and a `create` overload resolving to the narrowed instance type. The V1_1_Rc1 partner method set matches V1_0/V1_0_Rc1 — `create` and version detection already dispatched to V1_1_Rc1 correctly, but the class was missing from the curated partner types. +- Reconcile `RealfiSDKV1_1Rc1` with the audited v1_1 contracts: regenerated v1_1_rc1 types; the orchestrator withdraw redeemer is wrapped in `ExecuteOrders`; deposit execution signs and echoes the exact `alpha` staked-yield share the vault applies; `create()` wires the yield-oracle validator hash into the orchestrator (exposed as `yieldOracleScriptHash`); settings datums gain the migration registry and permission fields; version detection recomputes the orchestrator hash accordingly. + +## 2.5.0 + +### Minor Changes + +- Add `RealfiSDKV1_1Rc1` — order execution (mint, redeem, stake, unstake, deposit, withdraw, direct mint/burn) for the v1*1_rc1 protocol, including **time-diffused yield**. Deposited staked yield releases into the staking-vault exchange rate linearly over a window (`diffusion_start`→`diffusion_end`) instead of instantly, so stake/unstake rates are quoted against \_settled* backing (balance minus the not-yet-diffused `pending_yield`). + + The class extends the shared `RealfiSDKV1Family` and reuses its V1_0-semantics tx-builders, overriding only the diffusion seams: the four-field vault datum, the nested settings adapters, `settledVaultBacking`, the `diffusion_end` treasury request, the deposit vault-window update, the `diffusion_end` deposit-order parameter, and the execution validity bounds. The deposit-order builder gains optional `diffusionEnd` / `diffusionDurationMs` parameters (default: instant), preserving call-compatibility with V1_0's deposit builder. `V1_1_Rc1` is wired into version detection (matched first), the create facade, cancel, and the normalized version map. + +### Patch Changes + +- Attach the required unstake indexer metadata (label 55534472) when building treasury-managed unstake order transactions. Previously only the retail unstake builder attached it, so treasury unstake orders were never indexed. + +## 2.4.2 + +### Patch Changes + +- Apply the configured slippage tolerance to default V1 unstake `min_received` values. +- Build payment outputs directly instead of using Blaze payment helpers. + +## 2.4.1 + +### Patch Changes + +- Fix batch execution failing with "assertPaymentsAddress: address payment credential cannot be a script hash" when the protocol's unstaked_yield_pot is a script address. Deposit-yield and unstake-forfeit pot payments are now built as direct outputs (like order payouts) instead of routing through Blaze's payAssets, which rejects script payment credentials. + +## 2.4.0 + +### Minor Changes + +- Attach provenance metadata (label 55534473) to every built order transaction, identifying the SDK source ("partner-sdk" or "internal-sdk") and version. Unstake orders carry both this label and the existing timelock label (55534472) in a single auxiliary-data write. +- API calls now carry a client identifier in the GraphQL request body (`extensions.clientId`), set to `"/"` (e.g. `"partner-sdk/2.3.0"` or `"internal-sdk/2.3.0"`). The RealFi API records the identifier as a structured `clientId` field in request logs. +- Automatic protocol-version detection at order build on the partner facade: every `build*Tx` call re-resolves the live protocol version (~1 provider lookup per build, following the proxy's one-shot NFT) and dispatches to the matching version instance, so the same call keeps building the right version's order across an on-chain protocol upgrade with no re-init. `create` accepts an optional `{ versionDetection?: "per-build" | "at-init", onVersionChange?: (previous, next) => void }` — `"at-init"` opts out and freezes the instance at the version it was created with. Read helpers (`get*`) never re-detect. + +## 2.3.1 + +### Patch Changes + +- Internal refactor: extract a shared `RealfiSDKV1Family` base class from `RealfiSDKV1_0` and `RealfiSDKV1_0Rc1`. The family is generic over the settings and vault-datum statics, with version-overridable seams for vault datum construction (`buildInitialVaultDatum`/`buildUpdatedVaultDatum`), settings access (`settingsConfig`/`settingsRegistry`), and execution validity bounds (`applyExecutionValidityBounds`, no-op today) — groundwork for the upcoming `v1_1_rc1` execution SDK with its 4-field yield-diffusion vault. No public API or behavior change. + +## 2.3.0 + +### Minor Changes + +- The unsupported `./internal` entry is not part of the published package: importing `@realfi-co/realfi-partner-sdk/internal` fails to resolve. The supported surface is the package root and `./tx-builder`. + +## 2.2.0 + +### Minor Changes + +- Add `v1_1_rc1` generated types and a protocol settings admin SDK. `RealfiProtocolSettingsAdmin` (exposed via the `./internal` entry) builds and authorizes governance changes to the on-chain protocol settings — change permissions, config, or logic/registry; shutdown and restore; and migrate to another settings validator — using COSE (CIP-8) signed redeemers collected out-of-band (two-phase: `getSettingsAuthPayloadHash` then `buildChangeX({ signatures })`). + +## 2.1.0 + +### Minor Changes + +- Partner Cardano SDK instances expose their `version` (`"V0_4" | "V1_0" | "V1_0_Rc1"`), making `TRealfiCardanoSDK` a discriminated union — a held instance now narrows to its version-specific surface, replacing 1.x `instanceof` checks. + +## 2.0.4 + +### Patch Changes + +- Export `IRawProxyDatumResult` — the declared return type of `getRawProxyDatum` — from the public entry point. + +## 2.0.3 + +### Patch Changes + +- Preserve surplus order UTxO value in V1.0 execution destination outputs. + +## 2.0.2 + +### Patch Changes + +- Automatically attach required unstake order metadata when building retail unstake order transactions. + +## 2.0.1 + +### Patch Changes + +- Ship `CHANGELOG.md` in the published package. + +## 2.0.0 + +### Major Changes + +- `@realfi-co/realfi-partner-sdk` succeeds `@realfi-co/realfi-sdk` 1.x as the curated partner surface. Deployment, operator, and signing APIs are not exposed; the public entry is the partner facade (`RealfiSDK.cardano` + `RealfiSDK.api`). Also not carried over from 1.x: the direct mint/burn order builders (use the standard mint/redeem order flow), the superseded `V0`–`V0_3` protocol versions and their types, and the root-level shared helpers (the kept set lives under `Utils`). + +### Minor Changes + +- `buildClaimTimelockTx` accepts optional `owner` and `destination`, so a custodian holding a user's key can claim the user's unstaked USDr and deliver it — including accrued yield — to the user. Both default to the connected wallet; funds route to `owner` when only an owner is given. +- Add `RealfiSDK.api` — off-chain GraphQL reads with per-network endpoints built in: order status (`getOrdersByOwner`), stake times and the unstake cooldown slot, yield breakdown, order fees, points balance, and referral reads. No Blaze instance required. diff --git a/modules/realfi-partner-sdk/README.md b/modules/realfi-partner-sdk/README.md new file mode 100644 index 0000000000..f3da121e5d --- /dev/null +++ b/modules/realfi-partner-sdk/README.md @@ -0,0 +1,11 @@ +# @bitgo/realfi-partner-sdk + +BitGo fork of [`@realfi-co/realfi-partner-sdk`](https://github.com/realfi-co/realfi-partner-sdk) **v2.14.0** +(`latest` / `preview` dist-tag; commit `1a8d3c0605f383e1180f8405075c08e14689ac47`). + +Used by Wallet Platform to build RealFi sUSDr Plutus order transactions on Cardano. +BitGoJS `sdk-coin-ada` only pledge-signs the resulting CBOR — it does not depend on this package. + +`src/` is tracked; `dist/` is built locally / at publish (`yarn workspace @bitgo/realfi-partner-sdk build`). + +See `UPSTREAM.md` for rebase notes. Ticket: SI-1292. diff --git a/modules/realfi-partner-sdk/UPSTREAM.md b/modules/realfi-partner-sdk/UPSTREAM.md new file mode 100644 index 0000000000..dbb65d2f7d --- /dev/null +++ b/modules/realfi-partner-sdk/UPSTREAM.md @@ -0,0 +1,50 @@ +# Upstream tracking + +| Field | Value | +| --- | --- | +| Upstream package | `@realfi-co/realfi-partner-sdk` | +| Upstream version | `2.14.0` (`latest` / `preview` dist-tag) | +| Upstream commit | `1a8d3c0605f383e1180f8405075c08e14689ac47` | +| BitGo package | `@bitgo/realfi-partner-sdk` (`private: true` until first npm create + publish) | +| Ticket | [SI-1292](https://linear.app/bitgo/issue/SI-1292) | + +CI notes: +- `engines.node` is `>=20` to match BitGoJS (upstream / `@cardano-sdk/core` want `>=22`; WP runtime is 22). +- Root `.yarnrc` sets `ignore-engines true` so Node 20 CI can install Cardano transitive deps. +- `private: true` skips `verify-npm-packages` until the package is created on npm; unset before first publish. +- `package.json` dependencies are trimmed to packages actually imported in `src/` (upstream lists extras for tests/emulator). + +## Related dist-tags (at pin time) + +| Tag | Version | +| --- | --- | +| latest / preview | 2.14.0 | +| mainnet | 2.13.0 | +| preprod | 2.12.3 | + +## Why a fork + +BitGo does not install third-party packages from GitHub Packages into Wallet Platform CI. +This module vendors a pinned RealFi SDK **source** snapshot under `@bitgo/*` (Babylon-style) for npm beta / WP consumption. + +## Build + +`dist/` is **not** committed (Babylon pattern). Dual emit via `tsc`: + +- `dist/esm` + `dist/types` — `tsconfig.esm.json` (NodeNext) +- `dist/cjs` — `tsconfig.cjs.json` (CommonJS) + `dist/cjs/package.json` `{ "type": "commonjs" }` + +```bash +yarn workspace @bitgo/realfi-partner-sdk build +# or: node modules/realfi-partner-sdk/build.mjs +``` + +`lerna run build` / `prepublishOnly` regenerates `dist/` before publish. + +## Rebase checklist + +1. `npm view @realfi-co/realfi-partner-sdk dist-tags --registry=https://npm.pkg.github.com` +2. `npm pack @realfi-co/realfi-partner-sdk@ --registry=https://npm.pkg.github.com` +3. Replace `src/` + upstream `CHANGELOG.md`; refresh this file + `package.json` version/deps. +4. `yarn workspace @bitgo/realfi-partner-sdk build` and smoke: construct SDK for preprod, read vault rate, build a stake order tx. +5. PR → merge → publish `@bitgo-beta` → bump WP. diff --git a/modules/realfi-partner-sdk/build.mjs b/modules/realfi-partner-sdk/build.mjs new file mode 100644 index 0000000000..fc35c8403c --- /dev/null +++ b/modules/realfi-partner-sdk/build.mjs @@ -0,0 +1,39 @@ +import { spawnSync } from "node:child_process"; +import { createRequire } from "node:module"; +import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +const root = dirname(fileURLToPath(import.meta.url)); +const require = createRequire(import.meta.url); +const tsc = require.resolve("typescript/bin/tsc"); +const pkg = JSON.parse(readFileSync(join(root, "package.json"), "utf8")); + +function run(cmd, args) { + const result = spawnSync(cmd, args, { cwd: root, stdio: "inherit" }); + if (result.status !== 0) { + process.exit(result.status ?? 1); + } +} + +rmSync(join(root, "dist"), { recursive: true, force: true }); +run(process.execPath, [tsc, "-p", "tsconfig.esm.json"]); +run(process.execPath, [tsc, "-p", "tsconfig.cjs.json"]); + +mkdirSync(join(root, "dist/cjs"), { recursive: true }); +writeFileSync(join(root, "dist/cjs/package.json"), `${JSON.stringify({ type: "commonjs" })}\n`); + +writeFileSync( + join(root, "dist/build-info.json"), + `${JSON.stringify( + { + version: pkg.version, + builtAt: new Date().toISOString(), + note: "Built from src/ via BitGo tsc dual emit — see UPSTREAM.md", + }, + null, + 2, + )}\n`, +); + +console.log(`built @bitgo/realfi-partner-sdk@${pkg.version}`); diff --git a/modules/realfi-partner-sdk/package.json b/modules/realfi-partner-sdk/package.json new file mode 100644 index 0000000000..1bec5d2bdc --- /dev/null +++ b/modules/realfi-partner-sdk/package.json @@ -0,0 +1,62 @@ +{ + "name": "@bitgo/realfi-partner-sdk", + "version": "2.14.0", + "private": true, + "description": "BitGo fork of RealFi partner SDK for Cardano sUSDr liquid staking (Plutus order txs).", + "type": "module", + "sideEffects": false, + "license": "UNLICENSED", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/types/index.d.ts", + "exports": { + ".": { + "types": "./dist/types/index.d.ts", + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.js" + }, + "./tx-builder": { + "types": "./dist/types/tx-builder/index.d.ts", + "import": "./dist/esm/tx-builder/index.js", + "require": "./dist/cjs/tx-builder/index.js" + } + }, + "files": [ + "dist", + "CHANGELOG.md", + "README.md", + "UPSTREAM.md" + ], + "engines": { + "node": ">=20" + }, + "scripts": { + "build": "node ./build.mjs", + "prepublishOnly": "npm run build", + "test": "echo 'No unit tests in fork yet'" + }, + "dependencies": { + "@blaze-cardano/core": "0.8.0", + "@blaze-cardano/data": "0.6.6", + "@blaze-cardano/query": "0.5.6", + "@blaze-cardano/sdk": "0.2.47", + "@blaze-cardano/uplc": "0.4.3", + "@sundaeswap/asset": "1.0.11", + "@sundaeswap/core": "^2.13.1" + }, + "repository": { + "type": "git", + "url": "https://github.com/BitGo/BitGoJS.git", + "directory": "modules/realfi-partner-sdk" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [ + "cardano", + "realfi", + "susdr", + "staking" + ], + "author": "BitGo Inc. (fork of RealFi)" +} diff --git a/modules/realfi-partner-sdk/src/admin/index.ts b/modules/realfi-partner-sdk/src/admin/index.ts new file mode 100644 index 0000000000..b14e32d715 --- /dev/null +++ b/modules/realfi-partner-sdk/src/admin/index.ts @@ -0,0 +1 @@ +export * from "./settings/index.js"; diff --git a/modules/realfi-partner-sdk/src/admin/settings/index.ts b/modules/realfi-partner-sdk/src/admin/settings/index.ts new file mode 100644 index 0000000000..771c9c1a1c --- /dev/null +++ b/modules/realfi-partner-sdk/src/admin/settings/index.ts @@ -0,0 +1,3 @@ +export * from "./types.js"; +export * from "./utils.js"; +export * from "./protocol-settings.js"; diff --git a/modules/realfi-partner-sdk/src/admin/settings/protocol-settings.ts b/modules/realfi-partner-sdk/src/admin/settings/protocol-settings.ts new file mode 100644 index 0000000000..2b5faed7e1 --- /dev/null +++ b/modules/realfi-partner-sdk/src/admin/settings/protocol-settings.ts @@ -0,0 +1,3 @@ +// Version-neutral public entrypoint for the protocol settings admin SDK. +// The current implementation targets the v1.1-era settings shape internally. +export * from "./v1_1_rc1.js"; diff --git a/modules/realfi-partner-sdk/src/admin/settings/types.ts b/modules/realfi-partner-sdk/src/admin/settings/types.ts new file mode 100644 index 0000000000..e21a765cbc --- /dev/null +++ b/modules/realfi-partner-sdk/src/admin/settings/types.ts @@ -0,0 +1,145 @@ +import type { Provider } from "@blaze-cardano/query"; +import type { Blaze, Core, TxBuilder, Wallet } from "@blaze-cardano/sdk"; + +import type { + GovernanceConfig, + MultisigScript, + Permissions, + ProtocolConfig, + RegistryV1, + SettingsV1, + Tuple_VerificationKey_COSESign1, +} from "../../generated-types/v1_1_rc1/index.js"; + +/** + * COSE (CIP-8) signatures authorizing a settings change — `(VerificationKey, + * COSESign1)` tuples over the auth-payload hash from `getSettingsAuthPayloadHash`. + * Collected out-of-band (e.g. from hardware wallets), then passed to the build + * method — mirroring the orchestrator's `buildExecuteOrdersTx({ signatures })`. + */ +export type TSettingsSignatures = Tuple_VerificationKey_COSESign1[]; + +export interface IProtocolSettingsAdminParams { + proxyPolicyId: Core.PolicyId; + governanceConfig: GovernanceConfig; + enableTrace?: boolean; + referenceInputs?: { + settingsRefInput?: Core.TransactionUnspentOutput; + }; +} + +export interface IProtocolSettingsAdminSource< + P extends Provider, + W extends Wallet, +> { + readonly blaze: Blaze; + readonly oneShotPolicyId: Core.PolicyId; + readonly enableTrace: boolean; +} + +export interface IProtocolSettingsState { + proxyUtxo: Core.TransactionUnspentOutput; + proxyDatum: Core.PlutusData; + proxyAddress: Core.Address; + logicHash: Core.ScriptHash; + settingsData: Core.PlutusData; + liveSettings?: SettingsV1; + paymentCredentialHash: string; + isFrozen: boolean; + isGovernedByThisValidator: boolean; +} + +export interface IBuildChangePermissionsTxParams { + nextPermissions: Permissions; + signatures: TSettingsSignatures; +} + +export interface IBuildChangeConfigTxParams { + nextConfig: ProtocolConfig; + signatures: TSettingsSignatures; +} + +export interface IBuildChangeLogicTxParams { + nextLogicHash?: Core.ScriptHash; + nextRegistry?: RegistryV1; + signatures: TSettingsSignatures; +} + +/** + * A settings change resolved against the current on-chain state — the shared + * intermediate used to both compute the auth-payload hash and build the tx, so + * the signed message and the submitted tx always agree. + */ +export interface IResolvedSettingsChange { + redeemer: + | "ChangeLogic" + | "ChangePermissions" + | "ChangeConfig" + | "Shutdown" + | "Restore" + | "Migrate"; + nextLogicHash: Core.ScriptHash; + nextSettingsData: Core.PlutusData; + receiverAddress: Core.Address; + coValidateWith?: { + rewardAccount: Core.RewardAccount; + applyWitness(tx: TxBuilder): Promise; + }; +} + +export interface IBuildMigrateTxParams

{ + destination: IProtocolSettingsAdminInstance; + /** COSE signatures satisfying this (source) validator's `migrate` permission. */ + signatures: TSettingsSignatures; + /** COSE signatures satisfying the destination validator's `migrate` permission. */ + destinationSignatures: TSettingsSignatures; +} + +/** + * The change to authorize, passed to both `getSettingsAuthPayloadHash` (to get + * the hash to sign) and the matching build method — mirroring how the + * orchestrator passes the same order inputs to `getSignedPayloadFromOrderInputs` + * and `buildExecuteOrdersTx`. + */ +export type TSettingsChange

= + | { type: "ChangePermissions"; nextPermissions: Permissions } + | { type: "ChangeConfig"; nextConfig: ProtocolConfig } + | { + type: "ChangeLogic"; + nextLogicHash?: Core.ScriptHash; + nextRegistry?: RegistryV1; + } + | { type: "Shutdown" } + | { type: "Restore" } + | { type: "Migrate"; destination: IProtocolSettingsAdminInstance }; + +export interface IProtocolSettingsAdminInstance< + P extends Provider, + W extends Wallet, +> { + readonly blaze: Blaze; + readonly proxyPolicyId: Core.PolicyId; + readonly governanceConfig: GovernanceConfig; + readonly settingsScriptHash: Core.ScriptHash; + readonly settingsValidatorAddress: Core.Address; + readonly settingsRewardAccount: Core.RewardAccount; + readonly enableTrace: boolean; + + getSettingsState(): Promise; + applySettingsWitness(tx: TxBuilder): Promise; +} + +export type TGovernancePermissionKey = + | "logic_change" + | "permission_change" + | "config_change" + | "shutdown" + | "restore" + | "migrate"; + +export interface IParsedProxyDatum { + logicHash: Core.ScriptHash; + settingsData: Core.PlutusData; +} + +export type TPermissionedScript = MultisigScript; diff --git a/modules/realfi-partner-sdk/src/admin/settings/utils.ts b/modules/realfi-partner-sdk/src/admin/settings/utils.ts new file mode 100644 index 0000000000..3ef35aa31e --- /dev/null +++ b/modules/realfi-partner-sdk/src/admin/settings/utils.ts @@ -0,0 +1,176 @@ +import { + addressFromValidator, + blake2b_256, + HexBlob, +} from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { parse } from "@blaze-cardano/data"; +import { Core } from "@blaze-cardano/sdk"; + +import * as V1_1Rc1Types from "../../generated-types/v1_1_rc1/index.js"; +import type { + GovernanceConfig, + SettingsV1, + Tuple_VerificationKey_COSESign1, +} from "../../generated-types/v1_1_rc1/index.js"; +import type { IParsedProxyDatum } from "./types.js"; + +export const SETTINGS_FROZEN_CONSTR = 1n; + +export function createSettingsValidatorScript( + proxyPolicyId: Core.PolicyId, + governanceConfig: GovernanceConfig, + enableTrace = false, +): Core.Script { + return new V1_1Rc1Types.SettingsProtocolSettingsProtocolSettingsWithdraw( + proxyPolicyId, + governanceConfig, + enableTrace, + ).Script; +} + +export function createSettingsValidatorAddress( + network: Core.NetworkId, + proxyPolicyId: Core.PolicyId, + governanceConfig: GovernanceConfig, + enableTrace = false, +): Core.Address { + const script = createSettingsValidatorScript( + proxyPolicyId, + governanceConfig, + enableTrace, + ); + return addressFromValidator(network, script); +} + +export function parseProxyDatumRaw(datum: Core.PlutusData): IParsedProxyDatum { + const constr = datum.asConstrPlutusData(); + if (!constr) { + throw new Error("Proxy datum is not constructor PlutusData"); + } + + const fields = constr.getData(); + const logicBytes = fields.get(0).asBoundedBytes(); + if (!logicBytes) { + throw new Error("Proxy datum logic field is not bytes"); + } + + return { + logicHash: Buffer.from(logicBytes).toString("hex") as Core.ScriptHash, + settingsData: fields.get(1), + }; +} + +export function buildRawProxyDatum( + logicHash: Core.ScriptHash, + settingsData: Core.PlutusData, +): Core.PlutusData { + const fields = new Core.PlutusList(); + fields.add(Core.PlutusData.newBytes(Buffer.from(logicHash, "hex"))); + fields.add(settingsData); + return Core.PlutusData.newConstrPlutusData( + new Core.ConstrPlutusData(0n, fields), + ); +} + +export function getSettingsAlternative(settingsData: Core.PlutusData): bigint { + const constr = settingsData.asConstrPlutusData(); + if (!constr) { + throw new Error("Settings data is not constructor PlutusData"); + } + return constr.getAlternative(); +} + +export function isFrozenSettingsData(settingsData: Core.PlutusData): boolean { + return getSettingsAlternative(settingsData) === SETTINGS_FROZEN_CONSTR; +} + +export function freezeSettingsData( + settingsData: Core.PlutusData, +): Core.PlutusData { + const fields = new Core.PlutusList(); + fields.add(settingsData); + return Core.PlutusData.newConstrPlutusData( + new Core.ConstrPlutusData(SETTINGS_FROZEN_CONSTR, fields), + ); +} + +export function unwrapFrozenSettingsData( + settingsData: Core.PlutusData, +): Core.PlutusData { + const constr = settingsData.asConstrPlutusData(); + if (!constr || constr.getAlternative() !== SETTINGS_FROZEN_CONSTR) { + throw new Error("Settings data is not frozen"); + } + return constr.getData().get(0); +} + +export function parseLiveSettings( + settingsData: Core.PlutusData, +): SettingsV1 | undefined { + if (isFrozenSettingsData(settingsData)) { + return undefined; + } + return parse(V1_1Rc1Types.SettingsV1, settingsData) as SettingsV1; +} + +export function serializeSettings(settings: SettingsV1): Core.PlutusData { + return Data.serialize(V1_1Rc1Types.SettingsV1, settings); +} + +export function serializeSettingsRedeemer( + redeemer: V1_1Rc1Types.SettingsRedeemer, +): Core.PlutusData { + return Data.serialize(V1_1Rc1Types.SettingsRedeemer, redeemer); +} + +/** + * Serialize the `SettingsAuthPayload` the on-chain validator reconstructs from + * the proxy in/out and hashes. `datum` is the resulting proxy output datum + * (`{ logic, settings }`); `nonce` is the proxy input's `OutputReference`. + * + * The `SettingsAuthPayload` schema is emitted into the blueprint via the + * `documentation` validator (see `validators/v1_1_rc1/documentation.ak`), so we + * serialize against the generated type rather than hand-building PlutusData. + */ +export function buildSettingsAuthPayload( + change: V1_1Rc1Types.SettingsRedeemer, + destinationScriptHash: Core.ScriptHash, + nextLogicHash: Core.ScriptHash, + nextSettingsData: Core.PlutusData, + nonce: Core.TransactionInput, +): Core.PlutusData { + const payload: V1_1Rc1Types.SettingsAuthPayload = { + change, + destination: destinationScriptHash, + datum: { logic: nextLogicHash, settings: nextSettingsData }, + nonce: { + transaction_id: nonce.transactionId().toString(), + output_index: nonce.index(), + }, + }; + return Data.serialize(V1_1Rc1Types.SettingsAuthPayload, payload); +} + +/** + * blake2b-256 of the auth payload's CBOR — the 32-byte message each governance + * signer COSE-signs (CIP-8). Mirrors the on-chain + * `blake2b_256(cbor.serialise(payload))` and the orchestrator's payload hashing. + */ +export function hashSettingsAuthPayload(payload: Core.PlutusData): string { + return blake2b_256(HexBlob(payload.toCbor())); +} + +/** + * The withdraw-handler redeemer: the change-class selector plus the COSE + * signatures authorizing it (the payload itself is reconstructed on-chain). + */ +export function serializeSettingsSignedRedeemer( + change: V1_1Rc1Types.SettingsRedeemer, + signatures: Tuple_VerificationKey_COSESign1[], +): Core.PlutusData { + return Data.serialize(V1_1Rc1Types.SettingsSignedRedeemer, { + change, + signatures, + }); +} diff --git a/modules/realfi-partner-sdk/src/admin/settings/v1_1_rc1.ts b/modules/realfi-partner-sdk/src/admin/settings/v1_1_rc1.ts new file mode 100644 index 0000000000..4687417a86 --- /dev/null +++ b/modules/realfi-partner-sdk/src/admin/settings/v1_1_rc1.ts @@ -0,0 +1,504 @@ +import { addressFromValidator } from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + calculateMinAda, + Core, + type TxBuilder, + type Wallet, +} from "@blaze-cardano/sdk"; + +import type { + GovernanceConfig, + SettingsV1, +} from "../../generated-types/v1_1_rc1/index.js"; +import { + credentialFromScript, + deployScript, + lockOrPayAssets, + readSingletonDatum, + rewardAccountFromScript, +} from "../../sdk/shared/index.js"; +import type { + IBuildChangeConfigTxParams, + IBuildChangeLogicTxParams, + IBuildChangePermissionsTxParams, + IBuildMigrateTxParams, + IProtocolSettingsAdminInstance, + IProtocolSettingsAdminParams, + IProtocolSettingsAdminSource, + IProtocolSettingsState, + IResolvedSettingsChange, + TSettingsChange, + TSettingsSignatures, +} from "./types.js"; +import { + buildRawProxyDatum, + buildSettingsAuthPayload, + createSettingsValidatorScript, + freezeSettingsData, + hashSettingsAuthPayload, + isFrozenSettingsData, + parseLiveSettings, + parseProxyDatumRaw, + serializeSettings, + serializeSettingsSignedRedeemer, + unwrapFrozenSettingsData, +} from "./utils.js"; + +// Internal implementation for the current v1.1-era settings layout. +// Public consumers should import the version-neutral RealfiProtocolSettingsAdmin +// from admin/settings or the package root. +export class RealfiProtocolSettingsAdmin< + P extends Provider, + W extends Wallet, +> implements IProtocolSettingsAdminInstance { + readonly blaze: Blaze; + readonly proxyPolicyId: Core.PolicyId; + readonly governanceConfig: GovernanceConfig; + readonly settingsScript: Core.Script; + readonly settingsScriptHash: Core.ScriptHash; + readonly settingsValidatorAddress: Core.Address; + readonly settingsRewardAccount: Core.RewardAccount; + readonly enableTrace: boolean; + + private settingsRefInput?: Core.TransactionUnspentOutput; + + private constructor( + blaze: Blaze, + params: IProtocolSettingsAdminParams, + ) { + this.blaze = blaze; + this.proxyPolicyId = params.proxyPolicyId; + this.governanceConfig = params.governanceConfig; + this.enableTrace = params.enableTrace ?? false; + this.settingsRefInput = params.referenceInputs?.settingsRefInput; + + this.settingsScript = createSettingsValidatorScript( + this.proxyPolicyId, + this.governanceConfig, + this.enableTrace, + ); + this.settingsScriptHash = this.settingsScript.hash(); + this.settingsValidatorAddress = addressFromValidator( + this.blaze.provider.network, + this.settingsScript, + ); + this.settingsRewardAccount = rewardAccountFromScript( + this.settingsScript, + this.blaze.provider.network, + ); + } + + static create

( + blaze: Blaze, + params: IProtocolSettingsAdminParams, + ): RealfiProtocolSettingsAdmin { + return new RealfiProtocolSettingsAdmin(blaze, params); + } + + static fromProtocolSdk

( + sdk: IProtocolSettingsAdminSource, + params: Omit< + IProtocolSettingsAdminParams, + "proxyPolicyId" | "enableTrace" + > & { + enableTrace?: boolean; + }, + ): RealfiProtocolSettingsAdmin { + return new RealfiProtocolSettingsAdmin(sdk.blaze, { + proxyPolicyId: sdk.oneShotPolicyId, + governanceConfig: params.governanceConfig, + enableTrace: params.enableTrace ?? sdk.enableTrace, + referenceInputs: params.referenceInputs, + }); + } + + async deploySettingsValidator(): Promise { + return deployScript(this.blaze, this.settingsScript); + } + + registerSettingsStake(): TxBuilder { + return this.blaze + .newTransaction() + .addRegisterStake(credentialFromScript(this.settingsScript)); + } + + async getSettingsState(): Promise { + const proxyAssetId = Core.AssetId(this.proxyPolicyId); + const { utxo: proxyUtxo, datum: proxyDatum } = await readSingletonDatum( + this.blaze.provider, + proxyAssetId, + ); + + const { logicHash, settingsData } = parseProxyDatumRaw(proxyDatum); + const proxyAddress = proxyUtxo.output().address(); + const paymentCredentialHash = proxyAddress.getProps().paymentPart?.hash; + if (!paymentCredentialHash) { + throw new Error("Proxy UTxO address has no payment credential"); + } + + const isFrozen = isFrozenSettingsData(settingsData); + return { + proxyUtxo, + proxyDatum, + proxyAddress, + logicHash, + settingsData, + liveSettings: isFrozen ? undefined : parseLiveSettings(settingsData), + paymentCredentialHash, + isFrozen, + isGovernedByThisValidator: + paymentCredentialHash === this.settingsScriptHash, + }; + } + + async buildDepositProxyTx(): Promise { + const state = await this.getSettingsState(); + + if (state.isGovernedByThisValidator) { + throw new Error("Proxy NFT is already locked at this settings validator"); + } + + if ( + state.proxyAddress.getProps().paymentPart?.type === + Core.CredentialType.ScriptHash + ) { + throw new Error( + "Proxy NFT is currently held by another script. Move it with the current controller before depositing into protocol settings.", + ); + } + + return lockOrPayAssets( + this.blaze.newTransaction().addInput(state.proxyUtxo), + this.settingsValidatorAddress, + // Same datum, but a script address is wider than the wallet address the + // proxy is moving from, so the floor can still rise here. + this.valueWithDatumMinAda( + this.settingsValidatorAddress, + state.proxyUtxo.output().amount(), + state.proxyDatum, + ), + state.proxyDatum, + ); + } + + /** + * Compute the 32-byte auth-payload hash the governance keys must COSE-sign for + * `change`, against the current on-chain proxy state. Two-phase, mirroring the + * orchestrator's `getSignedPayloadFromOrderInputs`: get this hash, collect the + * signatures out-of-band, then pass them to the matching build method. The + * proxy UTxO must be unchanged between the two calls (it is the nonce). + */ + async getSettingsAuthPayloadHash( + change: TSettingsChange, + ): Promise { + const state = await this.requireGovernedState(); + const resolved = this.resolveChange(state, change); + return hashSettingsAuthPayload( + buildSettingsAuthPayload( + resolved.redeemer, + this.scriptHashOfAddress(resolved.receiverAddress), + resolved.nextLogicHash, + resolved.nextSettingsData, + state.proxyUtxo.input(), + ), + ); + } + + async buildChangePermissionsTx( + params: IBuildChangePermissionsTxParams, + ): Promise { + return this.buildChange( + { type: "ChangePermissions", nextPermissions: params.nextPermissions }, + params.signatures, + ); + } + + async buildChangeConfigTx( + params: IBuildChangeConfigTxParams, + ): Promise { + return this.buildChange( + { type: "ChangeConfig", nextConfig: params.nextConfig }, + params.signatures, + ); + } + + async buildChangeLogicTx( + params: IBuildChangeLogicTxParams, + ): Promise { + return this.buildChange( + { + type: "ChangeLogic", + nextLogicHash: params.nextLogicHash, + nextRegistry: params.nextRegistry, + }, + params.signatures, + ); + } + + async buildShutdownTx(params: { + signatures: TSettingsSignatures; + }): Promise { + return this.buildChange({ type: "Shutdown" }, params.signatures); + } + + async buildRestoreTx(params: { + signatures: TSettingsSignatures; + }): Promise { + return this.buildChange({ type: "Restore" }, params.signatures); + } + + async buildMigrateTx( + params: IBuildMigrateTxParams, + ): Promise { + return this.buildChange( + { type: "Migrate", destination: params.destination }, + params.signatures, + params.destinationSignatures, + ); + } + + /** + * Resolve a change against the current state into the concrete redeemer + + * resulting proxy output (logic, canonical settings, destination). Shared by + * `getSettingsAuthPayloadHash` and `buildChange` so the signed hash and the + * submitted tx always describe the same resulting state. Settings read from + * chain are canonicalized through the typed schema (see `canonicalizeSettings`) + * so blaze's encoding matches the validator's `cbor.serialise`. + */ + private resolveChange( + state: IProtocolSettingsState, + change: TSettingsChange, + ): IResolvedSettingsChange { + const here = this.settingsValidatorAddress; + switch (change.type) { + case "ChangePermissions": { + const current = this.requireLive(state); + const next: SettingsV1 = { + ...current, + permissions: change.nextPermissions, + }; + return { + redeemer: "ChangePermissions", + nextLogicHash: state.logicHash, + nextSettingsData: serializeSettings(next), + receiverAddress: here, + }; + } + case "ChangeConfig": { + const current = this.requireLive(state); + const next: SettingsV1 = { ...current, config: change.nextConfig }; + return { + redeemer: "ChangeConfig", + nextLogicHash: state.logicHash, + nextSettingsData: serializeSettings(next), + receiverAddress: here, + }; + } + case "ChangeLogic": { + const current = this.requireLive(state); + const nextLogicHash = change.nextLogicHash ?? state.logicHash; + const nextRegistry = change.nextRegistry ?? current.registry; + if ( + nextLogicHash === state.logicHash && + JSON.stringify(nextRegistry) === JSON.stringify(current.registry) + ) { + throw new Error("ChangeLogic requires a logic or registry change"); + } + return { + redeemer: "ChangeLogic", + nextLogicHash, + nextSettingsData: serializeSettings({ + ...current, + registry: nextRegistry, + }), + receiverAddress: here, + }; + } + case "Shutdown": { + if (state.isFrozen) { + throw new Error("Settings are already frozen"); + } + return { + redeemer: "Shutdown", + nextLogicHash: state.logicHash, + nextSettingsData: freezeSettingsData(state.settingsData), + receiverAddress: here, + }; + } + case "Restore": { + if (!state.isFrozen) { + throw new Error("Settings are not frozen"); + } + return { + redeemer: "Restore", + nextLogicHash: state.logicHash, + nextSettingsData: this.canonicalizeSettings( + unwrapFrozenSettingsData(state.settingsData), + ), + receiverAddress: here, + }; + } + case "Migrate": { + const destination = change.destination; + if (destination.settingsScriptHash === this.settingsScriptHash) { + throw new Error( + "Migrate requires a different destination settings validator", + ); + } + return { + redeemer: "Migrate", + nextLogicHash: state.logicHash, + nextSettingsData: this.canonicalizeSettings(state.settingsData), + receiverAddress: destination.settingsValidatorAddress, + coValidateWith: { + rewardAccount: destination.settingsRewardAccount, + applyWitness: destination.applySettingsWitness.bind(destination), + }, + }; + } + } + } + + private requireLive(state: IProtocolSettingsState): SettingsV1 { + if (state.isFrozen || !state.liveSettings) { + throw new Error("Settings are not in a live state"); + } + return state.liveSettings; + } + + /** + * Re-serialize live settings through the typed schema so the CBOR matches the + * validator's `cbor.serialise` of the parsed output datum. Settings read from + * chain and re-embedded opaquely (Restore's unwrap, Migrate's passthrough) + * otherwise don't. Frozen settings aren't a `SettingsV1`, so pass through. + */ + private canonicalizeSettings(settingsData: Core.PlutusData): Core.PlutusData { + const live = parseLiveSettings(settingsData); + return live ? serializeSettings(live) : settingsData; + } + + private async buildChange( + change: TSettingsChange, + signatures: TSettingsSignatures, + destinationSignatures?: TSettingsSignatures, + ): Promise { + const state = await this.requireGovernedState(); + const resolved = this.resolveChange(state, change); + + const tx = this.blaze.newTransaction(); + tx.addInput(state.proxyUtxo, Data.Void()); + tx.addWithdrawal( + this.settingsRewardAccount, + 0n, + serializeSettingsSignedRedeemer(resolved.redeemer, signatures), + ); + + await this.applySettingsWitness(tx); + + if (resolved.coValidateWith) { + if (!destinationSignatures) { + throw new Error( + "Migrate requires destinationSignatures for the destination validator", + ); + } + // The destination validator independently verifies signatures over the + // same auth-payload hash against its own governance config. + tx.addWithdrawal( + resolved.coValidateWith.rewardAccount, + 0n, + serializeSettingsSignedRedeemer("Migrate", destinationSignatures), + ); + await resolved.coValidateWith.applyWitness(tx); + } + + const nextDatum = buildRawProxyDatum( + resolved.nextLogicHash, + resolved.nextSettingsData, + ); + return lockOrPayAssets( + tx, + resolved.receiverAddress, + this.valueWithDatumMinAda( + resolved.receiverAddress, + state.proxyUtxo.output().amount(), + nextDatum, + ), + nextDatum, + ); + } + + /** + * The value to put on a settings output carrying `datum`, topped up to the + * min-ADA floor for that datum when the incoming coin no longer covers it. + * + * A settings edit can grow the datum (appending a reserve asset, a larger + * registry), and the coin comes from the UTxO being spent, which was sized + * for the *previous* datum. `TxBuilder` would raise an under-funded output to + * the floor on its way out, but that happens after balancing has already + * decided what to draw from the wallet, so the bump is never funded and the + * built transaction is short by exactly that amount. Reserving it here means + * `complete()` treats the growth as an ordinary larger payment from the first + * iteration. + * + * The floor is recomputed after each raise: a larger coin is itself a few + * bytes wider on the wire, which can lift the floor again. + */ + private valueWithDatumMinAda( + address: Core.Address, + value: Core.Value, + datum: Core.PlutusData, + ): Core.Value { + let result = value; + // Converges in one or two passes; the bound just refuses to spin. + for (let i = 0; i < 4; i++) { + const output = new Core.TransactionOutput(address, result); + output.setDatum(Core.Datum.newInlineData(datum)); + const floor = calculateMinAda(output, this.blaze.params.coinsPerUtxoByte); + if (result.coin() >= floor) return result; + result = new Core.Value(floor, result.multiasset()); + } + return result; + } + + /** The payment-credential script hash of a settings validator address. */ + private scriptHashOfAddress(address: Core.Address): Core.ScriptHash { + const paymentPart = address.getProps().paymentPart; + if (!paymentPart || paymentPart.type !== Core.CredentialType.ScriptHash) { + throw new Error( + "Governed settings output must be locked at a script (validator) address", + ); + } + return paymentPart.hash as Core.ScriptHash; + } + + private async requireGovernedState(): Promise { + const state = await this.getSettingsState(); + if (!state.isGovernedByThisValidator) { + throw new Error( + "Proxy NFT is not currently governed by this settings validator. Deposit it first.", + ); + } + return state; + } + + async applySettingsWitness(tx: TxBuilder): Promise { + if (this.settingsRefInput) { + tx.addReferenceInput(this.settingsRefInput); + return; + } + + const refInput = await this.blaze.provider.resolveScriptRef( + this.settingsScriptHash, + ); + if (refInput) { + this.settingsRefInput = refInput; + tx.addReferenceInput(refInput); + return; + } + + tx.provideScript(this.settingsScript); + } +} diff --git a/modules/realfi-partner-sdk/src/api/client.ts b/modules/realfi-partner-sdk/src/api/client.ts new file mode 100644 index 0000000000..dbca965df0 --- /dev/null +++ b/modules/realfi-partner-sdk/src/api/client.ts @@ -0,0 +1,50 @@ +import * as Core from "@blaze-cardano/core"; + +interface IGraphQLResponse { + data?: T; + errors?: { message: string }[]; +} + +/** POST a GraphQL query and return its `data`, throwing on HTTP or GraphQL errors. */ +export async function gqlRequest( + url: string, + query: string, + variables?: Record, + clientId?: string, +): Promise { + const payload: Record = { query, variables }; + if (clientId) { + payload.extensions = { clientId }; + } + const response = await fetch(url, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload), + }); + if (!response.ok) { + throw new Error( + `RealFi API request failed: ${response.status} ${response.statusText}`, + ); + } + const body = (await response.json()) as IGraphQLResponse; + if (body.errors?.length) { + throw new Error( + `RealFi API error: ${body.errors.map((error) => error.message).join("; ")}`, + ); + } + if (body.data == null) { + throw new Error("RealFi API returned no data"); + } + return body.data; +} + +/** + * Derive the payment (and stake, when present) key hashes from a bech32 address. + * Wallet-keyed queries match on any supplied hash. + */ +export function ownerKeyHashes(address: string): string[] { + const props = Core.Address.fromBech32(address).getProps(); + return [props.paymentPart?.hash, props.delegationPart?.hash].filter( + (hash): hash is string => Boolean(hash), + ); +} diff --git a/modules/realfi-partner-sdk/src/api/index.ts b/modules/realfi-partner-sdk/src/api/index.ts new file mode 100644 index 0000000000..a7d2c68a2c --- /dev/null +++ b/modules/realfi-partner-sdk/src/api/index.ts @@ -0,0 +1,18 @@ +// Off-chain RealFi API part of the SDK. + +export { RealfiApi, type IRealfiApiSDK } from "./realfi-api.js"; +export { API_REGISTRY } from "./registry.js"; +export type { IApiEndpoints, TApiNetwork } from "./registry.js"; +export type { + IApiOrderUtxo, + IOrderFees, + IOrderInfo, + IPartnerConfig, + IPartnerLimits, + IPointsBalance, + IReferrerCode, + IStakeTimes, + IYieldBreakdown, + TOrderAction, + TOrderStatus, +} from "./types.js"; diff --git a/modules/realfi-partner-sdk/src/api/partner-config.ts b/modules/realfi-partner-sdk/src/api/partner-config.ts new file mode 100644 index 0000000000..1bbf96e330 --- /dev/null +++ b/modules/realfi-partner-sdk/src/api/partner-config.ts @@ -0,0 +1,82 @@ +import type { IPartnerConfig } from "./types.js"; + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value); +} + +// Cardano native asset names are 0-32 bytes, so the canonical dotted form may +// legitimately end after the separator. Policy IDs and byte strings are +// lowercase hex; ADA is Sundae's single canonical non-native sentinel. +const PARTNER_ASSET_ID = + /^(?:ada\.lovelace|[0-9a-f]{56}\.(?:[0-9a-f]{2}){0,32})$/; + +function readAssetList(source: Record, key: string): string[] { + const value = source[key]; + if ( + !Array.isArray(value) || + !value.every( + (asset) => typeof asset === "string" && PARTNER_ASSET_ID.test(asset), + ) + ) { + throw new Error( + `invalid partner configuration: ${key} must be an asset ID array`, + ); + } + return [...value]; +} + +function readLimit(source: Record, key: string): number { + const value = source[key]; + if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) { + throw new Error( + `invalid partner configuration: limits.${key} must be a non-negative safe integer`, + ); + } + return value; +} + +function readStablecoinAssetId(source: Record): string { + const assetId = source.stablecoinAssetId; + if ( + typeof assetId !== "string" || + !/^[0-9a-f]{56}\.(?:[0-9a-f]{2}){1,32}$/.test(assetId) + ) { + throw new Error( + "invalid partner configuration: stablecoinAssetId must be a canonical Sundae asset ID", + ); + } + return assetId; +} + +/** Validate untrusted JSON and return fresh partner-owned values. */ +export function parsePartnerConfig(value: unknown): IPartnerConfig { + if (!isRecord(value)) { + throw new Error("invalid partner configuration: expected an object"); + } + + const swapCounterpartAssets = readAssetList(value, "swapCounterpartAssets"); + const swapOrderHistoryAssets = readAssetList(value, "swapOrderHistoryAssets"); + const history = new Set(swapOrderHistoryAssets); + const omittedLiveAsset = swapCounterpartAssets.find( + (asset) => !history.has(asset), + ); + if (omittedLiveAsset !== undefined) { + throw new Error( + `invalid partner configuration: history list omits live swap asset ${omittedLiveAsset}`, + ); + } + + if (!isRecord(value.limits)) { + throw new Error("invalid partner configuration: limits must be an object"); + } + + return { + stablecoinAssetId: readStablecoinAssetId(value), + swapCounterpartAssets, + swapOrderHistoryAssets, + limits: { + mintMinUsd: readLimit(value.limits, "mintMinUsd"), + redeemMinUsd: readLimit(value.limits, "redeemMinUsd"), + }, + }; +} diff --git a/modules/realfi-partner-sdk/src/api/queries.ts b/modules/realfi-partner-sdk/src/api/queries.ts new file mode 100644 index 0000000000..779cd43a21 --- /dev/null +++ b/modules/realfi-partner-sdk/src/api/queries.ts @@ -0,0 +1,154 @@ +// GraphQL operations + their raw response shapes (field names match the schema). +// The clean SDK-facing types live in ./types; the API class maps raw -> clean. + +import type { TOrderAction, TOrderStatus } from "./types.js"; + +export const STAKE_TIMES_QUERY = `{ + stakeTimes { + CurrentCooldownPeriodEnd { slot } + NextCooldownPeriodEnd { slot } + } +}`; + +export interface IRawStakeTimes { + stakeTimes: { + CurrentCooldownPeriodEnd: { slot: number }; + NextCooldownPeriodEnd: { slot: number }; + }; +} + +export const ORDER_FEES_QUERY = `{ orderFees { mintBps redeemBps } }`; + +export interface IRawOrderFees { + orderFees: { mintBps: number; redeemBps: number }; +} + +export const SUSDR_EXCHANGE_RATE_INPUTS_QUERY = `{ + susdrExchangeRateInputs { + circulatingSusdr + vaultUsdr + pendingYield + diffusionStartUnixMilli + diffusionEndUnixMilli + } +}`; + +export interface IRawSusdrExchangeRateInputs { + susdrExchangeRateInputs: { + circulatingSusdr: string; + vaultUsdr: string; + pendingYield: string; + diffusionStartUnixMilli: string; + diffusionEndUnixMilli: string; + }; +} + +export const YIELD_BREAKDOWN_QUERY = `query ($owner: String!) { + susdrYieldBreakdown(owner: $owner) { + totalSUSDr + totalUSDrValue + principal + yield + yieldPercent + } +}`; + +export interface IRawYieldBreakdown { + susdrYieldBreakdown: { + totalSUSDr: string; + totalUSDrValue: string; + principal: string; + yield: string; + yieldPercent: number; + }; +} + +export const ORDERS_BY_OWNER_QUERY = `query ($owner: String!, $status: OrderStatus!) { + ordersByOwner(owner: $owner, status: $status) { + status + order { + Owner + Action + Amount + Principal + Yield + Slot + Forfeit + UnlockSlot + MatureSlot + ClaimTxHash + Version + utxo { txHash index } + resultUtxo { txHash index } + } + } +}`; + +export interface IRawUtxo { + txHash: string; + index: number; +} + +export interface IRawOrder { + Owner: string; + Action: TOrderAction; + Amount: string; + Principal: string | null; + Yield: string | null; + Slot: string; + Forfeit: string; + UnlockSlot: string | null; + MatureSlot: string | null; + ClaimTxHash: string | null; + Version: string; + utxo: IRawUtxo; + resultUtxo: IRawUtxo | null; +} + +export interface IRawOrdersByOwner { + ordersByOwner: { status: TOrderStatus; order: IRawOrder }[]; +} + +export const POINTS_BALANCE_QUERY = `query ($value: String!) { + V_WALLET_POINTS_BALANCE( + filters: [{ field: "WALLET_ADDRESS", operator: IN, value: $value }] + ) { + nodes { WALLET_POINTS_BALANCE } + } +}`; + +export interface IRawPointsBalance { + V_WALLET_POINTS_BALANCE: { + nodes: { WALLET_POINTS_BALANCE: string | null }[]; + }; +} + +export interface IRawPointsBalanceData { + current_balance?: number; + potential_points?: number; + day_multiplier?: number; +} + +export const REFERRER_CODE_QUERY = `query ($walletAddress: String!) { + referrerCode(walletAddress: $walletAddress) { code createdAt } +}`; + +export interface IRawReferrerCode { + referrerCode: { code: string; createdAt: string } | null; +} + +export const REFERRAL_REWARDS_QUERY = `query ($walletAddress: String!) { + referralRewards(walletAddress: $walletAddress) +}`; + +export interface IRawReferralRewards { + referralRewards: number | null; +} + +export const INVITED_COUNT_QUERY = `query ($walletAddress: String!) { + invitedCount(walletAddress: $walletAddress) +}`; + +export interface IRawInvitedCount { + invitedCount: number | null; +} diff --git a/modules/realfi-partner-sdk/src/api/realfi-api.ts b/modules/realfi-partner-sdk/src/api/realfi-api.ts new file mode 100644 index 0000000000..0345cb298c --- /dev/null +++ b/modules/realfi-partner-sdk/src/api/realfi-api.ts @@ -0,0 +1,290 @@ +import { DEFAULT_CLIENT_SOURCE, SDK_VERSION } from "../sdk/shared/client-id.js"; +import type { ISusdrExchangeRateInputs } from "../sdk/v1_1_rc1/diffusion.js"; +import { gqlRequest, ownerKeyHashes } from "./client.js"; +import { parsePartnerConfig } from "./partner-config.js"; +import { + INVITED_COUNT_QUERY, + ORDER_FEES_QUERY, + ORDERS_BY_OWNER_QUERY, + POINTS_BALANCE_QUERY, + REFERRAL_REWARDS_QUERY, + REFERRER_CODE_QUERY, + STAKE_TIMES_QUERY, + SUSDR_EXCHANGE_RATE_INPUTS_QUERY, + YIELD_BREAKDOWN_QUERY, + type IRawInvitedCount, + type IRawOrder, + type IRawOrderFees, + type IRawOrdersByOwner, + type IRawPointsBalance, + type IRawPointsBalanceData, + type IRawReferralRewards, + type IRawReferrerCode, + type IRawStakeTimes, + type IRawSusdrExchangeRateInputs, + type IRawYieldBreakdown, +} from "./queries.js"; +import { + API_REGISTRY, + type IApiEndpoints, + type TApiNetwork, +} from "./registry.js"; +import type { + IOrderFees, + IOrderInfo, + IPartnerConfig, + IPointsBalance, + IReferrerCode, + IStakeTimes, + IYieldBreakdown, + TOrderStatus, +} from "./types.js"; + +const DEFAULT_ORDER_STATUSES: TOrderStatus[] = [ + "Open", + "Validating", + "Canceled", + "Executed", + "Invalidated", + "InvalidMinReceived", +]; + +/** Off-chain RealFi data: order status, stake times, yield, fees, points, referrals. */ +export interface IRealfiApiSDK { + /** Product-curated swap lists and USD UX limits from deployed runtime config. */ + getPartnerConfig(): Promise; + /** Cooldown boundary slots for unstaking. */ + getStakeTimes(): Promise; + /** The slot to pass as an unstake `unlockSlot` (the next cooldown boundary). */ + getCooldownUnlockSlot(): Promise; + /** Orders owned by `address` across the given statuses (default: all tracked). */ + getOrdersByOwner( + address: string, + statuses?: TOrderStatus[], + ): Promise; + /** Per-action minimum-fee policy (basis points). */ + getOrderFees(): Promise; + /** Inputs for calculating the diffusion-aware USDr-per-sUSDr rate. */ + getSusdrExchangeRateInputs(): Promise; + /** Yield owed on a wallet's sUSDr holdings. */ + getYieldBreakdown(address: string): Promise; + /** A wallet's points balance. */ + getPointsBalance(address: string): Promise; + /** A wallet's referral code, or null if none. */ + getReferrerCode(address: string): Promise; + /** Cumulative referral-bonus points credited to a wallet. */ + getReferralRewards(address: string): Promise; + /** Number of referees a wallet has invited. */ + getInvitedCount(address: string): Promise; +} + +function mapOrder(status: TOrderStatus, order: IRawOrder): IOrderInfo { + return { + owner: order.Owner, + action: order.Action, + status, + amount: BigInt(order.Amount), + slot: BigInt(order.Slot), + forfeit: BigInt(order.Forfeit), + version: order.Version, + utxo: { txHash: order.utxo.txHash, outputIndex: order.utxo.index }, + resultUtxo: order.resultUtxo + ? { txHash: order.resultUtxo.txHash, outputIndex: order.resultUtxo.index } + : undefined, + unlockSlot: order.UnlockSlot == null ? undefined : BigInt(order.UnlockSlot), + matureSlot: order.MatureSlot == null ? undefined : BigInt(order.MatureSlot), + principal: order.Principal == null ? undefined : BigInt(order.Principal), + yield: order.Yield == null ? undefined : BigInt(order.Yield), + claimTxHash: order.ClaimTxHash ?? undefined, + }; +} + +/** + * Off-chain GraphQL reads. Construct with {@link RealfiApi.forNetwork} or + * {@link RealfiApi.create}; no Blaze instance required. + */ +export class RealfiApi implements IRealfiApiSDK { + private constructor( + private readonly endpoints: IApiEndpoints, + private readonly clientId: string = `${DEFAULT_CLIENT_SOURCE}/${SDK_VERSION}`, + ) {} + + private request( + url: string, + query: string, + variables?: Record, + ): Promise { + return gqlRequest(url, query, variables, this.clientId); + } + + static forNetwork(network: TApiNetwork, clientId?: string): IRealfiApiSDK { + return new RealfiApi(API_REGISTRY[network], clientId); + } + + static create(endpoints: IApiEndpoints, clientId?: string): IRealfiApiSDK { + return new RealfiApi(endpoints, clientId); + } + + async getPartnerConfig(): Promise { + const url = this.endpoints.partnerConfigUrl; + if (!url) { + throw new Error( + "partnerConfigUrl is required to read partner runtime configuration", + ); + } + const response = await fetch(url, { + method: "GET", + headers: { Accept: "application/json" }, + cache: "no-store", + }); + if (!response.ok) { + throw new Error( + `Partner configuration request failed: ${response.status} ${response.statusText}`, + ); + } + let body: unknown; + try { + body = await response.json(); + } catch (error) { + throw new Error("invalid partner configuration: response is not JSON", { + cause: error, + }); + } + return parsePartnerConfig(body); + } + + async getStakeTimes(): Promise { + const data = await this.request( + this.endpoints.realfiUrl, + STAKE_TIMES_QUERY, + ); + return { + currentCooldownSlot: BigInt( + data.stakeTimes.CurrentCooldownPeriodEnd.slot, + ), + nextCooldownSlot: BigInt(data.stakeTimes.NextCooldownPeriodEnd.slot), + }; + } + + async getCooldownUnlockSlot(): Promise { + return (await this.getStakeTimes()).nextCooldownSlot; + } + + async getOrdersByOwner( + address: string, + statuses: TOrderStatus[] = DEFAULT_ORDER_STATUSES, + ): Promise { + const owners = ownerKeyHashes(address); + const batches = await Promise.all( + owners.flatMap((owner) => + statuses.map((status) => + this.request( + this.endpoints.realfiUrl, + ORDERS_BY_OWNER_QUERY, + { owner, status }, + ).then((data) => data.ordersByOwner), + ), + ), + ); + const seen = new Set(); + return batches + .flat() + .map((result) => mapOrder(result.status, result.order)) + .filter((order) => { + const key = `${order.utxo.txHash}#${order.utxo.outputIndex}`; + if (seen.has(key)) return false; + seen.add(key); + return true; + }) + .sort((a, b) => Number(b.slot - a.slot)); + } + + async getOrderFees(): Promise { + const data = await this.request( + this.endpoints.realfiUrl, + ORDER_FEES_QUERY, + ); + return data.orderFees; + } + + async getSusdrExchangeRateInputs(): Promise { + const data = await this.request( + this.endpoints.realfiUrl, + SUSDR_EXCHANGE_RATE_INPUTS_QUERY, + ); + const inputs = data.susdrExchangeRateInputs; + return { + circulatingSusdr: BigInt(inputs.circulatingSusdr), + vaultUsdr: BigInt(inputs.vaultUsdr), + pendingYield: BigInt(inputs.pendingYield), + diffusionStartUnixMilli: BigInt(inputs.diffusionStartUnixMilli), + diffusionEndUnixMilli: BigInt(inputs.diffusionEndUnixMilli), + }; + } + + async getYieldBreakdown(address: string): Promise { + const [owner] = ownerKeyHashes(address); + if (!owner) { + throw new Error("address has no payment credential"); + } + const data = await this.request( + this.endpoints.realfiUrl, + YIELD_BREAKDOWN_QUERY, + { owner }, + ); + const breakdown = data.susdrYieldBreakdown; + return { + totalSUSDr: BigInt(breakdown.totalSUSDr), + totalUSDrValue: BigInt(breakdown.totalUSDrValue), + principal: BigInt(breakdown.principal), + yield: BigInt(breakdown.yield), + yieldPercent: breakdown.yieldPercent, + }; + } + + async getPointsBalance(address: string): Promise { + const value = ownerKeyHashes(address).join(","); + const data = await this.request( + this.endpoints.assetTransparencyUrl, + POINTS_BALANCE_QUERY, + { value }, + ); + const raw = data.V_WALLET_POINTS_BALANCE.nodes[0]?.WALLET_POINTS_BALANCE; + if (!raw) { + return { pointsBalance: null, potentialPoints: null, multiplier: null }; + } + const parsed = JSON.parse(raw) as IRawPointsBalanceData; + return { + pointsBalance: parsed.current_balance ?? null, + potentialPoints: parsed.potential_points ?? null, + multiplier: parsed.day_multiplier ?? null, + }; + } + + async getReferrerCode(address: string): Promise { + const data = await this.request( + this.endpoints.assetTransparencyUrl, + REFERRER_CODE_QUERY, + { walletAddress: ownerKeyHashes(address).join(",") }, + ); + return data.referrerCode; + } + + async getReferralRewards(address: string): Promise { + const data = await this.request( + this.endpoints.assetTransparencyUrl, + REFERRAL_REWARDS_QUERY, + { walletAddress: ownerKeyHashes(address).join(",") }, + ); + return data.referralRewards; + } + + async getInvitedCount(address: string): Promise { + const data = await this.request( + this.endpoints.assetTransparencyUrl, + INVITED_COUNT_QUERY, + { walletAddress: ownerKeyHashes(address).join(",") }, + ); + return data.invitedCount; + } +} diff --git a/modules/realfi-partner-sdk/src/api/registry.ts b/modules/realfi-partner-sdk/src/api/registry.ts new file mode 100644 index 0000000000..11939b4e8b --- /dev/null +++ b/modules/realfi-partner-sdk/src/api/registry.ts @@ -0,0 +1,36 @@ +// Per-network GraphQL endpoints for the RealFi off-chain API. + +export type TApiNetwork = "mainnet" | "preprod" | "preview"; + +export interface IApiEndpoints { + /** Main RealFi GraphQL API — orders, stake times, yield, fees, wallet status. */ + realfiUrl: string; + /** Asset-transparency GraphQL API — points and referral reads. */ + assetTransparencyUrl: string; + /** + * Sanitized partner runtime configuration. Optional only for backwards + * compatibility with custom endpoint objects created before this read was + * added; `getPartnerConfig()` requires it. + */ + partnerConfigUrl?: string; +} + +export const API_REGISTRY: Record = { + mainnet: { + realfiUrl: "https://api.app.realfi.co/graphql", + assetTransparencyUrl: "https://api.app.realfi.co/api/v1/asset-transparency", + partnerConfigUrl: "https://app.realfi.co/partner-config.json", + }, + preprod: { + realfiUrl: "https://api.preprod.realfi.co/graphql", + assetTransparencyUrl: + "https://api.preprod.realfi.co/api/v1/asset-transparency", + partnerConfigUrl: "https://preprod.realfi.co/partner-config.json", + }, + preview: { + realfiUrl: "https://api.preview.realfi.co/graphql", + assetTransparencyUrl: + "https://api.preview.realfi.co/api/v1/asset-transparency", + partnerConfigUrl: "https://preview.realfi.co/partner-config.json", + }, +}; diff --git a/modules/realfi-partner-sdk/src/api/types.ts b/modules/realfi-partner-sdk/src/api/types.ts new file mode 100644 index 0000000000..a9f3e6275b --- /dev/null +++ b/modules/realfi-partner-sdk/src/api/types.ts @@ -0,0 +1,105 @@ +// Clean, partner-facing result types for the off-chain API. + +export type TOrderStatus = + | "Open" + | "Validating" + | "Canceled" + | "Executed" + | "Invalidated" + | "InvalidMinReceived"; + +export type TOrderAction = + | "Mint" + | "Redeem" + | "Deposit" + | "Withdraw" + | "Stake" + | "Unstake" + | "DirectMint" + | "DirectBurn"; + +export interface IApiOrderUtxo { + txHash: string; + outputIndex: number; +} + +export interface IOrderInfo { + owner: string; + action: TOrderAction; + status: TOrderStatus; + amount: bigint; + slot: bigint; + forfeit: bigint; + version: string; + utxo: IApiOrderUtxo; + /** Output produced once the order is Executed or Canceled. */ + resultUtxo?: IApiOrderUtxo; + /** Timelock unlock slot (Unstake only). */ + unlockSlot?: bigint; + /** Cooldown maturity slot (Unstake only). */ + matureSlot?: bigint; + /** Populated for Deposit orders. */ + principal?: bigint; + /** Populated for Deposit orders. */ + yield?: bigint; + /** Transaction that claimed an Unstake order's cooldown output. */ + claimTxHash?: string; +} + +export interface IStakeTimes { + currentCooldownSlot: bigint; + nextCooldownSlot: bigint; +} + +export interface IOrderFees { + mintBps: number; + redeemBps: number; +} + +export interface IYieldBreakdown { + totalSUSDr: bigint; + totalUSDrValue: bigint; + principal: bigint; + yield: bigint; + yieldPercent: number; +} + +export interface IPointsBalance { + pointsBalance: number | null; + potentialPoints: number | null; + multiplier: number | null; +} + +export interface IReferrerCode { + code: string; + createdAt: string; +} + +/** + * Non-negative safe-integer USD UX/business minimums; not protocol + * `min_received` or fees. + */ +export interface IPartnerLimits { + readonly mintMinUsd: number; + readonly redeemMinUsd: number; +} + +/** + * Environment runtime configuration shared with the deployed RealFi dapp. + * + * `swapCounterpartAssets` is the product-curated live swap list. + * `swapOrderHistoryAssets` is its superset for historical and in-flight orders, + * including disabled pairs. The deploy artifact falls back to the live list + * when the dapp source leaves the history list unset. + * Every asset identifier uses Sundae's canonical dotted form + * (`policyId.assetName`, or `ada.lovelace`), not Cardano Core's concatenated + * `Core.AssetId` representation. The values can be passed directly to + * `RealfiSDK.sundae` discovery and builder APIs. + */ +export interface IPartnerConfig { + /** Authoritative USDr ID in Sundae's dotted `policyId.assetName` form. */ + readonly stablecoinAssetId: string; + readonly swapCounterpartAssets: readonly string[]; + readonly swapOrderHistoryAssets: readonly string[]; + readonly limits: IPartnerLimits; +} diff --git a/modules/realfi-partner-sdk/src/generated-types/base/index.ts b/modules/realfi-partner-sdk/src/generated-types/base/index.ts new file mode 100644 index 0000000000..e2bbcf1789 --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/base/index.ts @@ -0,0 +1,118 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +import { type PlutusData } from "@blaze-cardano/core"; +type Data = PlutusData; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ +}); + + +export class BaseMintProxyMintProxyMint { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "590605010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c96600264653001300b00198059806000cdc3a4001300b0024888966002600460166ea800e33001375c601e60186ea800e44b30010018a5eb82266020601a6022002660040046024002807a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80624444646600200200a44b30010018802c4c9660020031330043016002006899802980b00119801801800a0283016001404d2301030110019bab300f301030103010301030103010300c37540029111111919191991191929980b99b964910d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c19ba548008cc068dd4800a5eb80dd7180d180b9baa325330163372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4051220100132598009807980c1baa00189929980c19b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c068dd5000c4c9660020031598009809180d9baa0018992cc00400603113259800800c06603301980cc4cc896600200301b8992cc004c09400a200d01c408860460028108dd7000981100120463020001407860386ea800602e80ca02f01780bc05d021180f180d9baa0018a9980ca493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164060603a603c603c60346ea8c028c068dd5000980e180c9baa0018a9980ba4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164058646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806180e1baa300c301c375400444b30010018a508acc004cdc79bae30200010198a518998010011810800a034407913374a90001980e800a5eb82266006006603e00480c0c07400501b1bac3007301737540186002002601001044464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d203a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80b90171bac301a002375a60300026466ec0dd4180c0009ba73019001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a603a003337149101023a200098008054c07800600a805100a181000144ca6002015301d00199b8a489023a200098008054c078006600e66008008004805100a1810001203c3020001407466e29220102207d0000340686eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a20343758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720383371666e000056600266e2000520148a40c11481b901c002200c33706002901019b8600148080cdc70020012032375c00680e8dc5245022c200022323300100100322598009806800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003405080a0c010011164024300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5901b3010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400130090024888966002600460126ea800e2646644646644660040046eacc04cc050c050c050c050c050c050c040dd5003912cc00400629422b30013375e006601e602600314a3133002002301400140388088dd7180898071baa0073374a900119807980818069baa3259800980318069baa0018992cc004cdc3a4008601c6ea8006264b30013008300f375400313232332259800980c001c40162c80a8c054004dd7180a801180a80098081baa0018b201c3012300f3754003164034602260246024601c6ea8c008c038dd5180898071baa0018b2018323300100137586004601c6ea8014896600200314c0103d87a80008992cc004c8cc004004c018dd5980298089baa30053011375400444b30010018a508acc004cdc79bae301500100f8a51899801001180b000a020404d13374a900019809000a5eb8226600600660280048070c04800501025eb80c0040048c03cc040004896600200314bd7044cc038c02cc03c004cc008008c04000500d4590080c024004c010dd5004c52689b2b200401", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class BaseMintProxyMintProxyElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "590605010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c96600264653001300b00198059806000cdc3a4001300b0024888966002600460166ea800e33001375c601e60186ea800e44b30010018a5eb82266020601a6022002660040046024002807a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80624444646600200200a44b30010018802c4c9660020031330043016002006899802980b00119801801800a0283016001404d2301030110019bab300f301030103010301030103010300c37540029111111919191991191929980b99b964910d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c19ba548008cc068dd4800a5eb80dd7180d180b9baa325330163372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4051220100132598009807980c1baa00189929980c19b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c068dd5000c4c9660020031598009809180d9baa0018992cc00400603113259800800c06603301980cc4cc896600200301b8992cc004c09400a200d01c408860460028108dd7000981100120463020001407860386ea800602e80ca02f01780bc05d021180f180d9baa0018a9980ca493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164060603a603c603c60346ea8c028c068dd5000980e180c9baa0018a9980ba4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164058646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806180e1baa300c301c375400444b30010018a508acc004cdc79bae30200010198a518998010011810800a034407913374a90001980e800a5eb82266006006603e00480c0c07400501b1bac3007301737540186002002601001044464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d203a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80b90171bac301a002375a60300026466ec0dd4180c0009ba73019001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a603a003337149101023a200098008054c07800600a805100a181000144ca6002015301d00199b8a489023a200098008054c078006600e66008008004805100a1810001203c3020001407466e29220102207d0000340686eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a20343758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720383371666e000056600266e2000520148a40c11481b901c002200c33706002901019b8600148080cdc70020012032375c00680e8dc5245022c200022323300100100322598009806800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003405080a0c010011164024300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5901b3010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400130090024888966002600460126ea800e2646644646644660040046eacc04cc050c050c050c050c050c050c040dd5003912cc00400629422b30013375e006601e602600314a3133002002301400140388088dd7180898071baa0073374a900119807980818069baa3259800980318069baa0018992cc004cdc3a4008601c6ea8006264b30013008300f375400313232332259800980c001c40162c80a8c054004dd7180a801180a80098081baa0018b201c3012300f3754003164034602260246024601c6ea8c008c038dd5180898071baa0018b2018323300100137586004601c6ea8014896600200314c0103d87a80008992cc004c8cc004004c018dd5980298089baa30053011375400444b30010018a508acc004cdc79bae301500100f8a51899801001180b000a020404d13374a900019809000a5eb8226600600660280048070c04800501025eb80c0040048c03cc040004896600200314bd7044cc038c02cc03c004cc008008c04000500d4590080c024004c010dd5004c52689b2b200401", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class BaseOneshotOneshotMint { + public Script: Script + constructor( + utxoRef: OutputReference, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "59031f010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a4888888888c96600264653001300a00198051805800cdc3a4001300a0024888966002600460146ea800e264b30010058acc004c00cc02cdd5002c56600260186ea80162b30013003300b375464660020026eb0c040c034dd5001912cc004006298103d87a80008992cc004cdd7980918079baa001016899ba548000cc0440052f5c1133003003301300240306022002807a2b3001329800800d2f5c210140004c8cc004004dd59808980918091809180918071baa0042259800800c52f5c113233223322330020020012259800800c400e2646602e6e9ccc05cdd48029980b980a0009980b980a800a5eb80cc00c00cc064008c05c0050151bab3012003375c601e002660060066028004602400280810011112cc00400a2b30010018a518a99806a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164041159800800c54cc035241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c96600266e3cdd718098019bae3013001899b87375a6026602800290014528201a30133758602400319800801cc04c00a6026002801a294100c2020404114a3153300a491856578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c20285f2c2061637475616c2c20616d742929207b206578706563746564203d3d2061637475616c20262620616d74203d3d2031207d2c0a202020202900164025153300a4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640250084035008402500880440220108088dd7180718059baa0038b2010180500098029baa00b8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : + "5901a3010100229800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400130080024888966002600460106ea800e26644b30013004300a375464660020026eb0c03cc030dd5002112cc004006298103d87a80008992cc004cdd7980898071baa001014899ba548000cc0400052f5c113300300330120024030602000280722b3001329800800d2f5c210140004c8cc004004dd59808180898089808980898069baa0052259800800c52f5c113233223322330020020012259800800c400e2646602c6e9ccc058dd48029980b18098009980b180a000a5eb80cc00c00cc060008c0580050141bab3011003375c601c002660060066026004602200280790011112cc00400a2b30010018a518b201e8acc0040062d159800992cc004cdc79bae3012003375c602400313370e6eb4c048c04c00520028a50403460246eb0c0440063300100398090014c04800500345282018403c807a29462c804a2c8048dd7180618049baa00359800980118041baa0048acc004c024dd500245268b20148b200e8b200e180400098019baa0088a4d1365640041", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + ]), + [ + utxoRef, + ], + ), + "PlutusV3" + ); + } +} +export class BaseOneshotOneshotElse { + public Script: Script + constructor( + utxoRef: OutputReference, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "59031f010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a4888888888c96600264653001300a00198051805800cdc3a4001300a0024888966002600460146ea800e264b30010058acc004c00cc02cdd5002c56600260186ea80162b30013003300b375464660020026eb0c040c034dd5001912cc004006298103d87a80008992cc004cdd7980918079baa001016899ba548000cc0440052f5c1133003003301300240306022002807a2b3001329800800d2f5c210140004c8cc004004dd59808980918091809180918071baa0042259800800c52f5c113233223322330020020012259800800c400e2646602e6e9ccc05cdd48029980b980a0009980b980a800a5eb80cc00c00cc064008c05c0050151bab3012003375c601e002660060066028004602400280810011112cc00400a2b30010018a518a99806a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164041159800800c54cc035241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c96600266e3cdd718098019bae3013001899b87375a6026602800290014528201a30133758602400319800801cc04c00a6026002801a294100c2020404114a3153300a491856578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c20285f2c2061637475616c2c20616d742929207b206578706563746564203d3d2061637475616c20262620616d74203d3d2031207d2c0a202020202900164025153300a4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640250084035008402500880440220108088dd7180718059baa0038b2010180500098029baa00b8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : + "5901a3010100229800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400130080024888966002600460106ea800e26644b30013004300a375464660020026eb0c03cc030dd5002112cc004006298103d87a80008992cc004cdd7980898071baa001014899ba548000cc0400052f5c113300300330120024030602000280722b3001329800800d2f5c210140004c8cc004004dd59808180898089808980898069baa0052259800800c52f5c113233223322330020020012259800800c400e2646602c6e9ccc058dd48029980b18098009980b180a000a5eb80cc00c00cc060008c0580050141bab3011003375c601c002660060066026004602200280790011112cc00400a2b30010018a518b201e8acc0040062d159800992cc004cdc79bae3012003375c602400313370e6eb4c048c04c00520028a50403460246eb0c0440063300100398090014c04800500345282018403c807a29462c804a2c8048dd7180618049baa00359800980118041baa0048acc004c024dd500245268b20148b200e8b200e180400098019baa0088a4d1365640041", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + ]), + [ + utxoRef, + ], + ), + "PlutusV3" + ); + } +} \ No newline at end of file diff --git a/modules/realfi-partner-sdk/src/generated-types/index.ts b/modules/realfi-partner-sdk/src/generated-types/index.ts new file mode 100644 index 0000000000..4446e3be6d --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/index.ts @@ -0,0 +1,9 @@ +export * as BaseTypes from "./base/index.js"; +export * as V0Types from "./v0/index.js"; +export * as V0_1Types from "./v0_1/index.js"; +export * as V0_2Types from "./v0_2/index.js"; +export * as V0_3Types from "./v0_3/index.js"; +export * as V0_4Types from "./v0_4/index.js"; +export * as V1_0Types from "./v1_0/index.js"; +export * as V1_0Rc1Types from "./v1_0_rc1/index.js"; +export * as V1_1Rc1Types from "./v1_1_rc1/index.js"; diff --git a/modules/realfi-partner-sdk/src/generated-types/v0/index.ts b/modules/realfi-partner-sdk/src/generated-types/v0/index.ts new file mode 100644 index 0000000000..0553c76c31 --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/v0/index.ts @@ -0,0 +1,46 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +import { type PlutusData } from "@blaze-cardano/core"; +type Data = PlutusData; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ +}); + + +export class V0ProtocolProtocolWithdraw { + public Script: Script + constructor( + trace?: boolean = false, + ) { + this.Script = cborToScript( + trace + ? + "58b601010029800aba4aba2aba1aab9faab9eaab9dab9cab9a488888888c96600264653001300900198049805000cc0240092225980099b8748010c024dd500144c96600200915980099b8748000c028dd5002456600260166ea8012294600e806200e804200f007803c01d00f180618051baa0028b200e180480098029baa00a8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : + "587401010029800aba2aba1aab9faab9eaab9dab9a48888896600264653001300700198039804000cc01c0092225980099b8748010c01cdd500144cc8928980518041baa0025980099b8748000c01cdd5001c56600260106ea800e2934590094590064590060c01c004c00cdd5003c52689b2b200201", + "PlutusV3" + ); + } +} +export class V0ProtocolProtocolElse { + public Script: Script + constructor( + trace?: boolean = false, + ) { + this.Script = cborToScript( + trace + ? + "58b601010029800aba4aba2aba1aab9faab9eaab9dab9cab9a488888888c96600264653001300900198049805000cc0240092225980099b8748010c024dd500144c96600200915980099b8748000c028dd5002456600260166ea8012294600e806200e804200f007803c01d00f180618051baa0028b200e180480098029baa00a8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : + "587401010029800aba2aba1aab9faab9eaab9dab9a48888896600264653001300700198039804000cc01c0092225980099b8748010c01cdd500144cc8928980518041baa0025980099b8748000c01cdd5001c56600260106ea800e2934590094590064590060c01c004c00cdd5003c52689b2b200201", + "PlutusV3" + ); + } +} \ No newline at end of file diff --git a/modules/realfi-partner-sdk/src/generated-types/v0_1/index.ts b/modules/realfi-partner-sdk/src/generated-types/v0_1/index.ts new file mode 100644 index 0000000000..77935d6ae0 --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/v0_1/index.ts @@ -0,0 +1,237 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +import { type PlutusData } from "@blaze-cardano/core"; +type Data = PlutusData; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ + MultisigScript: Type.Union([ + Type.Object({ + Signature: Type.Object({ + key_hash: Type.String(), + }, { ctor: 0n }) + }), + Type.Object({ + AllOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 1n }) + }), + Type.Object({ + AnyOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 2n }) + }), + Type.Object({ + AtLeast: Type.Object({ + required: Type.BigInt(), + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 3n }) + }), + Type.Object({ + Before: Type.Object({ + time: Type.BigInt(), + }, { ctor: 4n }) + }), + Type.Object({ + After: Type.Object({ + time: Type.BigInt(), + }, { ctor: 5n }) + }), + Type.Object({ + Script: Type.Object({ + script_hash: Type.String(), + }, { ctor: 6n }) + }), + ]), + Asset: Type.Tuple([ + Type.String(), + Type.String(), + ]), + ProtocolRedeemer: Type.Union([ + Type.Literal("Mint", { ctor: 0n }), + Type.Literal("Burn", { ctor: 1n }), + ]), + ProxyDatum: Type.Object({ + logic: Type.String(), + settings: Type.Ref("Settings"), + }, { ctor: 0n }), + Registry: Type.Object({ + treasury: Type.String(), + usdr: Type.String(), + }, { ctor: 0n }), + Settings: Type.Object({ + mint_permission: Type.Ref("MultisigScript"), + burn_permission: Type.Ref("MultisigScript"), + registry: Type.Ref("Registry"), + reserve_token: Type.Ref("Asset"), + }, { ctor: 0n }), + TreasuryDatum: Type.Object({ + circulating_supply: Type.BigInt(), + }, { ctor: 0n }), +}); + +export const MultisigScript = Contracts.Import("MultisigScript"); +export type MultisigScript = Exact; +export const Asset = Contracts.Import("Asset"); +export type Asset = Exact; +export const ProtocolRedeemer = Contracts.Import("ProtocolRedeemer"); +export type ProtocolRedeemer = Exact; +export const ProxyDatum = Contracts.Import("ProxyDatum"); +export type ProxyDatum = Exact; +export const Registry = Contracts.Import("Registry"); +export type Registry = Exact; +export const Settings = Contracts.Import("Settings"); +export type Settings = Exact; +export const TreasuryDatum = Contracts.Import("TreasuryDatum"); +export type TreasuryDatum = Exact; + +export class V0_1ProtocolProtocolWithdraw { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5914b1010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692015e657870656374205b50616972286e616d652c206d696e745f616d6f756e74295d203d0a2020202074782e6d696e74207c3e20746f6b656e732873657474696e67732e72656769737472792e7573647229207c3e20746f5f7061697273282900168a99801a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a492a6578706563742073657474696e67733a2053657474696e6773203d2070726f78792e73657474696e677300168a99801a491a72656465656d65723a2050726f746f636f6c52656465656d65720016488896600264653001300e00198071807800cdc3a4009300e00248889660026004601c6ea800e264b30010058999119912cc004c00c0062b300130143754013002806202a8acc004c0100062b300130143754013002806202a80620224044330012259800800c52f5c1133016301330170013300200230180014055374a900048c058c05c00644646600200200644b30010018a508acc004cdc79bae30190010038a51899801001180d000a026405d2301630173017001488888c8cc88c8c96600200313232598009806980e9baa0038992cc00400603113259800800c4c96600200301a8992cc004006264b300100180e44c96600200313259800800c07a264b300100180fc07e264b3001302b0038cc004022330010068acc004c058c098dd500244c9660020030218992cc004006045022811408a26644b300100181244c966002003025812c09604b132598009818801c56600200f0268992cc00400604f027813c09e26644b3001001814c4c96600200302a81540aa05513259800981b001c660026e9520029181b181b981b981b981b981b981b981b981b800c8c0d8c0dcc0dcc0dcc0dcc0dcc0dcc0dc0064606c606e606e606e606e606e606e002911119912cc004c09cc0dcdd5016c5660033001303b3038375403b3758600a60706ea80aa600860706ea80aa6eacc00cc0e0dd50152004899b8848000cc0040740aa2a6606c9201866578706563740a20202020736174697366696564280a20202020202073657474696e67732e6d696e745f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001640d5159800cc004c090c0e0dd500ecdd61802981c1baa02a9802181c1baa02a9bab3003303837540548012266e20cc0040740a920008a9981b2481866578706563740a20202020736174697366696564280a20202020202073657474696e67732e6275726e5f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001640d481a88888c8cc00400401488c9660026058003133028006375c6080607a6ea800a2b3001302d001899198008009bac3041303e375400644b30010018a518acc004cc014014c108006266004004608600314a081e1040456600260600031323300100137586082607c6ea800c896600200314a1159800998028029821000c528c4cc008008c10c00503c20808acc004cdc3a400c003132337126eb4c104004c8cc004004dd618211821801112cc0040062900044cc89660026601001000513370000290014400503f1821800998010011822000a082303d375400515980099b874802000626644b3001302f303e3754003132598009818181f9baa302c30403754605860806ea8022266e2400400e266e2000400d03d1bad3042303f375400314a081e0dd69820181e9baa0023040303d37546052607a6ea80162b30013370e9005000c4cc8966002605e607c6ea8006264b30013030303f3754605860806ea8c10cc100dd500444cdc4801800c4cdc4001800a07a375a6084607e6ea8006294103c1bad3040303d37540046080607a6ea8c100c0f4dd5002c4c8c8cc004004018896600200314a115980099baf003303f30430018a518998010011822000a07a410460166607e6080607a6ea80092f5c081d103a207440e881d103a181d9baa001223259800800c0d2264b3001303e0028992cc004cdc79bae303a00248810455534472008992cc004cc896600200314a11329800992cc004c0bcc0fcdd5000c4dd6982018219bab30433040375400314800103d1821000cdd798211821800cdd58012444b30010018acc004c008016266e2520000038a5040fd1325980099baf30420014c10140008acc004cdc49bad304330463756608600200913003374c608e00514a082022b300133712900000244c00c01a294104020803045001410c329800800c00e4466086004660866e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c1040066eacc108006608c0069112cc004cdc8a441000038acc004cdc7a441000038998029819198239ba60024bd70000c4cc015300103d87a8000006410919800803c006446600e0046609266ec0dd48029ba6004001401c82106088004821229422942294104319192cc004c0b4c0f4dd5000c4c96600266ebcc108c0fcdd51821181f9baa302b303f3754002601a660826ea400d2f5c1132598009817981f9baa0018992cc004cdd7982218209baa304430413754002601e660866ea40152f5c11329800800cdd5981718211baa00299198008009bab302f30433754605e60866ea8014896600200314bd6f7b63044c8cc11ccdd818220009ba632330010013756608c00444b30010018a5eb7bdb1822646609466ec0c11c004dd419b8148000dd698240009980180198260011825000a09033003003304900230470014114800888966002005100189919914c00401a609600b32330010010052259800800c4cc12ccdd81ba9004374c00697adef6c608994c004dd71824800cdd59825000cc1380092225980099b9000800389982799bb037520106e9801c0162b30013371e01000713259800981e98269baa00189982819bb0375201260a2609c6ea800400a20048258c966002b30010018a518a50413d14c0103d87a80008981d998281ba60014bd702096329800800c022006800888966002005100189919914c00401a60ae00b32330010010052259800800c4cc15ccdd81ba9004375000697adef6c608994c004dd7182a800cdd6982b000cc1680092225980099b9000800389982d99bb037520106ea001c0162b30013371e010007132598009824982c9baa00189982e19bb0375201260ba60b46ea800400a200482b8c966002609200314c0103d87a8000898239982e1ba80014bd7020ae3370000e00513305b337606ea400cdd400119803003000a0ac4158305800141588030dd718280009bad30510013053002414513304f337606ea400cdd300119803003000a0944128304c00141288030dd718220009bab304500130470024115153303f49013a657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742873637269707429001640f8608660806ea80062a6607c92013c65787065637420536f6d65286f757470757429203d206f75747075745f776974685f706f6c6963792874782e6f7574707574732c2073637269707429001640f46604c6eb0c0a4c0fcdd500411981598141bab302c30403754002009153303d49014065787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742873637269707429001640f06082607c6ea8006297adef6c6040ec660466eb0c100c0f4dd50030009bae303f303c3754604c60786ea8018dd31981f19bb0303f001374c6607c66ec0c0fcc100004dd400125eb7bdb1812f5bded8c110028a9981d2481786578706563740a202020206d61746368280a20202020202074726561737572795f64656c74612c0a2020202020205b5061697228726573657276655f706f6c6963792c205b5061697228726573657276655f6e616d652c206d696e745f616d6f756e74295d295d2c0a2020202020203e3d2c0a2020202029001640e46eb0c0f8c0fcc0fcc0fcc0ecdd5002c54cc0e5240113657870656374206e616d65203d3d2075736472001640e06eb4c0e800606a81d8c0f000503a1991192cc004c0acc0e8dd5000c52f5bded8c113756607c60766ea80050381919800800801912cc0040062980103d87a8000899192cc004cdc8802800c56600266e3c0140062605666080607c00497ae08a60103d87a800040ed133004004304200340ec6eb8c0f0004c0fc00503d1bab303b303c303c303c303c303837540026eb8c090c0e0dd51811181c1baa00240ad0331bae00140d860660028188dd700098190042066303000740b902640b86eb80050311817000a058375c002605a0048170c0ac00502918139baa0048102048810201481020148102050375800301f80fa05630280014098605000501d80ec07603a8148c0980050241813001406e03701b80da04e30240014088604800501980cc0660328128c088005020180f1baa00380ba036222329800800c0120068008888c966002602600313259800800c01a264b3001001803c01e00f0078992cc004c0ac00e00b00840a06eb800502b1814000a04c30243754007159800980a000c4c9660020030068992cc00400600f0078992cc004c0ac00e26601600244b3001002803c4c96600200319800805400626004605c006805201700b805c02d02f1816001205480420503758003007803a0563028001409860486ea800e2b300130170018992cc00400600d13259800800c01e00f132598009815801c4cc02c00489660020050078992cc0040063300100a800c4c008c0b800d00a402e01700b805a05e302c00240a900840a06eb000600f00740ac60500028130c090dd5001c56600266e1d20060018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009817001c4cc038004896600200500a8992cc0040063300100d800c4c008c0c400d00d403a01d00e8072064302f00240b500b40ac6eb000601500a40b860560028148dd68009815001401d02b1814000a04c3024375400715980099b8748020006264b300100180344c966002003007803c01e264b3001302b003802c0210281bad001803a0563028001409860486ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c96600260560070058042050375a00300740ac60500028130c090dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260560070058042050375c0028158c0a000502618121baa003802a04240848109021204240848108c088dd500111191980080080191198018009801001405602b01580aa0423007301b375464646644646644a6604066e5924012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea407922010013259800980918111baa00189929981119b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980c18121baa0018992cc0040062b300130153025375400313259800800c086264b3001001811408a045022899912cc0040060491325980098178014401a04a8160c0b400502b1bae001302c00240b460540028140c098dd5000c08102340820410208102056302830253754003153302349013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164088601c60486ea8c040c090dd5000981318119baa0018a99810a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640806601000203c60020026eb0c030c080dd5009111192cc00400e2646466446601400466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100920505980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81110221bac3025002375a60460026466ec0dd418118009ba73024001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6050003337149101023a200098008054c0a400600a805100a181580144ca6002015302800199b8a489023a200098008054c0a4006600e66008008004805100a18158012052302b00140a066e29220102207d0000340946eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a0028039006204a3758007133006375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc40012402914818229037204e3371666e000056600266e2000520148a40c11481b9027002200c33706002901019b8600148080cdc70020012048375c0068140dc5245022c200022323300100100322598009808000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003407880f08888c8cc004004014896600200310058992cc004006266008604e00400d1330053027002330030030014094604e0028120c0040048896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901b111980180111980418029bab3009301d37546012603a6ea80040088c00800488c8cc00400400c896600200314c103d87a80008992cc004c010006260146603e00297ae089980180198108012034301f0014074600a00a3011375400e6e1d2002370e90004022011008804202a3012300f3754007164030300e0013009375401f149a2a6600e92011856616c696461746f722072657475726e65642066616c7365001365640181" + : + "590b64010100229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007370e90014dc3a4001300937540089111192cc004c00c00a2b3001300f37540130018b20208acc004c01000a2b3001300f37540130018b20208b201a4034330012259800800c52f5c1133012300f30130013300200230140014045374a900048c048c04c00644646600200200644b30010018a508acc004cdc79bae30150010038a51899801001180b000a020404d230123013301300191191980080080191198018009801001244444466446644646644b3001300f301a375400513232323298009bac30220019811001cc08800922259800981300244cc020c09401c4cc020008566002602c60426ea8006264646644b3001302a00389919912cc004c0b400e33001374a900148c0b4c0b8c0b8c0b8c0b8c0b8c0b8c0b8c0b80064605a605c605c605c605c605c605c605c0032302d302e302e302e302e302e302e00148888cc89660026046605c6ea80a62b30019800981918179baa0169bac3005302f375404d3004302f375404d37566006605e6ea809900244cdc4240006600202c04d1640b5159800cc004c07cc0bcdd500b4dd6180298179baa026980218179baa0269bab3003302f375404c8012266e20cc00405809920008b205a40b44444646600200200a4464b300130280018998118031bae3037303437540051598009814800c4c8cc004004dd6181c181a9baa0032259800800c528c5660026600a00a6072003133002002303a0018a5040d081ba2b3001302c001899198008009bac30383035375400644b30010018a508acc004cc014014c0e40062946266004004607400281a1037456600266e1d200600189919b89375a607000264660020026eb0c0e4c0e8008896600200314800226644b300133008008002899b800014800a200281b8c0e8004cc008008c0ec005038181a1baa0028acc004cdc3a401000313322598009815981a9baa0018992cc004c0b0c0d8dd51813981b9baa30273037375401113371200200713371000200681a8dd6981c981b1baa0018a5040d06eb4c0dcc0d0dd5001181b981a1baa30243034375400b15980099b874802800626644b3001302b30353754003132598009816181b1baa3027303737546074606e6ea8022266e2400c006266e2000c0050351bad30393036375400314a081a0dd6981b981a1baa002303730343754606e60686ea8016264646600200200c44b30010018a508acc004cdd7801981b181d000c528c4cc008008c0ec0050352070300b3303630373034375400497ae040c88191032206440c88190c0c8dd500091192cc004c0d000626464b30013371e6eb8c0c40092210455534472008992cc004cc896600200314a11329800992cc004c0acc0d8dd5000c4dd6981b981d1bab303a30373754003148001035181c800cdd7981c981d000cdd58012444b30010018acc004c008016266e2520000038a5040dd1325980099baf30390014c10140008acc004cdc49bad303a303d3756607400200913003374c607c00514a081c22b300133712900000244c00c01a29410382070303c00140e8329800800c00e4466074004660746e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c0e00066eacc0e4006607a0069112cc004cdc8a441000038acc004cdc7a4410000389980298169981f1ba60024bd70000c4cc015300103d87a800000640e919800803c006446600e0046608066ec0dd48029ba6004001401c81d0607600481ca29422942294103a19192cc004c0a4c0d0dd5000c4c96600266ebcc0e4c0d8dd5181c981b1baa302630363754002601a660706ea400d2f5c1132598009815981b1baa0018992cc004cdd7981d981c1baa303b30383754002601e660746ea40152f5c11329800800cdd59814981c9baa00299198008009bab302a303a3754605460746ea8014896600200314bd6f7b63044c8cc0f8cdd8181d8009ba632330010013756607a00444b30010018a5eb7bdb1822646608266ec0c0f8004dd419b8148000dd6981f8009980180198218011820800a07e330030033040002303e00140f0800888966002005100189919914c00401a608400b32330010010052259800800c4cc108cdd81ba9004374c00697adef6c608994c004dd71820000cdd59820800cc1140092225980099b9000800389982319bb037520106e9801c0162b30013371e01000713259800981c98221baa00189982399bb037520126090608a6ea800400a20048218c966002b30010018a518a50411914c0103d87a80008981b198239ba60014bd702086329800800c022006800888966002005100189919914c00401a609c00b32330010010052259800800c4cc138cdd81ba9004375000697adef6c608994c004dd71826000cdd69826800cc1440092225980099b9000800389982919bb037520106ea001c0162b30013371e01000713259800982298281baa00189982999bb0375201260a860a26ea800400a20048278c966002608a00314c0103d87a800089821198299ba80014bd70209e3370000e005133052337606ea400cdd400119803003000a09c4138304f00141348030dd718238009bad3048001304a0024121133046337606ea400cdd300119803003000a0844108304300141048030dd7181d8009bab303c001303e00240f11640d86074606e6ea80062c81a8cc07cdd61812181b1baa00823302630213756604e606e6ea80040122c81a0c0e0c0d4dd5000c52f5bded8c08198cc070dd6181b981a1baa006001375c606c60666ea8c084c0ccdd50031ba63303533760606c0026e98cc0d4cdd8181b181b8009ba80024bd6f7b63025eb7bdb18220051640c46eb0c0d4c0d8c0d8c0d8c0c8dd5002c590301bad303100130330018b206233223259800981398189baa0018a5eb7bdb18226eacc0d4c0c8dd5000a06032330010010032259800800c5300103d87a8000899192cc004cdc8802800c56600266e3c0140062604c6606e606a00497ae08a60103d87a800040cd133004004303900340cc6eb8c0cc004c0d80050341bab30323033303330333033302f37540026eb8c07cc0bcdd5180e98179baa00245902a1bae302a001375c6054010605400f16409c6eb8c09c004dd71813801181380098111baa0018b20408b2046181100098108009810000980d9baa0028b203230093019375464b3001300e30193754003132598009809980d1baa0018992cc004c040c06cdd5000c4c8c8cc8966002604800710058b20423021001375c6042004604200260386ea80062c80d0c078c06cdd5000c590191804180d1baa300a301a3754603a60346ea80062c80c0cc004dd61804980c9baa0100163004004223300300223300a30053756601660366ea8c02cc06cdd500080111801800911919800800801912cc0040062980103d87a80008992cc004c010006260186603a00297ae0899801801980f8012032301d001406c600c00c44464b3001300c001899192cc004c07800a00916406c6eb8c070004c060dd5001c566002601a00313259800980e800c4cc018dd6180e000912cc00400a00b19800803cc07800a26002603e004803901c45901a180c1baa0038acc004c040006264b3001301d0018998031bac301c0012259800801401633001007980f00144c004c07c00900720388b20343018375400715980099b87480180062646644b3001301f0018998041bac301e0012259800801401e33001009981000144c004c084009009203c8b2038375a6038002603a00260306ea800e2b30013370e9004000c4c8c966002603c0050048b2036375a603800260306ea800e2b30013370e9005000c4c8c966002603c0050048b2036375a603800260306ea800e2b30013370e9006000c4c8c966002603c0050048b2036375c603800260306ea800e2c80b1016202c405880b1016202c301637540044590080c024004c010dd5005452689b2b20041", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_1ProtocolProtocolElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5914b1010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692015e657870656374205b50616972286e616d652c206d696e745f616d6f756e74295d203d0a2020202074782e6d696e74207c3e20746f6b656e732873657474696e67732e72656769737472792e7573647229207c3e20746f5f7061697273282900168a99801a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a492a6578706563742073657474696e67733a2053657474696e6773203d2070726f78792e73657474696e677300168a99801a491a72656465656d65723a2050726f746f636f6c52656465656d65720016488896600264653001300e00198071807800cdc3a4009300e00248889660026004601c6ea800e264b30010058999119912cc004c00c0062b300130143754013002806202a8acc004c0100062b300130143754013002806202a80620224044330012259800800c52f5c1133016301330170013300200230180014055374a900048c058c05c00644646600200200644b30010018a508acc004cdc79bae30190010038a51899801001180d000a026405d2301630173017001488888c8cc88c8c96600200313232598009806980e9baa0038992cc00400603113259800800c4c96600200301a8992cc004006264b300100180e44c96600200313259800800c07a264b300100180fc07e264b3001302b0038cc004022330010068acc004c058c098dd500244c9660020030218992cc004006045022811408a26644b300100181244c966002003025812c09604b132598009818801c56600200f0268992cc00400604f027813c09e26644b3001001814c4c96600200302a81540aa05513259800981b001c660026e9520029181b181b981b981b981b981b981b981b981b800c8c0d8c0dcc0dcc0dcc0dcc0dcc0dcc0dc0064606c606e606e606e606e606e606e002911119912cc004c09cc0dcdd5016c5660033001303b3038375403b3758600a60706ea80aa600860706ea80aa6eacc00cc0e0dd50152004899b8848000cc0040740aa2a6606c9201866578706563740a20202020736174697366696564280a20202020202073657474696e67732e6d696e745f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001640d5159800cc004c090c0e0dd500ecdd61802981c1baa02a9802181c1baa02a9bab3003303837540548012266e20cc0040740a920008a9981b2481866578706563740a20202020736174697366696564280a20202020202073657474696e67732e6275726e5f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001640d481a88888c8cc00400401488c9660026058003133028006375c6080607a6ea800a2b3001302d001899198008009bac3041303e375400644b30010018a518acc004cc014014c108006266004004608600314a081e1040456600260600031323300100137586082607c6ea800c896600200314a1159800998028029821000c528c4cc008008c10c00503c20808acc004cdc3a400c003132337126eb4c104004c8cc004004dd618211821801112cc0040062900044cc89660026601001000513370000290014400503f1821800998010011822000a082303d375400515980099b874802000626644b3001302f303e3754003132598009818181f9baa302c30403754605860806ea8022266e2400400e266e2000400d03d1bad3042303f375400314a081e0dd69820181e9baa0023040303d37546052607a6ea80162b30013370e9005000c4cc8966002605e607c6ea8006264b30013030303f3754605860806ea8c10cc100dd500444cdc4801800c4cdc4001800a07a375a6084607e6ea8006294103c1bad3040303d37540046080607a6ea8c100c0f4dd5002c4c8c8cc004004018896600200314a115980099baf003303f30430018a518998010011822000a07a410460166607e6080607a6ea80092f5c081d103a207440e881d103a181d9baa001223259800800c0d2264b3001303e0028992cc004cdc79bae303a00248810455534472008992cc004cc896600200314a11329800992cc004c0bcc0fcdd5000c4dd6982018219bab30433040375400314800103d1821000cdd798211821800cdd58012444b30010018acc004c008016266e2520000038a5040fd1325980099baf30420014c10140008acc004cdc49bad304330463756608600200913003374c608e00514a082022b300133712900000244c00c01a294104020803045001410c329800800c00e4466086004660866e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c1040066eacc108006608c0069112cc004cdc8a441000038acc004cdc7a441000038998029819198239ba60024bd70000c4cc015300103d87a8000006410919800803c006446600e0046609266ec0dd48029ba6004001401c82106088004821229422942294104319192cc004c0b4c0f4dd5000c4c96600266ebcc108c0fcdd51821181f9baa302b303f3754002601a660826ea400d2f5c1132598009817981f9baa0018992cc004cdd7982218209baa304430413754002601e660866ea40152f5c11329800800cdd5981718211baa00299198008009bab302f30433754605e60866ea8014896600200314bd6f7b63044c8cc11ccdd818220009ba632330010013756608c00444b30010018a5eb7bdb1822646609466ec0c11c004dd419b8148000dd698240009980180198260011825000a09033003003304900230470014114800888966002005100189919914c00401a609600b32330010010052259800800c4cc12ccdd81ba9004374c00697adef6c608994c004dd71824800cdd59825000cc1380092225980099b9000800389982799bb037520106e9801c0162b30013371e01000713259800981e98269baa00189982819bb0375201260a2609c6ea800400a20048258c966002b30010018a518a50413d14c0103d87a80008981d998281ba60014bd702096329800800c022006800888966002005100189919914c00401a60ae00b32330010010052259800800c4cc15ccdd81ba9004375000697adef6c608994c004dd7182a800cdd6982b000cc1680092225980099b9000800389982d99bb037520106ea001c0162b30013371e010007132598009824982c9baa00189982e19bb0375201260ba60b46ea800400a200482b8c966002609200314c0103d87a8000898239982e1ba80014bd7020ae3370000e00513305b337606ea400cdd400119803003000a0ac4158305800141588030dd718280009bad30510013053002414513304f337606ea400cdd300119803003000a0944128304c00141288030dd718220009bab304500130470024115153303f49013a657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742873637269707429001640f8608660806ea80062a6607c92013c65787065637420536f6d65286f757470757429203d206f75747075745f776974685f706f6c6963792874782e6f7574707574732c2073637269707429001640f46604c6eb0c0a4c0fcdd500411981598141bab302c30403754002009153303d49014065787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742873637269707429001640f06082607c6ea8006297adef6c6040ec660466eb0c100c0f4dd50030009bae303f303c3754604c60786ea8018dd31981f19bb0303f001374c6607c66ec0c0fcc100004dd400125eb7bdb1812f5bded8c110028a9981d2481786578706563740a202020206d61746368280a20202020202074726561737572795f64656c74612c0a2020202020205b5061697228726573657276655f706f6c6963792c205b5061697228726573657276655f6e616d652c206d696e745f616d6f756e74295d295d2c0a2020202020203e3d2c0a2020202029001640e46eb0c0f8c0fcc0fcc0fcc0ecdd5002c54cc0e5240113657870656374206e616d65203d3d2075736472001640e06eb4c0e800606a81d8c0f000503a1991192cc004c0acc0e8dd5000c52f5bded8c113756607c60766ea80050381919800800801912cc0040062980103d87a8000899192cc004cdc8802800c56600266e3c0140062605666080607c00497ae08a60103d87a800040ed133004004304200340ec6eb8c0f0004c0fc00503d1bab303b303c303c303c303c303837540026eb8c090c0e0dd51811181c1baa00240ad0331bae00140d860660028188dd700098190042066303000740b902640b86eb80050311817000a058375c002605a0048170c0ac00502918139baa0048102048810201481020148102050375800301f80fa05630280014098605000501d80ec07603a8148c0980050241813001406e03701b80da04e30240014088604800501980cc0660328128c088005020180f1baa00380ba036222329800800c0120068008888c966002602600313259800800c01a264b3001001803c01e00f0078992cc004c0ac00e00b00840a06eb800502b1814000a04c30243754007159800980a000c4c9660020030068992cc00400600f0078992cc004c0ac00e26601600244b3001002803c4c96600200319800805400626004605c006805201700b805c02d02f1816001205480420503758003007803a0563028001409860486ea800e2b300130170018992cc00400600d13259800800c01e00f132598009815801c4cc02c00489660020050078992cc0040063300100a800c4c008c0b800d00a402e01700b805a05e302c00240a900840a06eb000600f00740ac60500028130c090dd5001c56600266e1d20060018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009817001c4cc038004896600200500a8992cc0040063300100d800c4c008c0c400d00d403a01d00e8072064302f00240b500b40ac6eb000601500a40b860560028148dd68009815001401d02b1814000a04c3024375400715980099b8748020006264b300100180344c966002003007803c01e264b3001302b003802c0210281bad001803a0563028001409860486ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c96600260560070058042050375a00300740ac60500028130c090dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260560070058042050375c0028158c0a000502618121baa003802a04240848109021204240848108c088dd500111191980080080191198018009801001405602b01580aa0423007301b375464646644646644a6604066e5924012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea407922010013259800980918111baa00189929981119b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980c18121baa0018992cc0040062b300130153025375400313259800800c086264b3001001811408a045022899912cc0040060491325980098178014401a04a8160c0b400502b1bae001302c00240b460540028140c098dd5000c08102340820410208102056302830253754003153302349013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164088601c60486ea8c040c090dd5000981318119baa0018a99810a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640806601000203c60020026eb0c030c080dd5009111192cc00400e2646466446601400466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100920505980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81110221bac3025002375a60460026466ec0dd418118009ba73024001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6050003337149101023a200098008054c0a400600a805100a181580144ca6002015302800199b8a489023a200098008054c0a4006600e66008008004805100a18158012052302b00140a066e29220102207d0000340946eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a0028039006204a3758007133006375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc40012402914818229037204e3371666e000056600266e2000520148a40c11481b9027002200c33706002901019b8600148080cdc70020012048375c0068140dc5245022c200022323300100100322598009808000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003407880f08888c8cc004004014896600200310058992cc004006266008604e00400d1330053027002330030030014094604e0028120c0040048896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901b111980180111980418029bab3009301d37546012603a6ea80040088c00800488c8cc00400400c896600200314c103d87a80008992cc004c010006260146603e00297ae089980180198108012034301f0014074600a00a3011375400e6e1d2002370e90004022011008804202a3012300f3754007164030300e0013009375401f149a2a6600e92011856616c696461746f722072657475726e65642066616c7365001365640181" + : + "590b64010100229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007370e90014dc3a4001300937540089111192cc004c00c00a2b3001300f37540130018b20208acc004c01000a2b3001300f37540130018b20208b201a4034330012259800800c52f5c1133012300f30130013300200230140014045374a900048c048c04c00644646600200200644b30010018a508acc004cdc79bae30150010038a51899801001180b000a020404d230123013301300191191980080080191198018009801001244444466446644646644b3001300f301a375400513232323298009bac30220019811001cc08800922259800981300244cc020c09401c4cc020008566002602c60426ea8006264646644b3001302a00389919912cc004c0b400e33001374a900148c0b4c0b8c0b8c0b8c0b8c0b8c0b8c0b8c0b80064605a605c605c605c605c605c605c605c0032302d302e302e302e302e302e302e00148888cc89660026046605c6ea80a62b30019800981918179baa0169bac3005302f375404d3004302f375404d37566006605e6ea809900244cdc4240006600202c04d1640b5159800cc004c07cc0bcdd500b4dd6180298179baa026980218179baa0269bab3003302f375404c8012266e20cc00405809920008b205a40b44444646600200200a4464b300130280018998118031bae3037303437540051598009814800c4c8cc004004dd6181c181a9baa0032259800800c528c5660026600a00a6072003133002002303a0018a5040d081ba2b3001302c001899198008009bac30383035375400644b30010018a508acc004cc014014c0e40062946266004004607400281a1037456600266e1d200600189919b89375a607000264660020026eb0c0e4c0e8008896600200314800226644b300133008008002899b800014800a200281b8c0e8004cc008008c0ec005038181a1baa0028acc004cdc3a401000313322598009815981a9baa0018992cc004c0b0c0d8dd51813981b9baa30273037375401113371200200713371000200681a8dd6981c981b1baa0018a5040d06eb4c0dcc0d0dd5001181b981a1baa30243034375400b15980099b874802800626644b3001302b30353754003132598009816181b1baa3027303737546074606e6ea8022266e2400c006266e2000c0050351bad30393036375400314a081a0dd6981b981a1baa002303730343754606e60686ea8016264646600200200c44b30010018a508acc004cdd7801981b181d000c528c4cc008008c0ec0050352070300b3303630373034375400497ae040c88191032206440c88190c0c8dd500091192cc004c0d000626464b30013371e6eb8c0c40092210455534472008992cc004cc896600200314a11329800992cc004c0acc0d8dd5000c4dd6981b981d1bab303a30373754003148001035181c800cdd7981c981d000cdd58012444b30010018acc004c008016266e2520000038a5040dd1325980099baf30390014c10140008acc004cdc49bad303a303d3756607400200913003374c607c00514a081c22b300133712900000244c00c01a29410382070303c00140e8329800800c00e4466074004660746e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c0e00066eacc0e4006607a0069112cc004cdc8a441000038acc004cdc7a4410000389980298169981f1ba60024bd70000c4cc015300103d87a800000640e919800803c006446600e0046608066ec0dd48029ba6004001401c81d0607600481ca29422942294103a19192cc004c0a4c0d0dd5000c4c96600266ebcc0e4c0d8dd5181c981b1baa302630363754002601a660706ea400d2f5c1132598009815981b1baa0018992cc004cdd7981d981c1baa303b30383754002601e660746ea40152f5c11329800800cdd59814981c9baa00299198008009bab302a303a3754605460746ea8014896600200314bd6f7b63044c8cc0f8cdd8181d8009ba632330010013756607a00444b30010018a5eb7bdb1822646608266ec0c0f8004dd419b8148000dd6981f8009980180198218011820800a07e330030033040002303e00140f0800888966002005100189919914c00401a608400b32330010010052259800800c4cc108cdd81ba9004374c00697adef6c608994c004dd71820000cdd59820800cc1140092225980099b9000800389982319bb037520106e9801c0162b30013371e01000713259800981c98221baa00189982399bb037520126090608a6ea800400a20048218c966002b30010018a518a50411914c0103d87a80008981b198239ba60014bd702086329800800c022006800888966002005100189919914c00401a609c00b32330010010052259800800c4cc138cdd81ba9004375000697adef6c608994c004dd71826000cdd69826800cc1440092225980099b9000800389982919bb037520106ea001c0162b30013371e01000713259800982298281baa00189982999bb0375201260a860a26ea800400a20048278c966002608a00314c0103d87a800089821198299ba80014bd70209e3370000e005133052337606ea400cdd400119803003000a09c4138304f00141348030dd718238009bad3048001304a0024121133046337606ea400cdd300119803003000a0844108304300141048030dd7181d8009bab303c001303e00240f11640d86074606e6ea80062c81a8cc07cdd61812181b1baa00823302630213756604e606e6ea80040122c81a0c0e0c0d4dd5000c52f5bded8c08198cc070dd6181b981a1baa006001375c606c60666ea8c084c0ccdd50031ba63303533760606c0026e98cc0d4cdd8181b181b8009ba80024bd6f7b63025eb7bdb18220051640c46eb0c0d4c0d8c0d8c0d8c0c8dd5002c590301bad303100130330018b206233223259800981398189baa0018a5eb7bdb18226eacc0d4c0c8dd5000a06032330010010032259800800c5300103d87a8000899192cc004cdc8802800c56600266e3c0140062604c6606e606a00497ae08a60103d87a800040cd133004004303900340cc6eb8c0cc004c0d80050341bab30323033303330333033302f37540026eb8c07cc0bcdd5180e98179baa00245902a1bae302a001375c6054010605400f16409c6eb8c09c004dd71813801181380098111baa0018b20408b2046181100098108009810000980d9baa0028b203230093019375464b3001300e30193754003132598009809980d1baa0018992cc004c040c06cdd5000c4c8c8cc8966002604800710058b20423021001375c6042004604200260386ea80062c80d0c078c06cdd5000c590191804180d1baa300a301a3754603a60346ea80062c80c0cc004dd61804980c9baa0100163004004223300300223300a30053756601660366ea8c02cc06cdd500080111801800911919800800801912cc0040062980103d87a80008992cc004c010006260186603a00297ae0899801801980f8012032301d001406c600c00c44464b3001300c001899192cc004c07800a00916406c6eb8c070004c060dd5001c566002601a00313259800980e800c4cc018dd6180e000912cc00400a00b19800803cc07800a26002603e004803901c45901a180c1baa0038acc004c040006264b3001301d0018998031bac301c0012259800801401633001007980f00144c004c07c00900720388b20343018375400715980099b87480180062646644b3001301f0018998041bac301e0012259800801401e33001009981000144c004c084009009203c8b2038375a6038002603a00260306ea800e2b30013370e9004000c4c8c966002603c0050048b2036375a603800260306ea800e2b30013370e9005000c4c8c966002603c0050048b2036375a603800260306ea800e2b30013370e9006000c4c8c966002603c0050048b2036375c603800260306ea800e2c80b1016202c405880b1016202c301637540044590080c024004c010dd5005452689b2b20041", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_1TreasuryTreasuryMint { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "59086f0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c96600266e3cdd7180b0019bae3016001899b87375a602c602e00290014528202030163758602a00319800801cc05800a602c002801a294100f2026404d14a3153300d491856578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c20285f2c2061637475616c2c20616d742929207b206578706563746564203d3d2061637475616c20262620616d74203d3d2031207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5902e40101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d159800992cc004cdc79bae3014003375c602800313370e6eb4c050c05400520028a50403c60286eb0c04c00633001003980a0014c0500050034528201c4044808a29462c805a2c8058dd7180798061baa0068acc004cdc3a400400b133223322329800912cc00400629422b30013375e0066024602c00314a31330020023017001404480a26028602a00b30140054888cc00c00cdd5980b980c180c180c180c180c180c180a1baa00a19ba548008cc048c04cc040dd5192cc004c024c040dd5000c4c96600266e1d20043011375400313259800980598091baa0018991919912cc004c06c00e200b16406060300026eb8c060008c060004c04cdd5000c59011180a98091baa0018b202030143015301530113754600460226ea8c050c044dd5000c5900f198039bac30013010375400c4646600200260086eacc00cc048dd5180198091baa0022259800800c528456600266e3cdd7180b0008084528c4cc008008c05c00501120284bd70180080091809180980098061baa0062259800800c52f5c1133010300d3011001330020023012001403d164028805060126014002601200260086ea802629344d95900201", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_1TreasuryTreasurySpend { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "59086f0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c96600266e3cdd7180b0019bae3016001899b87375a602c602e00290014528202030163758602a00319800801cc05800a602c002801a294100f2026404d14a3153300d491856578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c20285f2c2061637475616c2c20616d742929207b206578706563746564203d3d2061637475616c20262620616d74203d3d2031207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5902e40101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d159800992cc004cdc79bae3014003375c602800313370e6eb4c050c05400520028a50403c60286eb0c04c00633001003980a0014c0500050034528201c4044808a29462c805a2c8058dd7180798061baa0068acc004cdc3a400400b133223322329800912cc00400629422b30013375e0066024602c00314a31330020023017001404480a26028602a00b30140054888cc00c00cdd5980b980c180c180c180c180c180c180a1baa00a19ba548008cc048c04cc040dd5192cc004c024c040dd5000c4c96600266e1d20043011375400313259800980598091baa0018991919912cc004c06c00e200b16406060300026eb8c060008c060004c04cdd5000c59011180a98091baa0018b202030143015301530113754600460226ea8c050c044dd5000c5900f198039bac30013010375400c4646600200260086eacc00cc048dd5180198091baa0022259800800c528456600266e3cdd7180b0008084528c4cc008008c05c00501120284bd70180080091809180980098061baa0062259800800c52f5c1133010300d3011001330020023012001403d164028805060126014002601200260086ea802629344d95900201", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_1TreasuryTreasuryElse { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "59086f0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c96600266e3cdd7180b0019bae3016001899b87375a602c602e00290014528202030163758602a00319800801cc05800a602c002801a294100f2026404d14a3153300d491856578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c20285f2c2061637475616c2c20616d742929207b206578706563746564203d3d2061637475616c20262620616d74203d3d2031207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5902e40101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d159800992cc004cdc79bae3014003375c602800313370e6eb4c050c05400520028a50403c60286eb0c04c00633001003980a0014c0500050034528201c4044808a29462c805a2c8058dd7180798061baa0068acc004cdc3a400400b133223322329800912cc00400629422b30013375e0066024602c00314a31330020023017001404480a26028602a00b30140054888cc00c00cdd5980b980c180c180c180c180c180c180a1baa00a19ba548008cc048c04cc040dd5192cc004c024c040dd5000c4c96600266e1d20043011375400313259800980598091baa0018991919912cc004c06c00e200b16406060300026eb8c060008c060004c04cdd5000c59011180a98091baa0018b202030143015301530113754600460226ea8c050c044dd5000c5900f198039bac30013010375400c4646600200260086eacc00cc048dd5180198091baa0022259800800c528456600266e3cdd7180b0008084528c4cc008008c05c00501120284bd70180080091809180980098061baa0062259800800c52f5c1133010300d3011001330020023012001403d164028805060126014002601200260086ea802629344d95900201", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} \ No newline at end of file diff --git a/modules/realfi-partner-sdk/src/generated-types/v0_2/index.ts b/modules/realfi-partner-sdk/src/generated-types/v0_2/index.ts new file mode 100644 index 0000000000..e920103e4f --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/v0_2/index.ts @@ -0,0 +1,154 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +import { type PlutusData } from "@blaze-cardano/core"; +type Data = PlutusData; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ + MultisigScript: Type.Union([ + Type.Object({ + Signature: Type.Object({ + key_hash: Type.String(), + }, { ctor: 0n }) + }), + Type.Object({ + AllOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 1n }) + }), + Type.Object({ + AnyOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 2n }) + }), + Type.Object({ + AtLeast: Type.Object({ + required: Type.BigInt(), + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 3n }) + }), + Type.Object({ + Before: Type.Object({ + time: Type.BigInt(), + }, { ctor: 4n }) + }), + Type.Object({ + After: Type.Object({ + time: Type.BigInt(), + }, { ctor: 5n }) + }), + Type.Object({ + Script: Type.Object({ + script_hash: Type.String(), + }, { ctor: 6n }) + }), + ]), + Asset: Type.Tuple([ + Type.String(), + Type.String(), + ]), + Registry: Type.Object({ + treasury: Type.String(), + usdr: Type.String(), + }, { ctor: 0n }), + ProtocolRedeemer: Type.Union([ + Type.Literal("Mint", { ctor: 0n }), + Type.Literal("Burn", { ctor: 1n }), + Type.Object({ + Withdraw: Type.Object({ + withdraw_amount: Type.BigInt(), + }, { ctor: 2n }) + }), + Type.Object({ + Deposit: Type.Object({ + deposit_amount: Type.BigInt(), + }, { ctor: 3n }) + }), + ]), + ProxyDatum: Type.Object({ + logic: Type.String(), + settings: Type.Ref("Settings"), + }, { ctor: 0n }), + Settings: Type.Object({ + mint_permission: Type.Ref("MultisigScript"), + burn_permission: Type.Ref("MultisigScript"), + withdraw_permission: Type.Ref("MultisigScript"), + deposit_permission: Type.Ref("MultisigScript"), + registry: Type.Ref("Registry"), + reserve_token: Type.Ref("Asset"), + }, { ctor: 0n }), +}); + +export const MultisigScript = Contracts.Import("MultisigScript"); +export type MultisigScript = Exact; +export const Asset = Contracts.Import("Asset"); +export type Asset = Exact; +export const Registry = Contracts.Import("Registry"); +export type Registry = Exact; +export const ProtocolRedeemer = Contracts.Import("ProtocolRedeemer"); +export type ProtocolRedeemer = Exact; +export const ProxyDatum = Contracts.Import("ProxyDatum"); +export type ProxyDatum = Exact; +export const Settings = Contracts.Import("Settings"); +export type Settings = Exact; + +export class V0_2ProtocolProtocolWithdraw { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "591944010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a66006920130657870656374206f75747075745f646174756d3a205472656173757279446174756d203d206f75747075745f6461746100168a99801a492e65787065637420696e7075745f646174756d3a205472656173757279446174756d203d20696e7075745f6461746100168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a498a6578706563740a20202020736174697366696564280a20202020202073657474696e67732e77697468647261775f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900168a99801a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a492a6578706563742073657474696e67733a2053657474696e6773203d2070726f78792e73657474696e677300168a99801a491a72656465656d65723a2050726f746f636f6c52656465656d65720016488888896600264653001301100198089809000cdc3a400930110024888966002600460226ea800e264b30010058cc004dc3a4005370e90034dc3a40013012375400a9111192cc004c00c00a2b300130183754015001806a0328acc004c01400a2b300130183754015001806a0328acc004c02000a264b300100180744c96600200300f807c03e264b3001301f003802404101c1bad001807a03e301c001406860306ea802a2b300130040028992cc00400601d13259800800c03e01f00f8992cc004c07c00e00901040706eb400601e80f8c07000501a180c1baa00a806a02a405480a90150cc004896600200314bd7044cc06cc060c070004cc008008c07400501a4dd2a40012301b301c001911919800800801912cc00400629422b30013371e6eb8c07800400e2946266004004603e00280c101c48c06cc070c07000522222323322323259800800c4c8c966002601c60446ea800e264b300100180d44c96600200313259800800c072264b30010018992cc00400603d13259800800c4c9660020030208992cc004006264b300100181144c96600200313259800800c092264b3001001812c096264b300130340038cc0040323300100a8cc004022330010068acc004c06cc0bcdd500244c9660020030278992cc00400605102881440a226644b300100181544c96600200302b815c0ae05713259800981d001c56600200f02c8992cc00400605b02d816c0b626644b3001001817c4c96600200303081840c206113259800981f801c660026e9520029181f98201820182018201820182018201820000c8c0fcc100c100c100c100c100c100c1000064607e608060806080608060806080003222598009814981e9baa0038992cc00400600513259800800c00e0070038992cc004c11400e00b00441086eb40060068228c108005040181f1baa003800a0769181f9820182018201820000c8966002003148002266e01200233002002304100140f9303a375405b371090002444444444646644b300130320058acc00660026094608e6ea809e6eb0c02cc11cdd501b4c028c11cdd501b4dd5980498239baa0364005130049800813c0da900020048a99822a481866578706563740a20202020736174697366696564280a20202020202073657474696e67732e6d696e745f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900164111159800981a002c5660033001302e3047375404f37586016608e6ea80da6014608e6ea80da6eacc024c11cdd501b2002899b889800813c0da90002004480022a6608a9201866578706563740a20202020736174697366696564280a20202020202073657474696e67732e6275726e5f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900164111159800981b802c4c9660033001302d304837540513758601860906ea80de601660906ea80de6eacc028c120dd501ba0048acc004c01400626067300102881bc005003454cc1192411a6578706563742077697468647261775f616d6f756e74203e20300016411504041146eb4c128c11cdd501cc4c9660033001302d304837540513758601860906ea80de601660906ea80de6eacc028c120dd501ba0048acc004c01400626067300102881bccdc1000a4002801a2a6608c920119657870656374206465706f7369745f616d6f756e74203e20300016411504041146eb4c128c11cdd501ca08841108220888c8cc896600266e1cdd6982700080144c9660026644b30010018a508994c004c9660026076609e6ea800626eb4c140c14cdd5982998281baa0018a40008268c1480066ebcc148c14c0066eac00922259800800c566002600400b1337129000001c528209e8992cc004cdd79829000a6010140008acc004cdc49bad30533056375660a600200913003374c60ae00514a082822b300133712900000244c00c01a294105020a03055001414c329800800c00e44660a6004660a66e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c1440066eacc14800660ac0069112cc004cdc8a441000038acc004cdc7a44100003899802981e9982b9ba60024bd70000c4cc015300103d87a8000006414919800803c006446600e004660b266ec0dd48029ba6004001401c829060a800482922942294229410531bab3033002374c6609c66ec0c13c004dd31982719bb0304f3050001375066e0400c0152f5bded8c097adef6c608801c54cc1292401be6578706563740a202020206d61746368280a20202020202074726561737572795f64656c74612e326e642c0a2020202020205b0a202020202020202050616972280a20202020202020202020726573657276655f706f6c6963792c0a202020202020202020205b5061697228726573657276655f6e616d652c206d696e745f616d6f756e74202d2077697468647261775f616d6f756e74295d2c0a2020202020202020292c0a2020202020205d2c0a2020202020203e3d2c0a2020202029001641246eb0c138c13cc13cc13cc13cc13cc12cdd5003454cc1252401286578706563742074726561737572795f64656c74612e317374203d3d206d696e745f616d6f756e7400164120b3001303430050018a4001159800800c10a264b3001304e0028acc004cdc79bae3049001488104555344720089bad304a0018a998242491d657870656374206e616d65203d3d20636f6e7374616e74732e757364720016411d043412c6098002825104619192cc004c0d8c128dd5000c4c96600266ebcc13cc130dd5182798261baa3033304c375400260226609c6ea400d2f5c113259800981e98261baa0018992cc004006330010018992cc004c0e8c138dd5000c4c96600266ebcc14cc140dd5182998281baa001301533052375200e97ae08992cc004c104c140dd5000c4c96600200319800800c4cc150dd419b81375a60aa60a46ea8004dd6982a98291baa00533054374c6530010019bab303a3053375400932330010013756607660a86ea8c0ecc150dd5004912cc004006297adef6c608991982c19bb03055001374c64660020026eacc15c008896600200314bd6f7b63044c8cc16ccdd8182c0009ba83370290001bad305900133003003305d002305b00141646600600660b400460b000282b10011112cc00400a2003132332298008034c170016646600200200a44b300100189982e19bb037520086e9800d2f5bded8c113298009bae305a0019bab305b001982f8012444b300133720010007133060337606ea4020dd3003802c56600266e3c02000e264b3001304a305e3754003133061337606ea4024c188c17cdd50008014400905c192cc0056600200314a314a083022980103d87a800089823998309ba60014bd7020b8329800800c022006800888966002005100189919914c00401a60d000b32330010010052259800800c4cc1a0cdd81ba9004375000697adef6c608994c004dd71833000cdd69833800cc1ac0092225980099b9000800389983619bb037520106ea001c0162b30013371e01000713259800982b18351baa00189983699bb0375201260dc60d66ea800400a20048340c96600260ac00314c0103d87a800089829998369ba80014bd7020d03370000e00513306c337606ea400cdd400119803003000a0ce419c3069001419c8030dd718308009bad306200130640024189133060337606ea400cdd300119803003000a0b6416c305d001416c8030dd7182a8009bab30560013058002415897ae0826a026826c13609b04d415c60a860a26ea80062a6609e92012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d00164138606a60a06ea80062a6609c92013a657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2053637269707428736372697074290016413460a4609e6ea80062a6609a92013c65787065637420536f6d65286f757470757429203d206f75747075745f776974685f706f6c6963792874782e6f7574707574732c207363726970742900164130660606eb0c0ccc138dd500411981a98191bab3036304f375400200d048403d04882441220908298c140c134dd5000c54cc12d2413365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d00164128606260986ea8c0ccc130dd5000c54cc12924014065787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287363726970742900164124609c60966ea8006297ae110100008101a00020903302b3758609a60946ea8010004dd7182618249baa300930493754008664464b30013038304a375400314bd6f7b63044dd5982718259baa0014120646600200200644b30010018a60103d87a8000899192cc004cdc8802800c56600266e3c0140062606c660a0609c00497ae08a60103d87a8000412d1330040043052003412c6eb8c130004c13c00504d1bab3008304837540046eb8c0bcc120dd5180418241baa00322223233001001005223259800981b800c4cc0c8018dd7182798261baa0028acc004c0e4006264660020026eb0c140c134dd5001912cc00400629462b30013300500530510018998010011829000c5282096413d159800981e000c4c8cc004004dd6182818269baa0032259800800c52845660026600a00a60a200314a31330020023052001412c827a2b3001303800189919b89375a60a000264660020026eb0c144c148008896600200314800226644b300133008008002899b800014800a20028270c148004cc008008c14c00505018261baa0028acc004cdc3a40100031332259800981d98269baa0018992cc004c0f0c138dd5181b18279baa3036304f37540111337120020071337100020068260dd6982898271baa0018a50412c6eb4c13cc130dd5001182798261baa3033304c375400b15980099b874802800626644b3001303b304d375400313259800981e18271baa3036304f375460a4609e6ea8022266e2400c006266e2000c00504c1bad3051304e375400314a08258dd6982798261baa002304f304c3754609e60986ea8016264646600200200c44b30010018a508acc004cdd780198271829000c528c4cc008008c14c00504c20a030113304e304f304c375400497ae041248249049209241248248c128dd50009801801a06281e0dd7000a07e303c00140e86eb8004c0ec02103c181c803a06e816206e375c00281d0c0dc0050351bae001303600240dc60680028190c0c0dd5002409902d409900e409900e409900e409900e40990311bac001812c0950341818800a05e3031002811c08e04702340c8605e0028168c0bc00a043021810c0850301816800a056302d00280fc07e03f01f40b860560028148c0ac00a03b01d80ec07502c1814800a04e302900280dc06e03701b40a8604e0028128c08cdd5001c065020111194c004006009003400444464b300130140018992cc00400600d13259800800c01e00f007803c4c9660026060007005804205a375c0028180c0b400502b18149baa0038acc004c058006264b300100180344c966002003007803c4c966002606000713300b0012259800801401e264b30010018cc00402a003130023033003402900b805c02e01681a0c0c400902f402102d1bac001803c01d0301816800a05630293754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0c000e26601600244b3001002803c4c966002003198008054006260046066006805201700b805c02d0341818801205e804205a3758003007803a060302d00140ac60526ea800e2b300130150018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009819801c4cc038004896600200500a8992cc0040063300100d800c4c008c0d800d00d403a01d00e807206e303400240c900b40c06eb000601500a40cc60600028170dd68009817801401d0301816800a0563029375400715980099b8748020006264b300100180344c966002003007803c01e264b30013030003802c02102d1bad001803a060302d00140ac60526ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c9660026060007005804205a375a00300740c0605a0028158c0a4dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c9660026060007005804205a375c0028180c0b400502b18149baa003802a04c40988131026204c40988130c09cdd500111191980080080191198018009801001405e02f01780ba04c30073020375464646644646644a6604a66e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea408d22010013259800980998139baa00189929981399b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980d18149baa0018992cc0040062b30013016302a375400313259800800c08e264b30010018124092049024899912cc00400604d13259800981a0014401a04e8188c0c80050301bae001303100240c8605e0028168c0acdd5000c089028408a0450228112060302d302a3754003153302849013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d0016409c601c60526ea8c040c0a4dd5000981598141baa0018a9981324814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640946601000204660020026eb0c030c094dd500a111192cc00400e2646466446601400466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a0028051009205a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81390271bac302a002375a60500026466ec0dd418140009ba73029001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a605a003337149101023a200098008054c0b800600a805100a181800144ca6002015302d00199b8a489023a200098008054c0b8006600e66008008004805100a1818001205c303000140b466e29220102207d0000340a86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900620543758007133006375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720583371666e000056600266e2000520148a40c11481b902c002200c33706002901019b8600148080cdc70020012052375c0068168dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003408c81188888c8cc004004014896600200310058992cc004006266008605800400d133005302c0023300300300140a860580028148c0040048896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c00028019020111980180111980418029bab300930223754601260446ea80040088c00800488c8cc00400400c896600200314c103d87a80008992cc004c010006260146604800297ae08998018019813001203e30240014088600a00a4022011008804203030153012375400716403c3011001300c3754025149a2a660149211856616c696461746f722072657475726e65642066616c7365001365640241" + : + "590d5b010100229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007370e90014dc3a400d370e90004c024dd500224444464b300130030028acc004c040dd500540062c808a2b300130050028acc004c040dd500540062c808a2b30013008002899192cc004c05800a00716404c6eb4c050004c040dd5005456600260080051323259800980b001400e2c8098dd6980a00098081baa00a8b201c4038807100e0cc004896600200314bd7044cc04cc040c050004cc008008c0540050124dd2a4001230133014001911919800800801912cc00400629422b30013371e6eb8c05800400e2946266004004602e002808901448c04cc050c05000644646600200200644660060026004004911111199119911919912cc004c03cc06cdd500144c8c8c8c8c8ca60026eb0c094006604a00b30250049812801cc0940092222259800981580344cc030c0a802c4cc0300104cc03000c4cc0300085660026034604c6ea8006264646644b3001302f00389919912cc004c0c800e33001374a900148c0c8c0ccc0ccc0ccc0ccc0ccc0ccc0ccc0cc00646064606660666066606660666066606600323032303330333033303330333033001912cc004c08cc0bcdd500144c8c966002606c0050038b2066375a606800260606ea800a2c81724606460666066606660660032259800800c52000899b8048008cc008008c0d00050314c0b4dd50144dc4240009111111111919912cc004c0b40162b30019800981e981d1baa0209bac300b303a3754063300a303a37540633756601260746ea80c500144c0126002041031a400080122c81c22b3001302f0058acc0066002605260746ea80826eb0c02cc0e8dd5018cc028c0e8dd5018cdd59804981d1baa03140051337113001020818d2000400890004590384566002606400b13259800cc004c0a0c0ecdd5010cdd61806181d9baa0329805981d9baa0329bab300a303b375406480122b30013005001898174c004086065001400d1640e51640e46eb4c0f4c0e8dd501a44c96600330013028303b37540433758601860766ea80ca601660766ea80ca6eacc028c0ecdd501920048acc004c0140062605d30010218194cdc1000a4002801a2c81ca2c81c8dd6981e981d1baa03440e081c10381111919912cc004cdc39bad30410010028992cc004cc896600200314a11329800992cc004c0d8c108dd5000c4dd6982198231bab3046304337540031480010411822800cdd798229823000cdd58012444b30010018acc004c008016266e2520000038a50410d1325980099baf30450014c010140008acc004cdc49bad304630493756608c00200913003374c609400514a082222b300133712900000244c00c01a2941044208830480014118329800800c00e446608c0046608c6e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c1100066eacc11400660920069112cc004cdc8a441000038acc004cdc7a44100003899802981c198251ba60024bd70000c4cc015300103d87a8000006411919800803c006446600e0046609866ec0dd48029ba6004001401c8230608e004822a2942294229410461bab302e002374c6608266ec0c108004dd31982099bb030423043001375066e0400c0152f5bded8c097adef6c608801c5903d1bac304130423042304230423042303e375400d1640f0b3001302f30050018a40011598009820000c4c96600266e3cdd7181e000a44104555344720089bad303d0018b2076303f0018b207a40e86464b30013031303d37540031325980099baf3042303f37546084607e6ea8c0b8c0fcdd50009808998209ba90034bd7044c9660026070607e6ea80062646601e002264b30013035304137540031325980099baf304630433754608c60866ea8004c054cc114dd4803a5eb82264b3001303c3043375400313233013001133047375066e04dd6982418229baa001375a6090608a6ea8014cc11cdd3194c0040066eacc0d4c118dd50024c8cc004004dd5981b18239baa30363047375401244b30010018a5eb7bdb1822646609666ec0c120004dd319198008009bab304a0022259800800c52f5bded8c11323304e3376060960026ea0cdc0a40006eb4c130004cc00c00cc140008c13800504c1980180198268011825800a0924004444b30010028800c4c8cc8a600200d304f0059919800800802912cc00400626609e66ec0dd48021ba60034bd6f7b63044ca60026eb8c1340066eacc13800660a40049112cc004cdc8004001c4cc14ccdd81ba9008374c00e00b15980099b8f0080038992cc004c114c144dd5000c4cc150cdd81ba90093055305237540020051002414064b300159800800c528c52820a68a6103d87a8000898211982a1ba60014bd7020a0329800800c022006800888966002005100189919914c00401a60b600b32330010010052259800800c4cc16ccdd81ba9004375000697adef6c608994c004dd7182c800cdd6982d000cc1780092225980099b9000800389982f99bb037520106ea001c0162b30013371e010007132598009828982e9baa00189983019bb0375201260c260bc6ea800400a200482e0c96600260a200314c0103d87a800089827198301ba80014bd7020b83370000e00513305f337606ea400cdd400119803003000a0b6416c305c00141688030dd7182a0009bad305500130570024155133053337606ea400cdd300119803003000a09e413c305000141388030dd718240009bab3049001304b002412497ae0304730443754003164108606060866ea80062c8208c114c108dd5000c59040198149bac302e3041375401046606060566eacc0c4c108dd5000803182198201baa0018b207c302c303f3754605c607e6ea80062c81e8c104c0f8dd5000c52f5c30100008101a00020783302437586080607a6ea8010004dd7181f981e1baa3009303c3754008664464b30013033303d375400314bd6f7b63044dd59820981f1baa00140f0646600200200644b30010018a60103d87a8000899192cc004cdc8802800c56600266e3c0140062606266086608200497ae08a60103d87a800040fd133004004304500340fc6eb8c0fc004c1080050401bab3008303b37540046eb8c0a8c0ecdd51804181d9baa003222232330010010052232598009819000c4cc0b4018dd71821181f9baa0028acc004c0d0006264660020026eb0c10cc100dd5001912cc00400629462b30013300500530440018998010011822800c528207e4109159800981b800c4c8cc004004dd6182198201baa0032259800800c52845660026600a00a608800314a3133002002304500140fc82122b3001303300189919b89375a608600264660020026eb0c110c114008896600200314800226644b300133008008002899b800014800a20028210c114004cc008008c118005043181f9baa0028acc004cdc3a40100031332259800981b18201baa0018992cc004c0dcc104dd5181898211baa3031304237540111337120020071337100020068200dd6982218209baa0018a5040fc6eb4c108c0fcdd50011821181f9baa302e303f375400b15980099b874802800626644b300130363040375400313259800981b98209baa303130423754608a60846ea8022266e2400c006266e2000c0050401bad30443041375400314a081f8dd69821181f9baa0023042303f37546084607e6ea8016264646600200200c44b30010018a508acc004cdd780198209822800c528c4cc008008c11800504020863011330413042303f375400497ae040f481e903d207a40f481e8c0f4dd50009801801a2c8178dd718178009bae302f00a302f0098b2058375c60580026eb8c0b0008c0b0004c09cdd5000c590254590280c094004c090004c08c004c088004c084004c070dd500145901a1804980d1baa32598009807180d1baa0018992cc004c050c06cdd5000c4c966002602060386ea8006264646644b300130250038802c5902218110009bae30220023022001301d375400316406c603e60386ea80062c80d0c020c06cdd51805180d9baa301e301b3754003164064660026eb0c024c068dd500880b9802002111980180111980518029bab300b301c3754601660386ea80040088c00c00488c8cc00400400c896600200314c103d87a80008992cc004c010006260186603c00297ae089980180198100012034301e0014070600c00c44464b3001300c001899192cc004c07c00a0091640706eb8c074004c064dd5001c566002601c00313259800980f000c4cc018dd6180e800912cc00400a00b19800803cc07c00a260026040004803901d45901b180c9baa0038acc004c044006264b3001301e0018998031bac301d0012259800801401633001007980f80144c004c080009007203a8b2036301937540071598009806800c4c8cc896600260400031330083758603e00244b3001002803c6600201330210028980098110012012407d1640746eb4c074004c078004c064dd5001c56600266e1d2008001899192cc004c07c00a0091640706eb4c074004c064dd5001c56600266e1d200a001899192cc004c07c00a0091640706eb4c074004c064dd5001c56600266e1d200c001899192cc004c07c00a0091640706eb8c074004c064dd5001c59017202e405c80b9017202e405c602e6ea80088b2010180480098021baa00a8a4d13656400801", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_2ProtocolProtocolElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "591944010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a66006920130657870656374206f75747075745f646174756d3a205472656173757279446174756d203d206f75747075745f6461746100168a99801a492e65787065637420696e7075745f646174756d3a205472656173757279446174756d203d20696e7075745f6461746100168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a498a6578706563740a20202020736174697366696564280a20202020202073657474696e67732e77697468647261775f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900168a99801a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a492a6578706563742073657474696e67733a2053657474696e6773203d2070726f78792e73657474696e677300168a99801a491a72656465656d65723a2050726f746f636f6c52656465656d65720016488888896600264653001301100198089809000cdc3a400930110024888966002600460226ea800e264b30010058cc004dc3a4005370e90034dc3a40013012375400a9111192cc004c00c00a2b300130183754015001806a0328acc004c01400a2b300130183754015001806a0328acc004c02000a264b300100180744c96600200300f807c03e264b3001301f003802404101c1bad001807a03e301c001406860306ea802a2b300130040028992cc00400601d13259800800c03e01f00f8992cc004c07c00e00901040706eb400601e80f8c07000501a180c1baa00a806a02a405480a90150cc004896600200314bd7044cc06cc060c070004cc008008c07400501a4dd2a40012301b301c001911919800800801912cc00400629422b30013371e6eb8c07800400e2946266004004603e00280c101c48c06cc070c07000522222323322323259800800c4c8c966002601c60446ea800e264b300100180d44c96600200313259800800c072264b30010018992cc00400603d13259800800c4c9660020030208992cc004006264b300100181144c96600200313259800800c092264b3001001812c096264b300130340038cc0040323300100a8cc004022330010068acc004c06cc0bcdd500244c9660020030278992cc00400605102881440a226644b300100181544c96600200302b815c0ae05713259800981d001c56600200f02c8992cc00400605b02d816c0b626644b3001001817c4c96600200303081840c206113259800981f801c660026e9520029181f98201820182018201820182018201820000c8c0fcc100c100c100c100c100c100c1000064607e608060806080608060806080003222598009814981e9baa0038992cc00400600513259800800c00e0070038992cc004c11400e00b00441086eb40060068228c108005040181f1baa003800a0769181f9820182018201820000c8966002003148002266e01200233002002304100140f9303a375405b371090002444444444646644b300130320058acc00660026094608e6ea809e6eb0c02cc11cdd501b4c028c11cdd501b4dd5980498239baa0364005130049800813c0da900020048a99822a481866578706563740a20202020736174697366696564280a20202020202073657474696e67732e6d696e745f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900164111159800981a002c5660033001302e3047375404f37586016608e6ea80da6014608e6ea80da6eacc024c11cdd501b2002899b889800813c0da90002004480022a6608a9201866578706563740a20202020736174697366696564280a20202020202073657474696e67732e6275726e5f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900164111159800981b802c4c9660033001302d304837540513758601860906ea80de601660906ea80de6eacc028c120dd501ba0048acc004c01400626067300102881bc005003454cc1192411a6578706563742077697468647261775f616d6f756e74203e20300016411504041146eb4c128c11cdd501cc4c9660033001302d304837540513758601860906ea80de601660906ea80de6eacc028c120dd501ba0048acc004c01400626067300102881bccdc1000a4002801a2a6608c920119657870656374206465706f7369745f616d6f756e74203e20300016411504041146eb4c128c11cdd501ca08841108220888c8cc896600266e1cdd6982700080144c9660026644b30010018a508994c004c9660026076609e6ea800626eb4c140c14cdd5982998281baa0018a40008268c1480066ebcc148c14c0066eac00922259800800c566002600400b1337129000001c528209e8992cc004cdd79829000a6010140008acc004cdc49bad30533056375660a600200913003374c60ae00514a082822b300133712900000244c00c01a294105020a03055001414c329800800c00e44660a6004660a66e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c1440066eacc14800660ac0069112cc004cdc8a441000038acc004cdc7a44100003899802981e9982b9ba60024bd70000c4cc015300103d87a8000006414919800803c006446600e004660b266ec0dd48029ba6004001401c829060a800482922942294229410531bab3033002374c6609c66ec0c13c004dd31982719bb0304f3050001375066e0400c0152f5bded8c097adef6c608801c54cc1292401be6578706563740a202020206d61746368280a20202020202074726561737572795f64656c74612e326e642c0a2020202020205b0a202020202020202050616972280a20202020202020202020726573657276655f706f6c6963792c0a202020202020202020205b5061697228726573657276655f6e616d652c206d696e745f616d6f756e74202d2077697468647261775f616d6f756e74295d2c0a2020202020202020292c0a2020202020205d2c0a2020202020203e3d2c0a2020202029001641246eb0c138c13cc13cc13cc13cc13cc12cdd5003454cc1252401286578706563742074726561737572795f64656c74612e317374203d3d206d696e745f616d6f756e7400164120b3001303430050018a4001159800800c10a264b3001304e0028acc004cdc79bae3049001488104555344720089bad304a0018a998242491d657870656374206e616d65203d3d20636f6e7374616e74732e757364720016411d043412c6098002825104619192cc004c0d8c128dd5000c4c96600266ebcc13cc130dd5182798261baa3033304c375400260226609c6ea400d2f5c113259800981e98261baa0018992cc004006330010018992cc004c0e8c138dd5000c4c96600266ebcc14cc140dd5182998281baa001301533052375200e97ae08992cc004c104c140dd5000c4c96600200319800800c4cc150dd419b81375a60aa60a46ea8004dd6982a98291baa00533054374c6530010019bab303a3053375400932330010013756607660a86ea8c0ecc150dd5004912cc004006297adef6c608991982c19bb03055001374c64660020026eacc15c008896600200314bd6f7b63044c8cc16ccdd8182c0009ba83370290001bad305900133003003305d002305b00141646600600660b400460b000282b10011112cc00400a2003132332298008034c170016646600200200a44b300100189982e19bb037520086e9800d2f5bded8c113298009bae305a0019bab305b001982f8012444b300133720010007133060337606ea4020dd3003802c56600266e3c02000e264b3001304a305e3754003133061337606ea4024c188c17cdd50008014400905c192cc0056600200314a314a083022980103d87a800089823998309ba60014bd7020b8329800800c022006800888966002005100189919914c00401a60d000b32330010010052259800800c4cc1a0cdd81ba9004375000697adef6c608994c004dd71833000cdd69833800cc1ac0092225980099b9000800389983619bb037520106ea001c0162b30013371e01000713259800982b18351baa00189983699bb0375201260dc60d66ea800400a20048340c96600260ac00314c0103d87a800089829998369ba80014bd7020d03370000e00513306c337606ea400cdd400119803003000a0ce419c3069001419c8030dd718308009bad306200130640024189133060337606ea400cdd300119803003000a0b6416c305d001416c8030dd7182a8009bab30560013058002415897ae0826a026826c13609b04d415c60a860a26ea80062a6609e92012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d00164138606a60a06ea80062a6609c92013a657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2053637269707428736372697074290016413460a4609e6ea80062a6609a92013c65787065637420536f6d65286f757470757429203d206f75747075745f776974685f706f6c6963792874782e6f7574707574732c207363726970742900164130660606eb0c0ccc138dd500411981a98191bab3036304f375400200d048403d04882441220908298c140c134dd5000c54cc12d2413365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d00164128606260986ea8c0ccc130dd5000c54cc12924014065787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287363726970742900164124609c60966ea8006297ae110100008101a00020903302b3758609a60946ea8010004dd7182618249baa300930493754008664464b30013038304a375400314bd6f7b63044dd5982718259baa0014120646600200200644b30010018a60103d87a8000899192cc004cdc8802800c56600266e3c0140062606c660a0609c00497ae08a60103d87a8000412d1330040043052003412c6eb8c130004c13c00504d1bab3008304837540046eb8c0bcc120dd5180418241baa00322223233001001005223259800981b800c4cc0c8018dd7182798261baa0028acc004c0e4006264660020026eb0c140c134dd5001912cc00400629462b30013300500530510018998010011829000c5282096413d159800981e000c4c8cc004004dd6182818269baa0032259800800c52845660026600a00a60a200314a31330020023052001412c827a2b3001303800189919b89375a60a000264660020026eb0c144c148008896600200314800226644b300133008008002899b800014800a20028270c148004cc008008c14c00505018261baa0028acc004cdc3a40100031332259800981d98269baa0018992cc004c0f0c138dd5181b18279baa3036304f37540111337120020071337100020068260dd6982898271baa0018a50412c6eb4c13cc130dd5001182798261baa3033304c375400b15980099b874802800626644b3001303b304d375400313259800981e18271baa3036304f375460a4609e6ea8022266e2400c006266e2000c00504c1bad3051304e375400314a08258dd6982798261baa002304f304c3754609e60986ea8016264646600200200c44b30010018a508acc004cdd780198271829000c528c4cc008008c14c00504c20a030113304e304f304c375400497ae041248249049209241248248c128dd50009801801a06281e0dd7000a07e303c00140e86eb8004c0ec02103c181c803a06e816206e375c00281d0c0dc0050351bae001303600240dc60680028190c0c0dd5002409902d409900e409900e409900e409900e40990311bac001812c0950341818800a05e3031002811c08e04702340c8605e0028168c0bc00a043021810c0850301816800a056302d00280fc07e03f01f40b860560028148c0ac00a03b01d80ec07502c1814800a04e302900280dc06e03701b40a8604e0028128c08cdd5001c065020111194c004006009003400444464b300130140018992cc00400600d13259800800c01e00f007803c4c9660026060007005804205a375c0028180c0b400502b18149baa0038acc004c058006264b300100180344c966002003007803c4c966002606000713300b0012259800801401e264b30010018cc00402a003130023033003402900b805c02e01681a0c0c400902f402102d1bac001803c01d0301816800a05630293754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0c000e26601600244b3001002803c4c966002003198008054006260046066006805201700b805c02d0341818801205e804205a3758003007803a060302d00140ac60526ea800e2b300130150018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009819801c4cc038004896600200500a8992cc0040063300100d800c4c008c0d800d00d403a01d00e807206e303400240c900b40c06eb000601500a40cc60600028170dd68009817801401d0301816800a0563029375400715980099b8748020006264b300100180344c966002003007803c01e264b30013030003802c02102d1bad001803a060302d00140ac60526ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c9660026060007005804205a375a00300740c0605a0028158c0a4dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c9660026060007005804205a375c0028180c0b400502b18149baa003802a04c40988131026204c40988130c09cdd500111191980080080191198018009801001405e02f01780ba04c30073020375464646644646644a6604a66e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea408d22010013259800980998139baa00189929981399b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980d18149baa0018992cc0040062b30013016302a375400313259800800c08e264b30010018124092049024899912cc00400604d13259800981a0014401a04e8188c0c80050301bae001303100240c8605e0028168c0acdd5000c089028408a0450228112060302d302a3754003153302849013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d0016409c601c60526ea8c040c0a4dd5000981598141baa0018a9981324814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640946601000204660020026eb0c030c094dd500a111192cc00400e2646466446601400466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a0028051009205a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81390271bac302a002375a60500026466ec0dd418140009ba73029001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a605a003337149101023a200098008054c0b800600a805100a181800144ca6002015302d00199b8a489023a200098008054c0b8006600e66008008004805100a1818001205c303000140b466e29220102207d0000340a86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900620543758007133006375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720583371666e000056600266e2000520148a40c11481b902c002200c33706002901019b8600148080cdc70020012052375c0068168dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003408c81188888c8cc004004014896600200310058992cc004006266008605800400d133005302c0023300300300140a860580028148c0040048896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c00028019020111980180111980418029bab300930223754601260446ea80040088c00800488c8cc00400400c896600200314c103d87a80008992cc004c010006260146604800297ae08998018019813001203e30240014088600a00a4022011008804203030153012375400716403c3011001300c3754025149a2a660149211856616c696461746f722072657475726e65642066616c7365001365640241" + : + "590d5b010100229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007370e90014dc3a400d370e90004c024dd500224444464b300130030028acc004c040dd500540062c808a2b300130050028acc004c040dd500540062c808a2b30013008002899192cc004c05800a00716404c6eb4c050004c040dd5005456600260080051323259800980b001400e2c8098dd6980a00098081baa00a8b201c4038807100e0cc004896600200314bd7044cc04cc040c050004cc008008c0540050124dd2a4001230133014001911919800800801912cc00400629422b30013371e6eb8c05800400e2946266004004602e002808901448c04cc050c05000644646600200200644660060026004004911111199119911919912cc004c03cc06cdd500144c8c8c8c8c8ca60026eb0c094006604a00b30250049812801cc0940092222259800981580344cc030c0a802c4cc0300104cc03000c4cc0300085660026034604c6ea8006264646644b3001302f00389919912cc004c0c800e33001374a900148c0c8c0ccc0ccc0ccc0ccc0ccc0ccc0ccc0cc00646064606660666066606660666066606600323032303330333033303330333033001912cc004c08cc0bcdd500144c8c966002606c0050038b2066375a606800260606ea800a2c81724606460666066606660660032259800800c52000899b8048008cc008008c0d00050314c0b4dd50144dc4240009111111111919912cc004c0b40162b30019800981e981d1baa0209bac300b303a3754063300a303a37540633756601260746ea80c500144c0126002041031a400080122c81c22b3001302f0058acc0066002605260746ea80826eb0c02cc0e8dd5018cc028c0e8dd5018cdd59804981d1baa03140051337113001020818d2000400890004590384566002606400b13259800cc004c0a0c0ecdd5010cdd61806181d9baa0329805981d9baa0329bab300a303b375406480122b30013005001898174c004086065001400d1640e51640e46eb4c0f4c0e8dd501a44c96600330013028303b37540433758601860766ea80ca601660766ea80ca6eacc028c0ecdd501920048acc004c0140062605d30010218194cdc1000a4002801a2c81ca2c81c8dd6981e981d1baa03440e081c10381111919912cc004cdc39bad30410010028992cc004cc896600200314a11329800992cc004c0d8c108dd5000c4dd6982198231bab3046304337540031480010411822800cdd798229823000cdd58012444b30010018acc004c008016266e2520000038a50410d1325980099baf30450014c010140008acc004cdc49bad304630493756608c00200913003374c609400514a082222b300133712900000244c00c01a2941044208830480014118329800800c00e446608c0046608c6e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c1100066eacc11400660920069112cc004cdc8a441000038acc004cdc7a44100003899802981c198251ba60024bd70000c4cc015300103d87a8000006411919800803c006446600e0046609866ec0dd48029ba6004001401c8230608e004822a2942294229410461bab302e002374c6608266ec0c108004dd31982099bb030423043001375066e0400c0152f5bded8c097adef6c608801c5903d1bac304130423042304230423042303e375400d1640f0b3001302f30050018a40011598009820000c4c96600266e3cdd7181e000a44104555344720089bad303d0018b2076303f0018b207a40e86464b30013031303d37540031325980099baf3042303f37546084607e6ea8c0b8c0fcdd50009808998209ba90034bd7044c9660026070607e6ea80062646601e002264b30013035304137540031325980099baf304630433754608c60866ea8004c054cc114dd4803a5eb82264b3001303c3043375400313233013001133047375066e04dd6982418229baa001375a6090608a6ea8014cc11cdd3194c0040066eacc0d4c118dd50024c8cc004004dd5981b18239baa30363047375401244b30010018a5eb7bdb1822646609666ec0c120004dd319198008009bab304a0022259800800c52f5bded8c11323304e3376060960026ea0cdc0a40006eb4c130004cc00c00cc140008c13800504c1980180198268011825800a0924004444b30010028800c4c8cc8a600200d304f0059919800800802912cc00400626609e66ec0dd48021ba60034bd6f7b63044ca60026eb8c1340066eacc13800660a40049112cc004cdc8004001c4cc14ccdd81ba9008374c00e00b15980099b8f0080038992cc004c114c144dd5000c4cc150cdd81ba90093055305237540020051002414064b300159800800c528c52820a68a6103d87a8000898211982a1ba60014bd7020a0329800800c022006800888966002005100189919914c00401a60b600b32330010010052259800800c4cc16ccdd81ba9004375000697adef6c608994c004dd7182c800cdd6982d000cc1780092225980099b9000800389982f99bb037520106ea001c0162b30013371e010007132598009828982e9baa00189983019bb0375201260c260bc6ea800400a200482e0c96600260a200314c0103d87a800089827198301ba80014bd7020b83370000e00513305f337606ea400cdd400119803003000a0b6416c305c00141688030dd7182a0009bad305500130570024155133053337606ea400cdd300119803003000a09e413c305000141388030dd718240009bab3049001304b002412497ae0304730443754003164108606060866ea80062c8208c114c108dd5000c59040198149bac302e3041375401046606060566eacc0c4c108dd5000803182198201baa0018b207c302c303f3754605c607e6ea80062c81e8c104c0f8dd5000c52f5c30100008101a00020783302437586080607a6ea8010004dd7181f981e1baa3009303c3754008664464b30013033303d375400314bd6f7b63044dd59820981f1baa00140f0646600200200644b30010018a60103d87a8000899192cc004cdc8802800c56600266e3c0140062606266086608200497ae08a60103d87a800040fd133004004304500340fc6eb8c0fc004c1080050401bab3008303b37540046eb8c0a8c0ecdd51804181d9baa003222232330010010052232598009819000c4cc0b4018dd71821181f9baa0028acc004c0d0006264660020026eb0c10cc100dd5001912cc00400629462b30013300500530440018998010011822800c528207e4109159800981b800c4c8cc004004dd6182198201baa0032259800800c52845660026600a00a608800314a3133002002304500140fc82122b3001303300189919b89375a608600264660020026eb0c110c114008896600200314800226644b300133008008002899b800014800a20028210c114004cc008008c118005043181f9baa0028acc004cdc3a40100031332259800981b18201baa0018992cc004c0dcc104dd5181898211baa3031304237540111337120020071337100020068200dd6982218209baa0018a5040fc6eb4c108c0fcdd50011821181f9baa302e303f375400b15980099b874802800626644b300130363040375400313259800981b98209baa303130423754608a60846ea8022266e2400c006266e2000c0050401bad30443041375400314a081f8dd69821181f9baa0023042303f37546084607e6ea8016264646600200200c44b30010018a508acc004cdd780198209822800c528c4cc008008c11800504020863011330413042303f375400497ae040f481e903d207a40f481e8c0f4dd50009801801a2c8178dd718178009bae302f00a302f0098b2058375c60580026eb8c0b0008c0b0004c09cdd5000c590254590280c094004c090004c08c004c088004c084004c070dd500145901a1804980d1baa32598009807180d1baa0018992cc004c050c06cdd5000c4c966002602060386ea8006264646644b300130250038802c5902218110009bae30220023022001301d375400316406c603e60386ea80062c80d0c020c06cdd51805180d9baa301e301b3754003164064660026eb0c024c068dd500880b9802002111980180111980518029bab300b301c3754601660386ea80040088c00c00488c8cc00400400c896600200314c103d87a80008992cc004c010006260186603c00297ae089980180198100012034301e0014070600c00c44464b3001300c001899192cc004c07c00a0091640706eb8c074004c064dd5001c566002601c00313259800980f000c4cc018dd6180e800912cc00400a00b19800803cc07c00a260026040004803901d45901b180c9baa0038acc004c044006264b3001301e0018998031bac301d0012259800801401633001007980f80144c004c080009007203a8b2036301937540071598009806800c4c8cc896600260400031330083758603e00244b3001002803c6600201330210028980098110012012407d1640746eb4c074004c078004c064dd5001c56600266e1d2008001899192cc004c07c00a0091640706eb4c074004c064dd5001c56600266e1d200a001899192cc004c07c00a0091640706eb4c074004c064dd5001c56600266e1d200c001899192cc004c07c00a0091640706eb8c074004c064dd5001c59017202e405c80b9017202e405c602e6ea80088b2010180480098021baa00a8a4d13656400801", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} \ No newline at end of file diff --git a/modules/realfi-partner-sdk/src/generated-types/v0_3/index.ts b/modules/realfi-partner-sdk/src/generated-types/v0_3/index.ts new file mode 100644 index 0000000000..62890731a2 --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/v0_3/index.ts @@ -0,0 +1,409 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +type Data = Exact; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ + Bool: Type.Boolean(), + COSESign1: Type.Object({ + headers: Type.Ref("Headers"), + payload: Type.Optional( + Type.String() + ), + signature: Type.String(), + }, { ctor: 0n }), + HeaderMap: Type.String(), + Headers: Type.Object({ + protected: Type.Ref("HeaderMap"), + unprotected: Type.Ref("HeaderMap"), + }, { ctor: 0n }), + MultisigScript: Type.Union([ + Type.Object({ + Signature: Type.Object({ + key_hash: Type.String(), + }, { ctor: 0n }) + }), + Type.Object({ + AllOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 1n }) + }), + Type.Object({ + AnyOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 2n }) + }), + Type.Object({ + AtLeast: Type.Object({ + required: Type.BigInt(), + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 3n }) + }), + Type.Object({ + Before: Type.Object({ + time: Type.BigInt(), + }, { ctor: 4n }) + }), + Type.Object({ + After: Type.Object({ + time: Type.BigInt(), + }, { ctor: 5n }) + }), + Type.Object({ + Script: Type.Object({ + script_hash: Type.String(), + }, { ctor: 6n }) + }), + ]), + Asset: Type.Tuple([ + Type.String(), + Type.String(), + ]), + Destination: Type.Object({ + address: Type.Object({ + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple([ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + ], { ctor: 0n }) + }), + Type.Object({ + Pointer: Type.Object({ + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, { ctor: 1n }) + }), + ]) + ), + }, { ctor: 0n }), + datum: Type.Union([ + Type.Literal("NoDatum", { ctor: 0n }), + Type.Object({ + DatumHash: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + Type.Object({ + InlineDatum: Type.Tuple([ + TPlutusData, + ], { ctor: 2n }) + }), + ]), + }, { ctor: 0n }), + ExtraProtocolRedeemer: Type.Object({ + request_to_outputs: Type.Record( + Type.Number(), + Type.BigInt(), + ), + }, { ctor: 0n }), + Nonce: Type.Union([ + Type.Object({ + UTxO: Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + ], { ctor: 0n }) + }), + Type.Object({ + Validity: Type.Tuple([ + Type.Object({ + lower_bound: Type.Object({ + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([ + Type.BigInt(), + ], { ctor: 1n }) + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, { ctor: 0n }), + upper_bound: Type.Object({ + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([ + Type.BigInt(), + ], { ctor: 1n }) + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, { ctor: 0n }), + }, { ctor: 0n }), + ], { ctor: 1n }) + }), + Type.Object({ + Nullifier: Type.Tuple([ + Type.String(), + ], { ctor: 2n }) + }), + ]), + OrderAction: Type.Union([ + Type.Object({ + OMint: Type.Object({ + amount: Type.BigInt(), + }, { ctor: 0n }) + }), + Type.Object({ + ORedeem: Type.Object({ + amount: Type.BigInt(), + }, { ctor: 1n }) + }), + ]), + OrderDatum: Type.Object({ + owner: Type.Ref("MultisigScript"), + destination: Type.Ref("Destination"), + action: Type.Ref("OrderAction"), + data: TPlutusData, + }, { ctor: 0n }), + OrderRedeemer: Type.Union([ + Type.Literal("Execute", { ctor: 0n }), + Type.Literal("Cancel", { ctor: 1n }), + ]), + ProtocolRedeemer: Type.Union([ + Type.Object({ + Mint: Type.Object({ + requests: Type.Array( + Type.Ref("Request") + ), + }, { ctor: 0n }) + }), + Type.Object({ + Burn: Type.Object({ + requests: Type.Array( + Type.Ref("Request") + ), + }, { ctor: 1n }) + }), + Type.Object({ + Withdraw: Type.Object({ + withdraw_amount: Type.BigInt(), + }, { ctor: 2n }) + }), + Type.Object({ + Deposit: Type.Object({ + deposit_amount: Type.BigInt(), + }, { ctor: 3n }) + }), + ]), + ProxyDatum: Type.Object({ + logic: Type.String(), + settings: Type.Ref("Settings"), + }, { ctor: 0n }), + Registry: Type.Object({ + treasury: Type.String(), + usdr: Type.String(), + order: Type.String(), + }, { ctor: 0n }), + Request: Type.Object({ + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + origin: Type.Optional( + Type.String() + ), + }, { ctor: 0n }), + Settings: Type.Object({ + mint_permission: Type.Ref("MultisigScript"), + burn_permission: Type.Ref("MultisigScript"), + withdraw_permission: Type.Ref("MultisigScript"), + deposit_permission: Type.Ref("MultisigScript"), + registry: Type.Ref("Registry"), + reserve_token: Type.Ref("Asset"), + }, { ctor: 0n }), + SigWithKey: Type.Tuple([ + Type.String(), + Type.Ref("COSESign1"), + ]), + SignatureList: Type.Array( + Type.Ref("SigWithKey") + ), + SignedPayload_ProtocolRedeemer: Type.Object({ + action: Type.Ref("ProtocolRedeemer"), + nonce: Type.Ref("Nonce"), + }, { ctor: 0n }), + SignedRedeemer_ExtraProtocolRedeemer: Type.Object({ + extra: Type.Ref("ExtraProtocolRedeemer"), + payload: Type.String(), + signatures: Type.Ref("SignatureList"), + }, { ctor: 0n }), +}); + +export const Bool = Contracts.Import("Bool"); +export type Bool = Exact; +export const COSESign1 = Contracts.Import("COSESign1"); +export type COSESign1 = Exact; +export const HeaderMap = Contracts.Import("HeaderMap"); +export type HeaderMap = Exact; +export const Headers = Contracts.Import("Headers"); +export type Headers = Exact; +export const MultisigScript = Contracts.Import("MultisigScript"); +export type MultisigScript = Exact; +export const Asset = Contracts.Import("Asset"); +export type Asset = Exact; +export const Destination = Contracts.Import("Destination"); +export type Destination = Exact; +export const ExtraProtocolRedeemer = Contracts.Import("ExtraProtocolRedeemer"); +export type ExtraProtocolRedeemer = Exact; +export const Nonce = Contracts.Import("Nonce"); +export type Nonce = Exact; +export const OrderAction = Contracts.Import("OrderAction"); +export type OrderAction = Exact; +export const OrderDatum = Contracts.Import("OrderDatum"); +export type OrderDatum = Exact; +export const OrderRedeemer = Contracts.Import("OrderRedeemer"); +export type OrderRedeemer = Exact; +export const ProtocolRedeemer = Contracts.Import("ProtocolRedeemer"); +export type ProtocolRedeemer = Exact; +export const ProxyDatum = Contracts.Import("ProxyDatum"); +export type ProxyDatum = Exact; +export const Registry = Contracts.Import("Registry"); +export type Registry = Exact; +export const Request = Contracts.Import("Request"); +export type Request = Exact; +export const Settings = Contracts.Import("Settings"); +export type Settings = Exact; +export const SigWithKey = Contracts.Import("SigWithKey"); +export type SigWithKey = Exact; +export const SignatureList = Contracts.Import("SignatureList"); +export type SignatureList = Exact; +export const SignedPayload_ProtocolRedeemer = Contracts.Import("SignedPayload_ProtocolRedeemer"); +export type SignedPayload_ProtocolRedeemer = Exact; +export const SignedRedeemer_ExtraProtocolRedeemer = Contracts.Import("SignedRedeemer_ExtraProtocolRedeemer"); +export type SignedRedeemer_ExtraProtocolRedeemer = Exact; + +export class V0_3OrderOrderSpend { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "590e80010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc896600264653001300c00198061806800cdc3a4005300c0024888966002600460186ea800e2646644b300100789919912cc004c00c0062b300130133754015002806a0288acc004c0200062b300130133754015002806a028806a02040403300123015301630163016301630163016001911919800800801912cc00400629422b30013375e0066028603000314a31330020023019001404880b24602a602c0032232330010010032259800800c528456600266e3cdd7180c000801c528c4cc008008c064005012202c9b874801122222598009803180a9baa00d8cc004896600200314bd7044cc068c05cc06c004cc008008c070005019488c8cc00400400c88cc00c004c00800a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80b24444646600200200a44b30010018802c4c9660020031330043020002006899802981000119801801800a03c302000140752232330010010032259800800c5300103d87a80008992cc004c010006266e9520003301d0014bd7044cc00c00cc07c009018180e800a0369180d180d980d800a4444453001300600698020024888ca6002003004801a00222232598009809800c4c9660020030068992cc00400600f007803c01e264b3001302a003802c0210271bae00140a8604e0028128c08cdd5001c566002603000313259800800c01a264b3001001803c01e264b3001302a003899807800912cc00400a00f13259800800c66002015001898011816801a014805c02e01700b40b86056004814a0108138dd6000c01e00e8150c09c00502518119baa0038acc004c038006264b300100180344c966002003007803c4c966002605400713300f0012259800801401e264b30010018cc00402a00313002302d003402900b805c02e0168170c0ac00902940210271bac001803c01d02a1813800a04a3023375400715980099b8748018006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002605a0071330120012259800801402a264b30010018cc004036003130023030003403500e807403a01c8188c0b800902c402d02a1bac001805402902d1815000a050375a002605200500740a8604e0028128c08cdd5001c56600266e1d20080018992cc00400600d13259800800c01e00f0078992cc004c0a800e00b008409c6eb400600e8150c09c00502518119baa0038acc004cdc3a401400313259800800c01a264b3001001803c01e00f132598009815001c0160108138dd6800c01d02a1813800a04a3023375400715980099b8748030006264b300100180344c966002003007803c01e00f132598009815001c0160108138dd7000a0543027001409460466ea800e00a8101020204040808101020204030213754005330023758603e60386ea80408cdd79810180e9baa00100f48888c8c8cc88c966002602a60486ea801a264b3001301b3025375400315980099b8f375c6052604c6ea8004dd7180598131baa3029302a302a302a302a302637546026604c6ea8c96600200319800800c40060448022045022811408902c198011bac30133026375403404513233225330273372c92010d63726564656e7469616c3a3a200037326600e0049101001330170010023374a9001198149ba90014bd701bab3016302737540366eb8c0a4c098dd5198011bac301330263754034045153302449013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f726465720016408d153302449132657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f637265640016408c6050604a6ea8c0a0c094dd5180918129baa30283025375400d15330234913665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f7574290016408844a6604866e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea400522010013259800980b98131baa00189929981319b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800980a18141baa0018992cc004006330010018800c095007409604b025812a05e302c3029375400315330274913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164098601a60506ea8c054c0a0dd5000981518139baa0018a99812a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640906601800446602660166eacc050c09cdd5180a18139baa001002300100122259800980a98121baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc0040062b3001302e0028acc004c068c0a4dd5000c4c9660020030078992cc004006264b3001001804c4c96600200313259800800c02e264b30010018992cc00400601b13259800800c4c96600200300f8992cc004006264b3001001808c4c96600200301280944c9660026076007198008064660020151980080446600200d1598009813981b1baa0048992cc00400602913259800800c05602b01580ac4cc89660020030178992cc00400603101880c406226644b300100180d44c96600200301b80dc06e037132598009822001c56600201501c8992cc00400603b01d80ec07626644b300100180fc4c9660020030208104082041132598009824801c08a0428230dd7000a092304600141106eb8004c11402d0461821805208280e2082375c0028220c10400503f1bae00130400024104607c00281e0dd7000981e801207c303b00140e4606e6ea801202681a202680ca02680ca02680ca02680ca02681c0dd6000c04a02481d8c0e0005036181c00140420210108082072303600140d0606c00500e807403a01c81b8c0d0005032181a001403201900c806206a303200140c0606400500a805402a0148198c0c000502e181800140220110088042062302e00140b060546ea800600c813a00c815a00d006803401902f1816000a054375c00260560048160c0a400502718129baa003800a0442223259800801c4c8c8cc88cc024008cdc5244101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020545980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81210241bac3027002375a604a0026466ec0dd418128009ba73026001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6054003337149101023a200098008054c0ac00600a805100a181680144ca6002015302a00199b8a489023a200098008054c0ac006600e66008008004805100a18168012056302d00140a866e29220102207d00003409c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d204e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720523371666e000056600266e2000520148a40c11481b9029002200c33706002901019b8600148080cdc7002001204c375c0068150dc5245022c20002232330010010032259800980a000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc01ccdc2000a402866e2ccdc019b85001480512060003408481088acc004c018c054dd5003c660026032602c6ea8c064c058dd5003cdd6180c980d180d180d180d180d180d180d180d180b1baa00a980c980d180d180d180d180d180d180d180b1baa00a9bab3005301637540149111191980080080291192cc004c03400626601200c6eb8c080c074dd5001456600260240031323300100137586042603c6ea800c896600200314a3159800998028029811000c4cc008008c08c006294101c20408acc004c020006264660020026eb0c084c078dd5001912cc00400629422b30013300500530220018a518998010011811800a038408115980099b874801800626466e24dd6981080099198008009bac302230230022259800800c52000899912cc004cc02002000a266e0000520028800a03e30230013300200230240014084603a6ea800a2b30013370e9004000c4c8cc8966002602a603e6ea800a2b30013015301f3754604660480071337126eb4c08cc080dd5001000c4cdc41bad30233020375400400280ea294101d18108009bad3021301e3754006603a6ea8c028c074dd5002c56600266e1d200a00189919912cc004c054c07cdd50014566002602a603e6ea8c08cc09000e266e24004dd6981198101baa002899b88001375a604660406ea800901d4528203a3021001375a6042603c6ea800cc074dd51810180e9baa00589980580219ba548008cc07cc080c074dd500125eb8101a2034406880d101a2034301b37540028a9980a24812065787065637420536f6d65286f726465725f646174756d29203d20646174756d0016404c809860206ea8020dc3a400100a805402a01480a8c044004c044c048004c034dd5001c5900a0c030004c01cdd5006c5268a99802a491856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001615330034911772656465656d65723a204f7264657252656465656d6572001601" + : + "5906f2010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400530090024888966002600460126ea800e2653001300e00198071807800cdc3a400091119912cc004c00c0062b3001301037540150028b20228acc004c0200062b3001301037540150028b20228b201c40383300123012301330133013301330133013001911919800800801912cc00400629422b30013375e0066022602a00314a313300200230160014040809a4602460260032232330010010032259800800c528456600266e3cdd7180a800801c528c4cc008008c05800501020269b87480112222259800980318091baa00d8cc004896600200314bd7044cc05cc050c060004cc008008c064005016488c8cc00400400c88cc00c004c00800a44646600200200644b30010018a60103d87a80008992cc004c010006266e9520003301a0014bd7044cc00c00cc070009016180d000a0309180b980c180c000a4444646466446644b30013010301c375400313259800980b180e9baa0018acc004cdc79bae3021301e37540026eb8c020c078dd518109811181118111811180f1baa300e301e3754646600c0022002660066eb0c038c078dd500a80dc4cc03cdd59808180f1baa0153374a9001198101810980f1baa330033758601c603c6ea805406d2f5c11640711640706040603a6ea8c080c074dd51806980e9baa3020301d375400316406c4464b30013011301d3754003132598009806980f1baa0018991980380088009811180f9baa0018b203a3008301e3754601c603c6ea8c084c078dd5000c5901c1980400111980698021bab300e301e3754601c603c6ea8004008cc018dd6180f180d9baa01223375e603e60386ea80040448966002601c60346ea800a2646644b300130220018992cc004c048c078dd5000c4c8c8c8c8c8ca60026eb0c0a0006605000b30280049814001cc0a00092222259800981700344cc048c0b402c4cc0480104cc04800c4cc048008566002603a60526ea800626464653001375c6060003375c6060007375c60600049112cc004c0d00122646644b3001303700380cc590341bae3034001375c606801860680171640c43030001302f001302a37540031640a11640ac30280013027001302600130250013024001301f3754003164074604200316407c6eb8c07c004c080004c06cdd500145901918030031800800911192cc004c03800626464b3001302100280245901e1bae301f001301b37540071598009809800c4c96600260400031330083758603e00244b3001002802c6600200f3021002898009811001200e407d16407460366ea800e2b300130090018992cc004c0800062660106eb0c07c00489660020050058cc00401e6042005130013022002401c80fa2c80e8c06cdd5001c56600266e1d200600189919912cc004c0880062660146eb0c08400489660020050078cc00402660460051300130240024024810a2c80f8dd6980f8009810000980d9baa0038acc004cdc3a40100031323259800981080140122c80f0dd6980f800980d9baa0038acc004cdc3a40140031323259800981080140122c80f0dd6980f800980d9baa0038acc004cdc3a40180031323259800981080140122c80f0dd7180f800980d9baa0038b2032406480c90192032406480c8c064dd500122b300130063012375400f19800980b18099baa30163013375400f3758602c602e602e602e602e602e602e602e602e60266ea802a602c602e602e602e602e602e602e602e60266ea802a6eacc014c04cdd500524444646600200200a4464b3001300d0018998048031bae301d301a37540051598009809000c4c8cc004004dd6180f180d9baa0032259800800c528c5660026600a00a603e00313300200230200018a50406880ea2b30013008001899198008009bac301e301b375400644b30010018a508acc004cc014014c07c0062946266004004604000280d101d456600266e1d200600189919b89375a603c00264660020026eb0c07cc080008896600200314800226644b300133008008002899b800014800a200280e8c080004cc008008c08400501e180d1baa0028acc004cdc3a4010003132332259800980a980e1baa0028acc004c054c070dd518101810801c4cdc49bad3020301d37540040031337106eb4c080c074dd5001000a0368a50406c603c0026eb4c078c06cdd5001980d1baa300a301a375400b15980099b87480280062646644b30013015301c3754005159800980a980e1baa30203021003899b89001375a6040603a6ea800a266e20004dd69810180e9baa002406d14a080d8c078004dd6980f180d9baa003301a3754603a60346ea801626601600866e9520023301c301d301a375400497ae0406080c10182030406080c0c060dd5000a2c80890110c034dd50040c028dd5001c590080c024004c010dd5004c52689b2b200401", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_3OrderOrderElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "590e80010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc896600264653001300c00198061806800cdc3a4005300c0024888966002600460186ea800e2646644b300100789919912cc004c00c0062b300130133754015002806a0288acc004c0200062b300130133754015002806a028806a02040403300123015301630163016301630163016001911919800800801912cc00400629422b30013375e0066028603000314a31330020023019001404880b24602a602c0032232330010010032259800800c528456600266e3cdd7180c000801c528c4cc008008c064005012202c9b874801122222598009803180a9baa00d8cc004896600200314bd7044cc068c05cc06c004cc008008c070005019488c8cc00400400c88cc00c004c00800a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80b24444646600200200a44b30010018802c4c9660020031330043020002006899802981000119801801800a03c302000140752232330010010032259800800c5300103d87a80008992cc004c010006266e9520003301d0014bd7044cc00c00cc07c009018180e800a0369180d180d980d800a4444453001300600698020024888ca6002003004801a00222232598009809800c4c9660020030068992cc00400600f007803c01e264b3001302a003802c0210271bae00140a8604e0028128c08cdd5001c566002603000313259800800c01a264b3001001803c01e264b3001302a003899807800912cc00400a00f13259800800c66002015001898011816801a014805c02e01700b40b86056004814a0108138dd6000c01e00e8150c09c00502518119baa0038acc004c038006264b300100180344c966002003007803c4c966002605400713300f0012259800801401e264b30010018cc00402a00313002302d003402900b805c02e0168170c0ac00902940210271bac001803c01d02a1813800a04a3023375400715980099b8748018006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002605a0071330120012259800801402a264b30010018cc004036003130023030003403500e807403a01c8188c0b800902c402d02a1bac001805402902d1815000a050375a002605200500740a8604e0028128c08cdd5001c56600266e1d20080018992cc00400600d13259800800c01e00f0078992cc004c0a800e00b008409c6eb400600e8150c09c00502518119baa0038acc004cdc3a401400313259800800c01a264b3001001803c01e00f132598009815001c0160108138dd6800c01d02a1813800a04a3023375400715980099b8748030006264b300100180344c966002003007803c01e00f132598009815001c0160108138dd7000a0543027001409460466ea800e00a8101020204040808101020204030213754005330023758603e60386ea80408cdd79810180e9baa00100f48888c8c8cc88c966002602a60486ea801a264b3001301b3025375400315980099b8f375c6052604c6ea8004dd7180598131baa3029302a302a302a302a302637546026604c6ea8c96600200319800800c40060448022045022811408902c198011bac30133026375403404513233225330273372c92010d63726564656e7469616c3a3a200037326600e0049101001330170010023374a9001198149ba90014bd701bab3016302737540366eb8c0a4c098dd5198011bac301330263754034045153302449013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f726465720016408d153302449132657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f637265640016408c6050604a6ea8c0a0c094dd5180918129baa30283025375400d15330234913665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f7574290016408844a6604866e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea400522010013259800980b98131baa00189929981319b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800980a18141baa0018992cc004006330010018800c095007409604b025812a05e302c3029375400315330274913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164098601a60506ea8c054c0a0dd5000981518139baa0018a99812a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640906601800446602660166eacc050c09cdd5180a18139baa001002300100122259800980a98121baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc0040062b3001302e0028acc004c068c0a4dd5000c4c9660020030078992cc004006264b3001001804c4c96600200313259800800c02e264b30010018992cc00400601b13259800800c4c96600200300f8992cc004006264b3001001808c4c96600200301280944c9660026076007198008064660020151980080446600200d1598009813981b1baa0048992cc00400602913259800800c05602b01580ac4cc89660020030178992cc00400603101880c406226644b300100180d44c96600200301b80dc06e037132598009822001c56600201501c8992cc00400603b01d80ec07626644b300100180fc4c9660020030208104082041132598009824801c08a0428230dd7000a092304600141106eb8004c11402d0461821805208280e2082375c0028220c10400503f1bae00130400024104607c00281e0dd7000981e801207c303b00140e4606e6ea801202681a202680ca02680ca02680ca02680ca02681c0dd6000c04a02481d8c0e0005036181c00140420210108082072303600140d0606c00500e807403a01c81b8c0d0005032181a001403201900c806206a303200140c0606400500a805402a0148198c0c000502e181800140220110088042062302e00140b060546ea800600c813a00c815a00d006803401902f1816000a054375c00260560048160c0a400502718129baa003800a0442223259800801c4c8c8cc88cc024008cdc5244101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020545980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81210241bac3027002375a604a0026466ec0dd418128009ba73026001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6054003337149101023a200098008054c0ac00600a805100a181680144ca6002015302a00199b8a489023a200098008054c0ac006600e66008008004805100a18168012056302d00140a866e29220102207d00003409c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d204e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720523371666e000056600266e2000520148a40c11481b9029002200c33706002901019b8600148080cdc7002001204c375c0068150dc5245022c20002232330010010032259800980a000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc01ccdc2000a402866e2ccdc019b85001480512060003408481088acc004c018c054dd5003c660026032602c6ea8c064c058dd5003cdd6180c980d180d180d180d180d180d180d180d180b1baa00a980c980d180d180d180d180d180d180d180b1baa00a9bab3005301637540149111191980080080291192cc004c03400626601200c6eb8c080c074dd5001456600260240031323300100137586042603c6ea800c896600200314a3159800998028029811000c4cc008008c08c006294101c20408acc004c020006264660020026eb0c084c078dd5001912cc00400629422b30013300500530220018a518998010011811800a038408115980099b874801800626466e24dd6981080099198008009bac302230230022259800800c52000899912cc004cc02002000a266e0000520028800a03e30230013300200230240014084603a6ea800a2b30013370e9004000c4c8cc8966002602a603e6ea800a2b30013015301f3754604660480071337126eb4c08cc080dd5001000c4cdc41bad30233020375400400280ea294101d18108009bad3021301e3754006603a6ea8c028c074dd5002c56600266e1d200a00189919912cc004c054c07cdd50014566002602a603e6ea8c08cc09000e266e24004dd6981198101baa002899b88001375a604660406ea800901d4528203a3021001375a6042603c6ea800cc074dd51810180e9baa00589980580219ba548008cc07cc080c074dd500125eb8101a2034406880d101a2034301b37540028a9980a24812065787065637420536f6d65286f726465725f646174756d29203d20646174756d0016404c809860206ea8020dc3a400100a805402a01480a8c044004c044c048004c034dd5001c5900a0c030004c01cdd5006c5268a99802a491856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001615330034911772656465656d65723a204f7264657252656465656d6572001601" + : + "5906f2010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400530090024888966002600460126ea800e2653001300e00198071807800cdc3a400091119912cc004c00c0062b3001301037540150028b20228acc004c0200062b3001301037540150028b20228b201c40383300123012301330133013301330133013001911919800800801912cc00400629422b30013375e0066022602a00314a313300200230160014040809a4602460260032232330010010032259800800c528456600266e3cdd7180a800801c528c4cc008008c05800501020269b87480112222259800980318091baa00d8cc004896600200314bd7044cc05cc050c060004cc008008c064005016488c8cc00400400c88cc00c004c00800a44646600200200644b30010018a60103d87a80008992cc004c010006266e9520003301a0014bd7044cc00c00cc070009016180d000a0309180b980c180c000a4444646466446644b30013010301c375400313259800980b180e9baa0018acc004cdc79bae3021301e37540026eb8c020c078dd518109811181118111811180f1baa300e301e3754646600c0022002660066eb0c038c078dd500a80dc4cc03cdd59808180f1baa0153374a9001198101810980f1baa330033758601c603c6ea805406d2f5c11640711640706040603a6ea8c080c074dd51806980e9baa3020301d375400316406c4464b30013011301d3754003132598009806980f1baa0018991980380088009811180f9baa0018b203a3008301e3754601c603c6ea8c084c078dd5000c5901c1980400111980698021bab300e301e3754601c603c6ea8004008cc018dd6180f180d9baa01223375e603e60386ea80040448966002601c60346ea800a2646644b300130220018992cc004c048c078dd5000c4c8c8c8c8c8ca60026eb0c0a0006605000b30280049814001cc0a00092222259800981700344cc048c0b402c4cc0480104cc04800c4cc048008566002603a60526ea800626464653001375c6060003375c6060007375c60600049112cc004c0d00122646644b3001303700380cc590341bae3034001375c606801860680171640c43030001302f001302a37540031640a11640ac30280013027001302600130250013024001301f3754003164074604200316407c6eb8c07c004c080004c06cdd500145901918030031800800911192cc004c03800626464b3001302100280245901e1bae301f001301b37540071598009809800c4c96600260400031330083758603e00244b3001002802c6600200f3021002898009811001200e407d16407460366ea800e2b300130090018992cc004c0800062660106eb0c07c00489660020050058cc00401e6042005130013022002401c80fa2c80e8c06cdd5001c56600266e1d200600189919912cc004c0880062660146eb0c08400489660020050078cc00402660460051300130240024024810a2c80f8dd6980f8009810000980d9baa0038acc004cdc3a40100031323259800981080140122c80f0dd6980f800980d9baa0038acc004cdc3a40140031323259800981080140122c80f0dd6980f800980d9baa0038acc004cdc3a40180031323259800981080140122c80f0dd7180f800980d9baa0038b2032406480c90192032406480c8c064dd500122b300130063012375400f19800980b18099baa30163013375400f3758602c602e602e602e602e602e602e602e602e60266ea802a602c602e602e602e602e602e602e602e60266ea802a6eacc014c04cdd500524444646600200200a4464b3001300d0018998048031bae301d301a37540051598009809000c4c8cc004004dd6180f180d9baa0032259800800c528c5660026600a00a603e00313300200230200018a50406880ea2b30013008001899198008009bac301e301b375400644b30010018a508acc004cc014014c07c0062946266004004604000280d101d456600266e1d200600189919b89375a603c00264660020026eb0c07cc080008896600200314800226644b300133008008002899b800014800a200280e8c080004cc008008c08400501e180d1baa0028acc004cdc3a4010003132332259800980a980e1baa0028acc004c054c070dd518101810801c4cdc49bad3020301d37540040031337106eb4c080c074dd5001000a0368a50406c603c0026eb4c078c06cdd5001980d1baa300a301a375400b15980099b87480280062646644b30013015301c3754005159800980a980e1baa30203021003899b89001375a6040603a6ea800a266e20004dd69810180e9baa002406d14a080d8c078004dd6980f180d9baa003301a3754603a60346ea801626601600866e9520023301c301d301a375400497ae0406080c10182030406080c0c060dd5000a2c80890110c034dd50040c028dd5001c590080c024004c010dd5004c52689b2b200401", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_3ProtocolProtocolWithdraw { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5948aa010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692013a657870656374206d61746368696e675f6f75747075745f6964783a20496e74203d206d61746368696e675f6f75747075745f6964785f6461746100168a99801a492565787065637420646174756d3a204f72646572446174756d203d20646174756d5f6461746100168a99801a4930657870656374206f75747075745f646174756d3a205472656173757279446174756d203d206f75747075745f6461746100168a99801a492e65787065637420696e7075745f646174756d3a205472656173757279446174756d203d20696e7075745f6461746100168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a498a6578706563740a20202020736174697366696564280a20202020202073657474696e67732e77697468647261775f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900168a99801a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a494c657870656374207369676e65645f7061796c6f61643a205369676e65645061796c6f61643c50726f746f636f6c52656465656d65723e203d207369676e65645f7061796c6f61645f6461746100168a99801a492a6578706563742073657474696e67733a2053657474696e6773203d2070726f78792e73657474696e677300168a99801a492f72656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d65723e00164888888888966002646530013014001980a180a800cdc3a400930140024888966002600460286ea800e264b30010058999119912cc004c010c064dd5004c4c96600200300d8992cc004006264b3001001807c4c96600200301080840420211332259800800c04a264b3001001809c04e264b300130260038acc004c030c084dd5003c4c9660020030158992cc00400602d132598009814801c4cc030004896600200513300e0062259800801466002444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c814a6e05200091111919800800802912cc004006200b13259800800c4cc010c0cc00801a26600a6066004660060060028188c0cc0050304dc0240032259800800c52f5c113302d302a302e00133002002302f00140b1374a900048c0b4c0b800644646600200200644b30010018a508acc004cdc79bae30300010038a518998010011818800a05440b92302d302e302e0014888888888cc8a600244646600200200644b30013022001899b8a4890130000038acc004cdc4000a40011337149101012d0033002002300e00189980319b8400148050cdc599b803370a002900a240c000681a903548c00800644646600200200644b30010018a6103d87a80008992cc004c010006260166607600297ae0899801801981e801206c303b00140e4911191991192cc00400633001370e90034dc3a4011370e9005244464b30013029303e375400b13259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006264b300100181cc4c96600200313259800800c0ee264b30010018992cc00400607b13259800800c0fa07d132598009828001c6600201919800805466002011198008034566002606c60966ea8012264b300100182044c966002003041820c1060831332259800800c10e264b30010018224112089044899912cc00400608d13259800800c11e08f047823c4c96600260b20071598008054122264b3001001824c126093049899912cc00400609713259800800c13209904c82644c96600260bc0071980091112cc004cdc400124061130010028acc004cdc380124061133004480088c0080062b300133710004901c44cc00ccdc724503020408003370000490189180119bca4a2003124bded8c101400001012000416c82d905b488888ca600200300380120022225980099b89002480022600297ae08919194c00401a607200b23005330680020019bad3065002401860c60033001009804400500720be9b87483f80e6e0120029119bb00023750002911111991191919192cc004c13cc190dd5000c4c9660020031323298009112cc004c154c1a8dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003159800983b00146600200d19800800c02601082d2010805a010839a0110088044021077183a000a0e4375a00260e600500541d060e20028378c1c400a007003801c00d0721837800a0da306b375400700141a11325330673372c9211c5b70726f746f636f6c5d20566572696679696e67206e6f6e63653a2000373266062607460d26ea801122010019800918369837183718371837183718371837000c89660020031480022601c6600400460de002836244646600200200644b30010018a508acc004c00cc1c0006294626600400460e2002835106e4dd2a40049111191929983699b964901205b70726f746f636f6c5d207665726966795f6e6f6e636520726573756c743a200037326606f3001001a60103d87a8000a60103d879800041b0910100159800800c6600260e460de6ea802a44646600200200644b30010018a40011332259800980280144c06000620028390c1d8004cc008008c1dc005074488c8cc00400400c896600200314a115980099baf003307230760018a51899801001183b800a0e041d12232330010010032259800800c528c566002600660ec00313300200230770018a5041c083a2460e660e860e860e860e860e860e860e860e8003230733074307430743074307430740019112cc004c170c1c4dd5001c4c9660020030028992cc004006007003801c4c96600260f200700580220ec375a00300341e460ec00283a0c1c8dd5001c00506f48c1ccc1d0c1d0c1d0c1d00064464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320e8899802802983d80220e8375c60e80026eacc1d4004c1dc0050750a5eb7bdb18244b30010018a40011301433002002307500141c923073307430743074307430740019112cc00400a298103d87a80008acc004c17000626088660e860ea00497ae08cc00400e60ec0053046001400c837907348966002003148002260286600400460ea002839244b30010018a5eb82264660e86ea0004cc00c00cc8cc004004c1dc00c896600200314bd7044cc896600330013370e00400b4a14a2839a2660f06ea0008cc0100100062660080080028398dd6983b800983c000a0ea375a60e80028392444646600200200844b300100189983b19bb037520086ea000d2f5bded8c113298009bae30740019bad3075001983c8012444b30013372001000713307a337606ea4020dd4003802c56600266e3c02000e2660f466ec0dd48041ba800700189983d19bb037520066ea0008cc01801800507520ea183b800a0ea911919800800801912cc004006297ae0899912cc004cdd7983c183a9baa307830753754608c60ea6ea8008c024cc1dcdd4802a5eb822660ee0046600800800313300400400141c860ec00260ee00283a244b30010018a40011301433002002307500141c93710900024444444444444444453001222232330010010052232598009839000c4cc160018dd71845809844009baa0028acc004c1c400626602c6eb0c22c04c22004dd5001119802002000c56600260ea00313301d37586116026110026ea80088cc0100100062b3001304d00189919b89375a611802002660326eb0c23004c234040048cc014014004c22004dd500145660026098003132332259800983a1845009baa0028acc004c1d0c22804dd5184700984780801c4cdc49bad308e01308b0137540040031337106eb4c23804c22c04dd5001000a110028a504220046118020026eb4c23004c22404dd50019844009baa3059308801375400b1598009825800c4c8cc896600260e86114026ea800a2b30013074308a013754611c02611e020071337120026eb4c23804c22c04dd500144cdc40009bad308e01308b01375400484400a2941088011846008009bad308c0130890137540066110026ea8c22c04c22004dd5002c4cc05c010c070cc22804c22c04c22004dd500125eb8108501210a0242140484280908501210a02308601375400330090099840009baa0129111191980080080291192cc004c1c8006264a6610e0266e59240121436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660a26ea400522010013259800983a1844809baa001899194c004dd7184780800cdd7184780984800800cdd71847808012444a6611a029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e00153308d013372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660ae6ea4005220100153308d013372c9201187665726966795f65643235353139207061796c6f61643a20003732660ae6ea4009220100153308d013372c92011a7665726966795f65643235353139207369676e61747572653a20003732660ae6ea400d22010013253308e013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660b13001001a60103d87a8000a60103d879800042340491010010019800800c00a006b950c23c04004dd61846809845009baa0018a998440099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660a46ea400922010014a0843808c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c611e020020091305e3308e01374e00297ae08998018019848008012112023758611c02002846008dd71845809844009baa0028acc004c1c4006264a6610e0266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660a26ea0c070005220100132533088013372c92010e416c6c4f6620726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c0491010010013301700123300500500137586116026110026ea800a2b300130750018992998438099b96490122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660a26ea0c070005220100132533088013372c92010e416e794f6620726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c0491010010013301e00123300500500137586116026110026ea800a2b3001304d00189919912998448099b96490112436865636b696e672041744c656173743a20003732660a66ea000922010013253308a013372c92011941744c656173742073617469736669656420636f756e743a20003732660a86ea000522010013253308b013372c92011041744c6561737420726573756c743a20003732660ab3001001a60103d87a8000a60103d87980004228049101001001337120060026603600246600e00e0026eb4c23004004dd61846009846808009844009baa0028acc004c130006264a6610e0266e5924111436865636b696e67204265666f72653a20003732660a26ea0005220100132533088013372c92010f4265666f726520726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c049101001001323259800983a1845009baa0018acc004c1d0c22804dd518470098478080144cdc49bad308e01308b0137540020071337106eb4c23804c22c04dd5000801a110028a50422004611a020026112026ea8c168c22404dd50031bad308b0130880137540051598009825800c4c94cc21c04cdcb24910436865636b696e672041667465723a20003732660a26ea0005220100132533088013372c92010e416674657220726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c049101001001323259800983a1845009baa0018acc004c1d0c22804dd518470098478080144cdc48019bad308e01308b0137540031337100066eb4c23804c22c04dd5000a110028a50422004611a020026112026ea8c23004c22404dd50031bad308b013088013754005132533087013372c920111436865636b696e67205363726970743a20003732660a26ea4005220100132533088013372c92010f53637269707420726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c04910100100133018005301d3308b01375200297ae0375c6116026110026ea800908501210a0242140484280908501210a023086013754003300700798030034c0140164446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803210e02899802802984700802210e02375c610e020026eb4c22004004c2280400508801198070020018a400130020024888888888ca6002444b30013370e60180046010600e646600200200644b30010018a5eb8226612402611e026126020026600400461280200284880a2646600200200644b30010018a5eb8410100008101a0008101a00044c8c8c8cc896600260fe6128026ea800a264b3001300900189984c009ba8337006eb4c26404008dd69833984b009baa0013309801374c64b300130800130960137540031375660d000713756613402612e026ea800509401192cc004c20004c25804dd5000c530103d87a8000898349984c809ba698009bab30680039bae309a013097013754003005406897ae042500460ca612c026ea8004cc26004dd34c004dd598328014dd9984c80984d00802c01101925eb822a66128029211a6578706563742076616c69646174696f6e2872657175657374290016424c04613002612a026ea800a2a661260292012f65787065637420536f6d65287265717565737429203d206c6973742e61742874612c20726571756573745f696478290016424804660120100026600a00a612e020086eb4c25404004cc24c04c24004004cc24c04c244040052f5c061260200284880a2a66118029201886578706563740a202020206c6973742e6c656e67746828726571756573745f746f5f6f75747075747329203d3d206c6973742e6c656e677468280a2020202020206c6973742e756e69717565286c6973742e6d617028726571756573745f746f5f6f7574707574732c20666e286974656d29207b206974656d2e317374207d29292c0a20202020290016422c0522225980099b873022004302200389980e8021192cc004c1ecc24004dd5000c4c96600260f86122026ea800626644b3001308101309301375400313259800800c4c966002610002612a026ea800a264b300100184880c4c96600200313259800800c24c06264b30010018992cc00400612a0313259800800c4c966002003097018992cc004c2880400a330010078cc004016264b30013089010018992cc0040061340313259800800c26c061360309b018992cc004c2980400e01b09c01428c046eb400613602853008c28c040050a101184f809baa0048acc004c22004006264b300100184d00c4c96600200309b0184d80c26c06264b300130a601003806c270050a3011bad00184d80a14c0230a301001428404613e026ea80121320284e00909c01184e809baa00384c00a06e84c00a0c084c00a13e0230a0010014278046140020050960184b00c2580612c02850808c2780400509c01184f00801425006128030940184a00a13e02309c010014268046138020050920184900c248061240284e808c2680400509801184b009baa00284800a1260215980099baf30663095013754002613002612a026ea800e2b3001337126eb4c198c25404dd5001cc004dd59833184a809baa3066309501375400d375c61300200f375c60cc00e806a264b3001308001309501375400313370e6eb4c26404c25804dd50009bad3067309601375400913370e6eb4c26404c25804dd50009bad30673096013754008849808c190c25404dd5000c54cc24c05241666578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d206d61746368696e675f726571756573742e616d6f756e7400164248051533093014913865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e001642480508f0184780c23c0611e0284d008c25c04c25004dd5000c54cc248052413365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d0016424404612a026124026ea8004c184c24804dd518319849009baa0038a9984800a4814765787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c206d61746368696e675f726571756573745f696478290016423c046600e00a6eb4c25004c24404dd5000c54cc23c0524016565787065637420536f6d65286d61746368696e675f726571756573745f69647829203d0a2020202020202020646963742e676574286d617070696e672c2063626f722e73657269616c69736528696e7075742e6f75747075745f7265666572656e6365292900164238046644646600200200c44b3001001801c4c8cc896600266e4401c00a2b30013371e00e005130693309901375000297ae0803212802899802802984d80802212802375c6128020026eb4c25404004c25c04005095011bb330930130900137540022980103d87a80008a9984680a4933657870656374206c6973742e6c656e67746828696e7075747329203d3d206c6973742e6c656e677468287265717565737473290016423005222253308d0149012d5b76616c69646174655f6f7574707574735d205374617274696e67206f75747075742076616c69646174696f6e0015980099b87300600230220038994c004006900040110011112cc004006294626644a661240266e59241305b76616c69646174655f6f7574707574735d2056616c69646174696e67207265717565737420617420696e6465783a20003732660b86ea001122010013259800983f984a009baa0018992cc004c20004c25404dd5000c4c9660020030920184900c2480626464b300130830130980137540031325980099baf309d01309a013754002613a026134026ea8c27404c26804dd5004456600266ebcc1a4c26804dd50009835984d009baa309d01309a0137540111533098013372c92012d5b76616c69646174655f6f7574707574735d20436865636b696e67206f757470757420617420696e6465783a20003732660c46ea000d2201001533098013372c9201245b76616c69646174655f6f7574707574735d20457870656374656420616d6f756e743a20003732660c460d66134026ea80212201001533098013372c9201225b76616c69646174655f6f7574707574735d2041637475616c20616d6f756e743a20003732660c46ea260026eacc1acc26804dd5000cdd7184e808064dd71835806202448900159800803c4cdc3cc004dd59835984d009baa0019bae309d0100c9bae306b00c404864b300133710002900044c1c4006200284c008dd69835984d009baa0088a50425c0515330980149139657870656374206d61746368696e675f6f75747075742e646174756d203d3d20726571756573742e64657374696e6174696f6e2e646174756d0016425c051533098014913d657870656374206d61746368696e675f6f75747075742e61646472657373203d3d20726571756573742e64657374696e6174696f6e2e616464726573730016425c046138026132026ea80062a6612e0292014465787065637420536f6d65286d61746368696e675f6f757470757429203d206c6973742e6174286f7574707574732c206d61746368696e675f6f75747075745f6964782900164258046601c01a0026eb40061240284e008c26404c25804dd5000c54cc250052415b65787065637420536f6d65286d61746368696e675f6f75747075745f6964785f6461746129203d0a202020202020202063626f722e646573657269616c697365286d61746368696e675f6f75747075745f6964785f6279746573290016424c0460646eb8c26004c25404dd5000c54cc24c0524013e65787065637420536f6d65286d61746368696e675f6f75747075745f6964785f627974657329203d20646963742e66696e64286d617070696e672c2069290016424804646600200201044b30010018a60103d87a80008992cc004cdc38039bad309701001898349984c80984b00800a5eb8226600600661360200484a008c2640400509701184a80800cc00400e606a005309601001400c84980a2a6611a0292013265787065637420646963742e73697a65286d617070696e6729203d3d206c6973742e6c656e6774682872657175657374732900164230052223233225980099b87375a6128020020051325980099912cc004006294226530013259800984000984a809baa00189bad3096013099013756613202612c026ea8006290002126023098010019baf3098013099010019bab0024889660020031598009801002c4cdc4a400000714a084a80a264b30013375e61300200298010140008acc004cdc49bad309901309c01375661320200200913003374c613a0200514a084b00a2b300133712900000244c00c01a294109601212c02309b01001426404329800800c00e44661320200466132026e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c25c040066eacc260040066138020069112cc004cdc8a441000038acc004cdc7a4410000389980298369984e809ba60024bd70000c4cc015300103d87a800000642600519800803c006446600e0046613e0266ec0dd48029ba6004001401c84c00861340200484c00a294229422941099011bab3063002374c661280266ec0c25404004dd31984a0099bb0309501309601001375066e0400c0152f5bded8c097adef6c608801c54cc240052401c56578706563740a202020206173736574732e6d61746368280a20202020202074726561737572795f64656c74612e326e642c0a2020202020205b0a202020202020202050616972280a20202020202020202020726573657276655f706f6c6963792c0a202020202020202020205b5061697228726573657276655f6e616d652c206d696e745f616d6f756e74202d2077697468647261775f616d6f756e74295d2c0a2020202020202020292c0a2020202020205d2c0a2020202020203e3d2c0a20202020290016423c046eb0c060c24404dd5003454cc23c052401286578706563742074726561737572795f64656c74612e317374203d3d206d696e745f616d6f756e740016423804b30013079300d0018a4001159800800c21806264b30013094010028acc004cdc79bae308f01001488104555344720089bad3090010018a9984700a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200164234050870142440461240200284800908c0119192cc004c1ecc24004dd5000c4c96600266ebcc25404c24804dd5184a809849009baa30633092013754002604c66128026ea400d2f5c1132598009840009849009baa0018992cc004006330010018992cc004c1fcc25004dd5000c4c96600266ebcc26404c25804dd5184c80984b009baa001302a3309801375200e97ae08992cc004c21004c25804dd5000c4c96600200319800800c4cc26804dd419b81375a6136026130026ea8004dd6984d80984c009baa0053309a01374c6530010019bab306a30990137540093233001001375660d66134026ea8c1acc26804dd5004912cc004006297adef6c608991984f0099bb0309b01001374c64660020026eacc27404008896600200314bd6f7b63044c8cc28404cdd8184f008009ba83075375a613e020026600600661460200461420200284f808cc00c00cc28004008c2780400509c012002222598008014400626466453001006985100802cc8cc00400401489660020031330a201337606ea4010dd3001a5eb7bdb1822653001375c614002003375661420200330a50100248896600266e4002000e26614c0266ec0dd48041ba60070058acc004cdc7804001c4c966002b30010018a518a5042980510028998538099bb037520126e980040090a201194c0040060110034004444b30010028800c4c8cc8a600200d30ae010059919800800802912cc00400626615c0266ec0dd48021ba80034bd6f7b63044ca60026eb8c2b0040066eb4c2b4040066162020049112cc004cdc8004001c4cc2c804cdd81ba9008375000e00b15980099b8f0080038992cc004c26c0400620051330b301337606ea4024dd4000801215c023370000e0051330b201337606ea400cdd400119803003000a15a0242b40430af0100142b4048030dd71853808009bad30a80100130aa0100242a0051330a601337606ea400cdd300119803003000a1420242840430a3010014284048030dd7184d808009bab309c01001309e0100242700497ae084880a04684880c244061220309101427404613402612e026ea80062a6612a0292012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001642500460ca612c026ea80062a661280292013a657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2053637269707428736372697074290016424c04613002612a026ea80062a661260292013c65787065637420536f6d65286f757470757429203d206f75747075745f776974685f706f6c6963792874782e6f7574707574732c20736372697074290016424804660bc6eb0c18cc25004dd500411983298301bab3066309501375400200d08c01407d08c0184600c230061180284c808c25804c24c04dd5000c54cc244052413365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001642400460c26124026ea8c18cc24804dd5000c54cc2400524014065787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2053637269707428736372697074290016423c046128026122026ea8006297ae110100008101a000211c023305737586126026120026ea8010004dd71849009847809baa3019308f0137540086602e6eacc060c23804dd50011bae305f308e0137546030611c026ea800d222259800983c80644cc894cc23c052411f5b6d696e745d205374617274696e67206d696e742076616c69646174696f6e00159800cc004c25004c24404dd502bc0a660506122026ea81f66eacc074c24404dd503ea01a8a9984780a49205b6d696e745d207361746973666965645f7061796c6f61647320706173736564001323298009bab3096010019bab3096013097010019bad30960100248894cc25004cdcb24812f5b6d696e745d2070726f636573735f7265717565737473207061737365642c2073756d6d65645f616d6f756e743a20003732660bc6ea0005220100132533095013372c92011b5b6d696e745d206f726465725f696e7075747320636f756e743a20003732660be6ea0c0a8005220100159800cc0040060110049bac301e30970137540ba805a2a6612a0292011d5b6d696e745d2076616c69646174655f696e707574732070617373656400159800cc004dd61833184b809baa08301804400e661320260d0612e026ea8c084c25c04dd502e9984c80a601054455534472004bd7020148a9984a80a4811e5b6d696e745d2076616c69646174655f6f7574707574732070617373656400132533096013372c9201215b6d696e745d206d61696e7461696e5f747265617375727920726573756c743a20003732660c13001001a60103d87a8000a60103d879800042540491010010013370f300105d84180d200040240051533095014901816578706563740a2020202076616c69646174655f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f75747075745f6964782c0a2020202020202873657474696e67732e72656769737472792e757364722c2075736472292c0a202020202900164250051533095014917a6578706563740a2020202076616c69646174655f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f726967696e5f6964782c0a20202020202073657474696e67732e726573657276655f746f6b656e2c0a20202020290016425004660306eb0c26404c25804dd5041009bae306530960137546040612c026ea8170612c020033001002800c8c048dd698319849009baa0014019153308f014901856578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6d696e745f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900164238046eb0c24804c23c04dd50101bab309201308f013754612402611e026ea81fa2b3001307800c8992cc006600260c26120026ea815a051302730900137540f9375660386120026ea81f100c44c8c9660033001330143758612a026124026ea81f8dd718309849009baa301c30920137540b10039bab3095010019984a0098319849009baa301c30920137540b066128029801054455534472004bd70200c8acc00660026eb0c184c24804dd503f400e6eacc25404c258040066eb0c064c24804dd502c200a899b87980082c41fa90002008375a612a020051533090014901796578706563740a2020202076616c69646174655f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206275726e5f72657175657374732c0a2020202020206f75747075745f6964782c0a20202020202073657474696e67732e726573657276655f746f6b656e2c0a20202020290016423c05153309001491826578706563740a2020202076616c69646174655f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206275726e5f72657175657374732c0a2020202020206f726967696e5f6964782c0a2020202020202873657474696e67732e72656769737472792e757364722c2075736472292c0a20202020290016423c04612a0200330010019bab30930130900137546126026120026ea81fe466e20dd698311848809baa00148001005454cc23805241856578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6275726e5f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900164234046eb0c24804c23c04dd5010456600260f801913259800cc004c17cc24004dd502b4dd6180e9848009baa07c98139848009baa07c9bab301c30900137540f8807a2b300130100018983d4c00415a0f90014009153308e014911a6578706563742077697468647261775f616d6f756e74203e20300016423405086014234046eb4c24804c23c04dd501044c9660033001305f30900137540ad3758603a6120026ea81f2604e6120026ea81f26eacc070c24004dd503e201e8acc004c040006260f5300105683e4cdc1000a400280122a6611c02920119657870656374206465706f7369745f616d6f756e74203e20300016423405086014234046eb4c24804c23c04dd501021180242300484600844b300133710002900045300103d87a8000899803801000a1120222a660da920113657870656374206e6f6e63655f726573756c74001641b0653001306e37540032323232332259800982f8014528456600260c40051980099baf30783075375400298103d87b8000a50a5141c913233225980098310014528c56600260c200513322598009831983c9baa304b307a375400d13371000400313371200400283b8dd6983d983c1baa003598009830983b9baa30493078375400f10018980d800a0ea8a5041d483a8c1d4dd50009bad30793076375400860f060ea6ea800507220e43072375400260ec60ee00660ea60e46ea8004c1d0004c1c0dd5000c888c8cc896600260be005159800982f983a1baa0018a6103d87a80008a6103d879800041c91598009831001456600260c460e86ea80062980103d87a80008a6103d87b800041c913322598009830800c530103d87b80008acc004c180006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041d483a8dd6983d183b9baa0038a6103d879800041d083a0dd6983c183a9baa00330743754002839107218391baa0013002003300100348896600260b80071325330713372c921215b7665726966795f6e6f6e63655d204c6f6f6b696e6720666f72206f7265663a200037326607600291010015330713372c9201215b7665726966795f6e6f6e63655d204e756d626572206f6620696e707574733a20003732660766ea0c018dd6183b18399baa05f48900133008375860ec60e66ea817c94cc1c8cdcb24811f5b7665726966795f6e6f6e63655d20436865636b696e6720696e7075743a200037326607860ee60e86ea80052201001325330733372c9201185b7665726966795f6e6f6e63655d204d6174636865733a200037326607b3001001a60103d87a8000a60103d879800041c891010010013375e60ee60e86ea8004008c1d4c1c8dd5002456600260b600713322598009802000c528c566002600800514a1159800cc004cdd7cc004c1dcc1d0dd50014c1dcc1d0dd5000c8c8c96600260c060ec6ea8c1e8c1ec00a2003132598009830800c4c030cc1e8dd4180d9bad307b3078375400497ae08acc004c1880062005100241d483a8c1d8dd5000a0e83079001307537540028019300103d87b8000a50a5141c51980099baf98009822983a1baa0029822983a1baa001919192cc004c180c1d8dd5183d183d80144006264b30013061001898061983d1ba8304c375a60f660f06ea80092f5c11598009831000c400a200483a9075183b1baa00141d060f200260ea6ea8005003260103d8798000a50a5141c514a0838907120e2307530723754008601260e46ea817a294106f20de181f98371baa009300300319198008009bac3038306937540b044b30010018a5eb822660d86e9cc8c8cc1b8c1bc008cc1b8c0ecc1b0dd5000998371ba9980091838183898389838800c8c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a410008004835906b1b8d001981f198372610b4a5369676e617475726531003306e306f306c375460de60d86ea8004cc1b93010140003306e303d306c37540b697ae048894cc1b4cdcb249165369675374727563747572652e636f6e746578743a200037326606e60e460de6ea8005220100153306d3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a200037326606e608060de6ea8005220100153306d3372c92011b5369675374727563747572652e65787465726e616c5f6161643a200037326606e607c60de6ea8005220100153306d3372c9201165369675374727563747572652e7061796c6f61643a200037326606e600660de6ea800522010013253306e3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a20003732660706ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241b88370dc68009bae3072306f375400266e28c008dd7182018379baa0013371460046eb8c0f8c1bcdd500098011bae3003306f37540024bd70183718378009bac306d00133002002306e00141ad22259800982a98351baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300130700018acc004cdc4a400860de0030068992cc004c1d4012264b3001305c0018acc004c1c8dd50034026010839a2b3001305b0018992cc00400601313259800800c02a01500a8992cc004c1e400e01900b41d86eb400601483c8c1d800507418391baa0068acc004c17c0062b30013072375400d00980420e680420de41bc8378c1c0dd5002c01d072182c9837800a0da80320e23754003005802c01600a83a0c1c400506f1838801400e007003801a0e4306f00141b460d66ea800e002834122259800982a98351baa0068992cc0040060c113259800800c4c9660020030628992cc0040062b30013073002899912cc004c16c006264b300100183344c966002003067833c4c96600260f000713305b0012259800801401e264b30010018cc0040062600460f600706b403d06b835c1ae0d683e0c1e400907741a10751bac001833c19d078183a800a0e63071375400b159800982d000c4c9660020030668992cc0040060cf0678992cc004c1e000e2660b600244b3001002803c4c96600200319800800c4c008c1ec00e0d6807a0d706b835c1ad07c183c80120ee83420ea3758003067833a0f0307500141cc60e26ea80162b3001305e0018992cc0040060cd13259800800c19e0cf0678992cc004c1e000e00b06841d46eb40060ce83c0c1d400507318389baa0058acc004c0d8006264b300100183344c966002003067833c19e264b30013078003802c1a10751bad001833a0f0307500141cc60e26ea80160ca837106e20dc41b8264b3001305a0018992cc0040060cb13259800800c56600260ec005159800982e18389baa0018992cc0040060cf13259800800c1a20d106883444cc896600200306a8992cc0040060d706b835c4c96600260f800700f83620f2375a00306b41f060f200283b8dd7000983c00120f2307600141d060e46ea80060cc837a0cc839a0cd0668334199077183a000a0e430703754005159800982c800c4c9660020030658992cc0040062b300130760028acc004c170c1c4dd5000c4c9660020030678992cc004006264b3001001834c4c966002003159800983d00146600200719800800c0360d480620d480620d483ba0d506a83541a907b183c000a0ec307800283441a20d106841e460ec00283a0c1c8dd5000c19906f4199073419a0cd06683320ee307400141c860e06ea800a2b3001305d0018992cc0040060cb13259800800c19a0cd06683344c96600260ee00700a833a0e8375c00283b8c1d000507218381baa00283220da41b48368c1b8dd500098371baa003831a0e0831c18e0c706341d060e20028378c1c400a0c3061830c1850721837800a0da306b375400d05f41a022259800982a18349baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130720028992cc004c164c1b8dd500244c9660020030078992cc004006264b3001001804c4c966002003159800983b80146600200713259800982f000c4c96600200300c8992cc0040062b3001307a0028992cc004c184006264b3001001807c4c966002003159800983e80146600200300b808202680820f4808404202101041f860f600283c8c1dcdd5001456600260c000313259800800c03e264b300100180840420211332259800800c04a264b3001001809c04e0271332259800800c056264b300100180b405a02d13259800984200801c04a02e840808dd6800c05908401184080800a0fe375a00261000200501342040460fc00283e0dd6800983e801404107e183d800a0f23077375400500e41d083a0c1d4dd5000c035077403601b00d806a0f6307800141d860e86ea800a2b3001305d0018acc004c1d0dd5001401a01683aa016838907118391baa001805201a80520e8805402a01500a41e060ea0028398c1d400a01100880440210761839800a0e2306f375400900641b0264b300130590018acc004c1bcdd5001401e00c83822b300130580018992cc00400600f13259800800c02201100880444c96600260ec00700a804a0e6375c00283b0c1cc00507118379baa0028acc004c170006264b3001001803c4c96600260ea00500980420e4307300141c460de6ea800a00c836106c20d8306d375400300541bd005802c01600a8398c1c000506e1838001400e007003801a0e2306e00141b060d46ea800e0028338888c96600260a800313259800800c00e264b300100180240120090048992cc004c1c400e00d00541b86eb80050711837000a0d8306a37540091598009829800c4c9660020030038992cc0040060090048024012264b30013071003803401506e1bae00141c460dc0028360c1a8dd5002400906720ce3068375400705a82d416a0b48358c1a0c194dd5000c54cc18d24014565787065637420536f6d65287369676e65645f7061796c6f61645f6461746129203d2063626f722e646573657269616c6973652872656465656d65722e7061796c6f6164290016418860026eb8c0d4c190dd50299192cc004c13c006298103d87a80008992cc006600260a06eb4c1980069429450634530103d87a80008981c198341832800a5eb810634c00488006444b3001337120029000452f7b63010140000101200089980119b8e0053370200800266e0400400d06548896600266e2400520008a5ef6c601014000010120008998014c004cdc0802000c00e00ab8c19b810010034195001400c8310dc680098008009119800911191919bb032374e660d660d0002660d660d200297ae03376060ce00460ce00260d0003300100691000c012007375a60ce0028032600200b22001801c00a002802888cc00920022325980099b89001480122b300130510018cc004012007002918051ba800140351598009828000c6600200900399b80002480fe460146ea0c0f0c0f800500d456600266e1c00920be0189919800800918059ba9001223300648008966002601c00313002489008cc00401e00d33700002903fc8cc0100108c010cdc5001000a014419d19800802400e66e00009207f918051ba9001401c832106420c88acc004cdc3800a401919800802400e66e0000920ff02919802a40044b30013370e004906600c492f7b63001014000010120008992cc004cdc38012417c0519800803c01a66012012440032300d3374a004002805a330010078034cdc0001241fe0329800804401e66014014440030019180719ba5003001404080810672cc004cdc4a41002800513370066e0000920ff134803a266e0000920f1014198833100d4566002605600315980099b87002482f80a33001004801ccc01801888006460146e9c00500846600200900399b80002483fc06530010058024cc01c01c880060032300b374e002806900d20c88acc004c0a80062b30013370e004907f0144c8c8cc0040048c030dd30009119803a40044b3001300f0018980125eb7bdb18224646530010069180319838801000cdd69837001200c323376060e200260e260e40026eb0c1b000660020130089807800a00a41a06600c00c4400519800802400e66e0000920bf02919194c0040060072300d374c00280088896600266e24009200089800a5eb7bdb18224646530010069821802c8c014cc1c80080066eb4c1bc0090061919bb0307200130723073001375860da003300100a804c00500520d23300700722002403483222497bdb181014000010120004190832106420c8337060029020111119198008008011119803240044b3001300a0018980125eb8224646530010069180319836001000cdd69834801200c30670019800804401e6014002803106311114c00401200700291980200091801800a012413505b1bae001417860b600282c8dd7000982d005a0b6305800a415904841586eb8005059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270c130dd500240fd04940fd00e40fd00e40fd00e40fd00e40fd04d1bac00181f40f90501826800a096304d00281e40f207903c413860960028248c12c00a07503a81d40e904c1824800a08e304900281c40e20710384128608e0028228c11c00a06d03681b40d90481822800a086304500281a40d2069034411860860028208c0fcdd5002c0c903c111194c004006009003400444464b3001302f0018992cc00400600d13259800800c01e00f007803c4c96600260980070058042092375c0028260c12400504718229baa0038acc004c0b8006264b300100180344c966002003007803c4c966002609800713302f0012259800801401e264b30010018cc00402a00313002304f003402900b805c02e0168280c13400904b40210491bac001803c01d04c1824800a08e304537540071598009819000c4c9660020030068992cc00400600f0078992cc004c13000e26605e00244b3001002803c4c96600200319800805400626004609e006805201700b805c02d0501826801209680420923758003007803a0983049001411c608a6ea800e2b3001300a0018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009827801c4cc0c8004896600200500a8992cc0040063300100d800c4c008c14800d00d403a01d00e80720a63050002413900b41306eb000601500a413c60980028250dd68009825801401d04c1824800a08e304537540071598009804800c4c9660020030068992cc00400600f007803c4c96600260980070058042092375a003007413060920028238c114dd5001c566002601000313259800800c01a264b3001001803c01e00f132598009826001c0160108248dd6800c01d04c1824800a08e3045375400715980099b8748030006264b300100180344c966002003007803c01e00f132598009826001c0160108248dd7000a0983049001411c608a6ea800e00a821104220844108821104220843043375400481740ba05d02e4100601660746ea8c94cc0e4cdcb24812467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea40dd220100132598009813181d9baa00189929981d99b9649113666f756e642070726f7879207574786f3a3a200037326600a002910100132598009815981e9baa0018992cc0040062b30013029303e375400313259800800c0d6264b300100181b40da06d036899912cc0040060711325980098240014401a0728228c1180050441bae0013045002411860860028208c0fcdd5000c0d103c40d206903481a20883041303e3754003153303c49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640ec6018607a6ea8c038c0f4dd5000981f981e1baa0018a9981d24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640e46600400206e6eb0c02cc0e8dd50131800800911980200111980598031bab300c303b3754601860766ea8004008888c9660020071323233223300b0023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101420805980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81d103a1bac303d002375a60760026466ec0dd4181d8009ba7303c001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6080003337149101023a200098008054c10400600a805100a182180144ca6002015304000199b8a489023a200098008054c104006600e66008008004805100a182180120823043001410066e29220102207d0000340f46eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a0028039011207a3758007133007375a0060051323371491102682700329800800cc044dc68014cdc52450127000044004444b30013371000490004400626466453001006980b002ccdc599b800025980099b88002480522903045206e40fc66e2ccdc0000acc004cdc4000a402914818229037207e004401866e0c00520203370c002901019b8e00400240f06eb800d0401b8a4881022c200018048049802802a264b300100180e4072264b300100180ec4c96600200301e80f407a03d1332259800800c082264b30010018acc004c0cc00a2b30013019302e375400313259800800c08a264b30010018992cc00400604913259800800c4c9660020030268992cc00400604f027813c09e264b3001303a0038acc004c080c0d4dd500344c9660020030298992cc00400605502a81540aa26644b300100181644c96600200302d816c0b605b132598009820001c660020151301430400158172048817207a375c0028200c0f400503b1bae001303c00240f4607400281c0c0d8dd500340a103340a10371bae00140e8606e00281a8c0dc00a04b025812c095038181a800a0663035002811c08e04702340d860660028188c0bcdd5000c08502c40850304086043021810a068303100140bc6eb8004c0c00090311817000a058375800301c80e205e302c00240a91323259800800c06e03701b899912cc00400603b01d80ec4c8c018c0c001cdd6800c0750301bad001302900280da05c3027001302a00240a101740986eac00602d01680b20523026001409060446ea801e02880fa0288118dd6000c04e0268130c08c0050211bae0013022002408c604000280f0c08000a01d00e8074039021180f000a038301a375401300c405c44464b300130060018992cc00400600713259800800c01200900480244c9660026046007006802a040375c0028118c08000501e180e1baa0048acc004c0140062b3001301c3754009003801203a8012032406460346ea800c88c8cc00400400c88cc00c004c008008dc3a40006e1d20028044022011008406c6030602a6ea800e2c80906028002601e6ea8056293454cc0352411856616c696461746f722072657475726e65642066616c7365001365640301" + : + "592497010100229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007370e90004dc3a40052232330010010032233003001300200248888c9660026008601c6ea802626464646644b300130180038992cc004c028c050dd5000c4c96600260340031330093756603200244b3001002899805803112cc00400a330012259800800c52f5c113301e301b301f0013300200230200014075374a900048c078c07c00644646600200200644b30010018a508acc004cdc79bae30210010038a518998010011811000a038407d2301e301f301f0019b874801a6e1d20089b8748029222222223322332232332259800980f18141baa00289919191919194c004dd61819000cc0c8016606400930320039819001244444b30013038006899806181b8058998060020998060018998060010acc004c0a4c0ccdd5000c4c8c8ca60026eb8c0e80066eb8c0e800e6eb8c0e800922259800981f00244c8cc896600260820071980091112cc004cdc400124061130010028acc004cdc380124061133004480088c0080062b300133710004901c44cc00ccdc7244103020408003370000490189180119bca4a2003124bded8c10140000101200040fc81f903f4dc024003370e907f01cdc02400522337600046ea00066e052000488888a600244444653001001801c0090011112cc004cdc480124001130014bd70448c8ca600200d30100059180299828801000cdd69827001200c304c0019800804c022002803904948888c8cc00400400888cc01920022598009805800c4c0092f5c1123232980080348c018cc1400080066eb4c1340090061825800cc00402200f300b0014018824244453001004801c00a4660080024600600280512223232323259800981f98249baa00189919914c00489660026088609c6ea800a26464646644b30013058003899804982b802899823001003459055182a8009bad305500230550013054001304f37540051641351980099198008009bac3030304e375409044b30010018a5eb822660a26e9cc8c8cc14cc150008cc14cc0ccc144dd5000998299ba9332233714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002414c8298dc68009bae30563053375400266e28c008dd7181b98299baa0013371460046eb8c0d4c14cdd500098011bae305630573057305730533754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241448288dc6800981b19829a610b4a5369676e617475726531003305330543051375460a860a26ea8004cc14d3010140003305330353051375409697ae04bd701829982a0009bac30520013300200230530014141230513052305230523052305230523052001911919800800801912cc00400629422b3001300330540018a51899801001182a800a09e4149374a900124444b300132980098289baa001919191919912cc004c13400a29422b300130500028cc004cdd7982d982c1baa0014c103d87b8000a50a51415913233225980098280014528c566002609e00513322598009828982e1baa3041305d375400d13371000400313371200400282d8dd6982f182d9baa003598009827982d1baa303f305b375400f10018980d800a0b28a50416482c8c160dd50009bad305c3059375400860b660b06ea800505620ac3055375400260b260b400660b060aa6ea8004c15c004c14cdd5000c888c8cc8966002609a0051598009826982b9baa0018a6103d87a80008a6103d879800041591598009828001456600260a060ae6ea80062980103d87a80008a6103d87b8000415913322598009827800c530103d87b80008acc004c138006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000416482c8dd6982e982d1baa0038a6103d8798000416082c0dd6982d982c1baa0033057375400282b1056182a9baa00130020033001003488966002609400713233007375860b260ac6ea81348cdd7982d182b9baa0010023058305537540091598009824801c4cc8966002600800314a315980098020014528456600330013375f3001305a30573754005305a3057375400323232598009827182c9baa305d305e0028800c4c966002609e0031300b3305d375060366eb4c178c16cdd500125eb822b3001305000188014400905920b23059375400282c0c170004c160dd5000a0064c0103d87b8000a50a5141551980099baf9800981d982b9baa002981d982b9baa001919192cc004c138c164dd5182e982f00144006264b3001304f001898059982e9ba8301d375a60bc60b66ea80092f5c11598009828000c400a200482c9059182c9baa001416060b800260b06ea8005003260103d8798000a50a51415514a082a905520aa305830553754008600e60aa6ea8132294105320a6181a98289baa0058cc004c150c144dd5002c88c8cc00400400c896600200314800226644b300130050028980b800c4005055182c00099801001182c800a0ac911919800800801912cc00400629422b30013375e00660a860b000314a31330020023059001414c82b244646600200200644b30010018a518acc004c00cc16000626600400460b200314a0829905648c154c158c158c158c158c158c158c158c158006460aa60ac60ac60ac60ac60ac60ac0032259800982418291baa002899192cc004c16400a0071641586eb4c15c004c14cdd500145905148c154c158c158c158c1580064464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320ae899802802982e80220ae375c60ac0026eacc15c004c1640050570a5eb7bdb18244b30010018a400113013330020023057001415123055305630563056305630560019112cc00400a2980103d87a80008acc004c12400626072660ac60ae00497ae08cc00400e60b00053016001400c829105548966002003148002260266600400460ae00282a244b30010018a5eb82264660ac6ea0004cc00c00cc8cc004004c16400c896600200314bd7044cc896600330013370e00400b4a14a282b22660b46ea0008cc01001000626600800800282b0dd6982c800982d000a0ae375a60ac00282a2444646600200200844b300100189982c19bb037520086ea000d2f5bded8c113298009bae30560019bad3057001982d8012444b30013372001000713305c337606ea4020dd4003802c56600266e3c02000e2660b866ec0dd48041ba800700189982e19bb037520066ea0008cc01801800505820b0182c800a0ae911919800800801912cc004006297ae0899912cc004cdd7982d182b9baa305a30573754607660ae6ea8008c01ccc164dd4802a5eb822660b200466008008003133004004001415460b000260b200282b244b30010018a40011301333002002305700141512259800800c520008980999801001182b800a0a89b8848001222222222222222222298009111191980080080291192cc004c18000626609c00c6eb8c1b8c1acdd5001456600260be003133017375860dc60d66ea80088cc0100100062b3001306300189980e1bac306e306b37540044660080080031598009826000c4c8cdc49bad306f0013301a375860de60e000246600a00a00260d66ea800a2b3001304b00189919912cc004c188c1b4dd5001456600260c460da6ea8c1c4c1c800e266e24dd6983898371baa002001899b88375a60e260dc6ea800800506c452820d8306f001375a60de60d86ea800cc1acdd5182798359baa0058acc004c1280062646644b30013062306d3754005159800983118369baa30713072003899b89001375a60e260dc6ea800a266e20004dd6983898371baa00241b114a08360c1bc004dd6983798361baa003306b375460dc60d66ea80162660300086036660da60dc60d66ea80092f5c0834906920d241a4834906918349baa00198050054c18cdd5009c8888c8cc00400401488c96600260c00031323259800983118361baa001899194c004dd718390014dd718391839800cdd71839000ae5460e40026eb0c1c0c1b4dd5000c52820d632330010010082259800800c5300103d87a80008992cc004cdc79bc8375c60e40020091305433071374e00297ae0899801801983980120da375860e20028378dd7183718359baa0028acc004c17c00626602e6eb0c1b8c1acdd5001119802002000c56600260c600313301c375860dc60d66ea80088cc0100100062b3001304c00189919b89375a60de002660346eb0c1bcc1c00048cc014014004c1acdd500145660026096003132332259800983118369baa0028acc004c188c1b4dd518389839001c4cdc49bad3071306e37540040031337106eb4c1c4c1b8dd5001000a0d88a5041b060de0026eb4c1bcc1b0dd500198359baa304f306b375400b1598009825000c4c8cc896600260c460da6ea800a2b30013062306d375460e260e40071337120026eb4c1c4c1b8dd500144cdc40009bad3071306e37540048362294106c18378009bad306f306c375400660d66ea8c1b8c1acdd5002c4cc060010c06ccc1b4c1b8c1acdd500125eb8106920d241a4834906920d23069375400330080089803803cc01801a6006007222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01906b44cc014014c1c401106b1bae306a001375a60d600260da0028358cc03c01000c520009801001244444444446530012225980099b87300d0023009300832330010010032259800800c52f5c11330763073307700133002002307800141d5132330010010032259800800c52f5c30100008101a0008101a00044c8c8c8cc896600260dc60f06ea800a264b3001300900189983e1ba8337006eb4c1f4008dd6982f183d1baa0013307c374c64b3001306f307a37540031375660be0071375660fc60f66ea8005079192cc004c1bcc1e8dd5000c530103d87a8000898301983e9ba698009bab305f0039bae307e307b3754003005407097ae041e460b860f46ea8004cc1f0dd34c004dd5982e0014dd9983e983f002c01101b25eb822c83c0c1f0c1e4dd50014590771980480400099802802983d8021bad30790013307730740013307730750014bd70183b800a0ea8b20e091112cc004cdc398040021804001c4cc07c0108c96600260d460e86ea8006264b3001306b3075375400313322598009838183b9baa001899192cc004c1bcc1e4dd500144c8c8c8ca60026102020033081010039840808012444b300130850100489982c98420080389981b0010992cc004c1dc00626464b3001308801002805c59085011bad3086010013082013754005159800983b000c4c8c96600261100200500b8b210a02375a610c020026104026ea800a2c840009080011840009baa0018b210402184080800984000800983f800983d1baa0028b20f015980099baf305d3079375400260f860f26ea800e2b3001337126eb4c174c1e4dd5001cc004dd5982e983c9baa305d3079375400d375c60f800f375c60ba00e806a264b3001306f3079375400313370e6eb4c1f4c1e8dd50009bad305e307a375400913370e6eb4c1f4c1e8dd50009bad305e307a375400883c0c16cc1e4dd5000c59077459077183d983c1baa0018b20ec30793076375400260b060ec6ea8c168c1d8dd5001c59074198038029bad3078307537540031641cc6644646600200200c44b3001001801c4c8cc896600266e4401c00a2b30013371e00e005130603307d375000297ae080320f2899802802983f80220f2375c60f00026eb4c1e4004c1ec0050791bb3307730743754002298103d87a80008b20e291112cc004cdc398030011804001c4ca60020034800200880088896600200314a313322598009836983b9baa0018992cc004c1b8c1e0dd5000c4c96600260de60f26ea8006264b30013375e60fc60f66ea8004c1f8c1ecdd5183f183d9baa0058acc004cdd7982e983d9baa001305f307b375460fc60f66ea80162b300198008044c0ec01e60fe00c8042266e1e60026eacc17cc1ecdd5000cdd7183f004cdd7182f804a01e325980099b880014800226074003100141e86eb4c17cc1ecdd5002c52820f28b20f28b20f2307d307a37540031641e0660160146eb4c1f0c1e4dd5000c5907718181bae307b307837540031641d860f2002646600200200c44b30010018a60103d87a80008992cc004cdc38029bad30790018982f1983d983c000a5eb8226600600660fa00483b8c1ec00507920ee8b20e29111919912cc004cdc39bad30780010028992cc004cc896600200314a11329800992cc004c1bcc1e4dd5000c4dd6983d183e9bab307d307a3754003148001078183e000cdd7983e183e800cdd58012444b30010018acc004c008016266e2520000038a5041e91325980099baf307c0014c010140008acc004cdc49bad307d308001375660fa00200913003374c61020200514a083da2b300133712900000244c00c01a294107b20f6307f00141f4329800800c00e44660fa004660fa6e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c1ec0066eacc1f00066100020069112cc004cdc8a441000038acc004cdc7a44100003899802983219840809ba60024bd70000c4cc015300103d87a800000641f519800803c006446600e004661060266ec0dd48029ba6004001401c83e860fc00483e229422942294107d1bab305a002374c660f066ec0c1e4004dd31983c19bb03079307a001375066e0400c0152f5bded8c097adef6c608801c590741bac301a3075375400d1641ccb30013068300e0018a4001159800983b800c4c96600266e3cdd71839800a44104555344720089bad30740018b20e430760018b20e841c46464b3001306a307437540031325980099baf30793076375460f260ec6ea8c168c1d8dd500098131983c1ba90034bd7044c96600260de60ec6ea800626466042002264b3001306e307837540031325980099baf307d307a375460fa60f46ea8004c0a8cc1f0dd4803a5eb82264b30013073307a37540031323302500113307e375066e04dd6983f983e1baa001375a60fe60f86ea8014cc1f8dd3194c0040066eacc184c1f4dd50024c8cc004004dd59831183f1baa3062307e375401244b30010018a5eb7bdb182264661040266ec0c1fc004dd319198008009bab3081010022259800800c52f5bded8c11323308501337606104020026ea0c104dd698418080099801801984380801184280800a1060233003003308401002308201001420004800888966002005100189919914c00401a610c0200b32330010010052259800800c4cc21804cdd81ba9004374c00697adef6c608994c004dd7184200800cdd5984280800cc224040092225980099b900080038998450099bb037520106e9801c0162b30013371e01000713259800acc0040062946294108a014400a2661160266ec0dd48049ba6001002421c04653001001804400d0011112cc00400a2003132332298008034c24804016646600200200a44b30010018998490099bb037520086ea000d2f5bded8c113298009bae3090010019bad309101001984a808012444b30013372001000713309601337606ea4020dd4003802c56600266e3c02000e264b3001308a01001880144cc25c04cdd81ba90093750002004849808cdc000380144cc25804cdd81ba900337500046600c00c002849009092010c24c0400509101200c375c6116020026eb4c23004004c2380400908c0144cc22804cdd81ba9003374c0046600c00c002843009086010c21c0400508501200c375c60fe0026eacc20004004c208040090800125eb80c1f8c1ecdd5000c59079182e183d1baa0018b20f0307c307937540031641dc660a66eb0c168c1e0dd500411982e182a9bab305d3079375400200c60f460ee6ea80062c83a8c160c1d8dd5182d183b1baa0018b20e830783075375400314bd7090100008101a00020e63304e375860ee60e86ea8010004dd7183b18399baa301b30733754008660326eacc068c1c8dd50011bae305630723754603460e46ea800d2222598009834006c4c966003300130773074375409b0279813183a1baa06b9bab301e307437540d6806a26464b300198009980b1bac3079307637540da6eb8c160c1d8dd5180f183b1baa04f801cdd5983c800cdd6180d983b1baa04f4019159800cc004dd6182c183b1baa06d801cdd5983c983d000ccc1e0c168c1d8dd5180f183b1baa04f330784c1054455534472004bd70200a899b879800827c1b690002008375a60f20051641d11641d060f200330010019bab30773074375460ee60e86ea81ba460246eb4c164c1d4dd5000a00a8b20e4375860ec60e66ea808a2b3001306700d8992cc006600260b060e86ea813604f3026307437540d73756603c60e86ea81ad00d44c8c966003300133016375860f260ec6ea81b4dd7182c183b1baa301e3076375409f0039bab30790019983c182d183b1baa301e3076375409e660f0981054455534472004bd70200c8acc00660026eb0c160c1d8dd5036c00e6eacc1e4c1e80066eb0c06cc1d8dd5027a00a899b879800827c1b690002008375a60f20051641d11641d060f200330010019bab30773074375460ee60e86ea81ba466e20dd6982c983a9baa001480010054590721bac3076307337540451598009835806c4c966003300130563074375409b3758603e60e86ea81ae604c60e86ea81ae6eacc078c1d0dd5035a0208acc004c044006260d3300104d835c0050024590724590721bad30763073375404513259800cc004c158c1d0dd5026cdd6180f983a1baa06b9813183a1baa06b9bab301e307437540d680822b3001301100189834cc0041360d7337040029000a0048b20e48b20e4375a60ec60e66ea808907120e241c4225980099b8800148002298103d87a8000899804001000a0dc22c82792259800982218271baa00289919192cc004c15800a26464b300130490018acc004c150dd5001401a2c82aa2b30013048001899192cc004c16800a01116415c6eb4c160004c150dd500145660026098003159800982a1baa00280345905545905220a4414860a46ea8004c15400e2c8298c96600260a400315980099b8948010c1440062d130463051001414116414c6ea8c150004c150004c13cdd500145904d2444b30013045304f3754009132323259800982b80144c8cc8966002609600513259800982d800c4cc128dd6182d000912cc00400a00913300c305c00213001305d002416916416060ac6ea800e2b3001304a0028992cc004c16c0062660946eb0c1680048966002005004899806182e00109800982e80120b48b20b030563754007159800982700144c8c96600260b80050038b20b2375a60b400260ac6ea800e2b30013037002899192cc004c17000a0071641646eb4c168004c158dd5001c5905420a8415082a0c14cdd50008992cc004c128006264b3001305a0018992cc004c130c158dd5000c4c8c8cc896600260be00700d8b20b8375a60b80026eb8c170008c170004c15cdd5000c59055182c800c59057182a9baa0038acc004c124006264b3001305a0018992cc004c130c158dd5000c4c8c8c96600260bc00513300b305d00313300b00100c8b20b6305c001305c0013057375400316415460b200316415c60aa6ea800e2b3001304d001899192cc004c16c00a0131641606eb8c164004c154dd5001c5905320a6414c60a66ea8008c15800e2c82a0c154004c154004c140dd500245904e08966002608460986ea800a2646464b30013054002899912cc004c11cc144dd500144c8c8c96600260b200513300b3058003132598009825800c4c96600260b600313232598009827000c4c96600260bc003133010305d0010098b20b6305937540051598009826800c4c8c8ca60026eb4c17c0066eb4c17c00e6eb4c17c009222598009831802403a2c830060be00260bc00260b26ea800a2c82b9057182b9baa001305a0018b20b0305637540051598009825000c56600260ac6ea800a00b16415d16415082a0c150dd5000c59056182b800982b80098291baa0028b20a03053003132598009823000c56600260a26ea800a00b1641491598009822800c4c8c96600260ae0050078b20a8375c60aa00260a26ea800a2b30013049001899192cc004c15c00a00f16415060aa00260a26ea800a2c827904f209e304f375400316414460a400260a4002609a6ea800a2c8258c138c12cdd500111192cc004c10800626464b300130530028024590501bae3051001304d37540071598009820800c4c8c96600260a60050048b20a0375c60a2002609a6ea800e2c825904b18259baa0028b20903001375c605a60926ea810c8c966002607e00314c103d87a80008992cc006600260806eb4c12c0069429450494530103d87a800089818198269825000a5eb810494c00488006444b3001337120029000452f7b63010140000101200089980119b8e0053370200800266e0400400d04b48896600266e2400520008a5ef6c601014000010120008998014c004cdc0802000c00e00ab8c19b81001003412d001400c8240dc680098008009119800911191919bb032374e660a0609a002660a0609c00297ae03376060980046098002609a003300100691000c012007375a60980028032600200b22001801c00a002802888cc00920022325980099b89001480122b300130410018cc004012007002918061ba8001403d1598009820000c6600200900399b80002480fe460186ea0c03cc02c00500f456600266e1c00920be0189919800800918069ba9001223300648008966002602000313002489008cc00401e00d33700002903fc8cc0100108c010cdc5001000a014413519800802400e66e00009207f918061ba9001401c825104a20948acc004cdc3800a401919800802400e66e0000920ff02919802a40044b30013370e004906600c492f7b63001014000010120008992cc004cdc38012417c0519800803c01a66012012440032300f3374a004002805a330010078034cdc0001241fe0329800804401e66014014440030019180819ba50030014034809104d2cc004cdc4a41002800513370066e0000920ff134803a266e0000920f1014130826100f4566002605800315980099b87002482f80a33001004801ccc01801888006460186e9c00500846600200900399b80002483fc06530010058024cc01c01c880060032300d374e002805100f20948acc004c0ac0062b30013370e004907f0144c8c8cc0040048c038dd30009119803a40044b300130110018980125eb7bdb1822464653001006918031982b001000cdd69829801200c323376060ac00260ac60ae0026eb0c14400660020130089808800a00a41386600c00c4400519800802400e66e0000920bf02919194c0040060072300f374c00280088896600266e24009200089800a5eb7bdb1822464653001006980b002c8c014cc15c0080066eb4c1500090061919bb0305700130573058001375860a4003300100a804c005005209e3300700722002403c82522497bdb181014000010120004128825104a209433706002902011640f86eb8c0f8004dd7181f006181f005c5903b0c0e8004c0e4004c0d0dd5000c590324590350c0c8004c0c4004c0c0004c0bc004c0b8004c0a4dd5001459027180598139baa3259800980e98139baa0018992cc004c084c0a0dd5000c4c966002603e60526ea8006264646644b300130320038802c5902f18178009bae302f002302f001302a37540031640a0605860526ea80062c8138c028c0a0dd5180618141baa302b30283754003164098660026eb0c02cc09cdd500f0121802002111980180111980618029bab300d30293754601a60526ea80040088c00c00488c8cc00400400c896600200314c103d87a80008992cc004c0100062601c6605600297ae08998018019816801204e302b00140a4601001044464b3001301b001899192cc004c0b000a0091640a46eb8c0a8004c098dd5001c5660026034003132598009815800c4cc068dd61815000912cc00400a00b19800803cc0b000a26002605a004803902a45902818131baa0038acc004c078006264b3001302b00189980d1bac302a0012259800801401633001007981600144c004c0b400900720548b2050302637540071598009803800c4c8cc8966002605a00313301c3758605800244b3001002803c66002013302e002898009817801201240b11640a86eb4c0a8004c0ac004c098dd5001c566002600c0031323259800981600140122c8148dd6981500098131baa0038acc004c01400626464b3001302c0028024590291bad302a0013026375400715980099b874803000626464b3001302c0028024590291bae302a00130263754007164090812102420484090812102418121baa00244c8cc89660026042003132598009809980e9baa0018991919192cc004c09800a264b3001301830223754003132323322598009815801c4cc064c0a80204c038c0ac03e2c8140dd718140009bae3028002302800130233754003164084604a00916408c6eb8c090004c090004c08c004c078dd5000c5901c1810000c5901e1bae301e001301f0013758603a00480da26466446008603e00a6eb4c060004dd6980c800980d80120328b202e3015375400316404c602e00b1640546eb0c054004dd7180a801180a800980a00098079baa0098b201a2232598009803000c4c8c966002602e0050048b2028375c602a00260226ea800e2b300130050018acc004c044dd5001c00a2c80922c807900f18079baa0024590080c024004c010dd5005452689b2b200401", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_3ProtocolProtocolElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5948aa010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692013a657870656374206d61746368696e675f6f75747075745f6964783a20496e74203d206d61746368696e675f6f75747075745f6964785f6461746100168a99801a492565787065637420646174756d3a204f72646572446174756d203d20646174756d5f6461746100168a99801a4930657870656374206f75747075745f646174756d3a205472656173757279446174756d203d206f75747075745f6461746100168a99801a492e65787065637420696e7075745f646174756d3a205472656173757279446174756d203d20696e7075745f6461746100168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a498a6578706563740a20202020736174697366696564280a20202020202073657474696e67732e77697468647261775f7065726d697373696f6e2c0a20202020202074782e65787472615f7369676e61746f726965732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900168a99801a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a494c657870656374207369676e65645f7061796c6f61643a205369676e65645061796c6f61643c50726f746f636f6c52656465656d65723e203d207369676e65645f7061796c6f61645f6461746100168a99801a492a6578706563742073657474696e67733a2053657474696e6773203d2070726f78792e73657474696e677300168a99801a492f72656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d65723e00164888888888966002646530013014001980a180a800cdc3a400930140024888966002600460286ea800e264b30010058999119912cc004c010c064dd5004c4c96600200300d8992cc004006264b3001001807c4c96600200301080840420211332259800800c04a264b3001001809c04e264b300130260038acc004c030c084dd5003c4c9660020030158992cc00400602d132598009814801c4cc030004896600200513300e0062259800801466002444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c814a6e05200091111919800800802912cc004006200b13259800800c4cc010c0cc00801a26600a6066004660060060028188c0cc0050304dc0240032259800800c52f5c113302d302a302e00133002002302f00140b1374a900048c0b4c0b800644646600200200644b30010018a508acc004cdc79bae30300010038a518998010011818800a05440b92302d302e302e0014888888888cc8a600244646600200200644b30013022001899b8a4890130000038acc004cdc4000a40011337149101012d0033002002300e00189980319b8400148050cdc599b803370a002900a240c000681a903548c00800644646600200200644b30010018a6103d87a80008992cc004c010006260166607600297ae0899801801981e801206c303b00140e4911191991192cc00400633001370e90034dc3a4011370e9005244464b30013029303e375400b13259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006264b300100181cc4c96600200313259800800c0ee264b30010018992cc00400607b13259800800c0fa07d132598009828001c6600201919800805466002011198008034566002606c60966ea8012264b300100182044c966002003041820c1060831332259800800c10e264b30010018224112089044899912cc00400608d13259800800c11e08f047823c4c96600260b20071598008054122264b3001001824c126093049899912cc00400609713259800800c13209904c82644c96600260bc0071980091112cc004cdc400124061130010028acc004cdc380124061133004480088c0080062b300133710004901c44cc00ccdc724503020408003370000490189180119bca4a2003124bded8c101400001012000416c82d905b488888ca600200300380120022225980099b89002480022600297ae08919194c00401a607200b23005330680020019bad3065002401860c60033001009804400500720be9b87483f80e6e0120029119bb00023750002911111991191919192cc004c13cc190dd5000c4c9660020031323298009112cc004c154c1a8dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003159800983b00146600200d19800800c02601082d2010805a010839a0110088044021077183a000a0e4375a00260e600500541d060e20028378c1c400a007003801c00d0721837800a0da306b375400700141a11325330673372c9211c5b70726f746f636f6c5d20566572696679696e67206e6f6e63653a2000373266062607460d26ea801122010019800918369837183718371837183718371837000c89660020031480022601c6600400460de002836244646600200200644b30010018a508acc004c00cc1c0006294626600400460e2002835106e4dd2a40049111191929983699b964901205b70726f746f636f6c5d207665726966795f6e6f6e636520726573756c743a200037326606f3001001a60103d87a8000a60103d879800041b0910100159800800c6600260e460de6ea802a44646600200200644b30010018a40011332259800980280144c06000620028390c1d8004cc008008c1dc005074488c8cc00400400c896600200314a115980099baf003307230760018a51899801001183b800a0e041d12232330010010032259800800c528c566002600660ec00313300200230770018a5041c083a2460e660e860e860e860e860e860e860e860e8003230733074307430743074307430740019112cc004c170c1c4dd5001c4c9660020030028992cc004006007003801c4c96600260f200700580220ec375a00300341e460ec00283a0c1c8dd5001c00506f48c1ccc1d0c1d0c1d0c1d00064464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320e8899802802983d80220e8375c60e80026eacc1d4004c1dc0050750a5eb7bdb18244b30010018a40011301433002002307500141c923073307430743074307430740019112cc00400a298103d87a80008acc004c17000626088660e860ea00497ae08cc00400e60ec0053046001400c837907348966002003148002260286600400460ea002839244b30010018a5eb82264660e86ea0004cc00c00cc8cc004004c1dc00c896600200314bd7044cc896600330013370e00400b4a14a2839a2660f06ea0008cc0100100062660080080028398dd6983b800983c000a0ea375a60e80028392444646600200200844b300100189983b19bb037520086ea000d2f5bded8c113298009bae30740019bad3075001983c8012444b30013372001000713307a337606ea4020dd4003802c56600266e3c02000e2660f466ec0dd48041ba800700189983d19bb037520066ea0008cc01801800507520ea183b800a0ea911919800800801912cc004006297ae0899912cc004cdd7983c183a9baa307830753754608c60ea6ea8008c024cc1dcdd4802a5eb822660ee0046600800800313300400400141c860ec00260ee00283a244b30010018a40011301433002002307500141c93710900024444444444444444453001222232330010010052232598009839000c4cc160018dd71845809844009baa0028acc004c1c400626602c6eb0c22c04c22004dd5001119802002000c56600260ea00313301d37586116026110026ea80088cc0100100062b3001304d00189919b89375a611802002660326eb0c23004c234040048cc014014004c22004dd500145660026098003132332259800983a1845009baa0028acc004c1d0c22804dd5184700984780801c4cdc49bad308e01308b0137540040031337106eb4c23804c22c04dd5001000a110028a504220046118020026eb4c23004c22404dd50019844009baa3059308801375400b1598009825800c4c8cc896600260e86114026ea800a2b30013074308a013754611c02611e020071337120026eb4c23804c22c04dd500144cdc40009bad308e01308b01375400484400a2941088011846008009bad308c0130890137540066110026ea8c22c04c22004dd5002c4cc05c010c070cc22804c22c04c22004dd500125eb8108501210a0242140484280908501210a02308601375400330090099840009baa0129111191980080080291192cc004c1c8006264a6610e0266e59240121436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660a26ea400522010013259800983a1844809baa001899194c004dd7184780800cdd7184780984800800cdd71847808012444a6611a029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e00153308d013372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660ae6ea4005220100153308d013372c9201187665726966795f65643235353139207061796c6f61643a20003732660ae6ea4009220100153308d013372c92011a7665726966795f65643235353139207369676e61747572653a20003732660ae6ea400d22010013253308e013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660b13001001a60103d87a8000a60103d879800042340491010010019800800c00a006b950c23c04004dd61846809845009baa0018a998440099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660a46ea400922010014a0843808c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c611e020020091305e3308e01374e00297ae08998018019848008012112023758611c02002846008dd71845809844009baa0028acc004c1c4006264a6610e0266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660a26ea0c070005220100132533088013372c92010e416c6c4f6620726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c0491010010013301700123300500500137586116026110026ea800a2b300130750018992998438099b96490122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660a26ea0c070005220100132533088013372c92010e416e794f6620726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c0491010010013301e00123300500500137586116026110026ea800a2b3001304d00189919912998448099b96490112436865636b696e672041744c656173743a20003732660a66ea000922010013253308a013372c92011941744c656173742073617469736669656420636f756e743a20003732660a86ea000522010013253308b013372c92011041744c6561737420726573756c743a20003732660ab3001001a60103d87a8000a60103d87980004228049101001001337120060026603600246600e00e0026eb4c23004004dd61846009846808009844009baa0028acc004c130006264a6610e0266e5924111436865636b696e67204265666f72653a20003732660a26ea0005220100132533088013372c92010f4265666f726520726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c049101001001323259800983a1845009baa0018acc004c1d0c22804dd518470098478080144cdc49bad308e01308b0137540020071337106eb4c23804c22c04dd5000801a110028a50422004611a020026112026ea8c168c22404dd50031bad308b0130880137540051598009825800c4c94cc21c04cdcb24910436865636b696e672041667465723a20003732660a26ea0005220100132533088013372c92010e416674657220726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c049101001001323259800983a1845009baa0018acc004c1d0c22804dd518470098478080144cdc48019bad308e01308b0137540031337100066eb4c23804c22c04dd5000a110028a50422004611a020026112026ea8c23004c22404dd50031bad308b013088013754005132533087013372c920111436865636b696e67205363726970743a20003732660a26ea4005220100132533088013372c92010f53637269707420726573756c743a20003732660a53001001a60103d87a8000a60103d8798000421c04910100100133018005301d3308b01375200297ae0375c6116026110026ea800908501210a0242140484280908501210a023086013754003300700798030034c0140164446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803210e02899802802984700802210e02375c610e020026eb4c22004004c2280400508801198070020018a400130020024888888888ca6002444b30013370e60180046010600e646600200200644b30010018a5eb8226612402611e026126020026600400461280200284880a2646600200200644b30010018a5eb8410100008101a0008101a00044c8c8c8cc896600260fe6128026ea800a264b3001300900189984c009ba8337006eb4c26404008dd69833984b009baa0013309801374c64b300130800130960137540031375660d000713756613402612e026ea800509401192cc004c20004c25804dd5000c530103d87a8000898349984c809ba698009bab30680039bae309a013097013754003005406897ae042500460ca612c026ea8004cc26004dd34c004dd598328014dd9984c80984d00802c01101925eb822a66128029211a6578706563742076616c69646174696f6e2872657175657374290016424c04613002612a026ea800a2a661260292012f65787065637420536f6d65287265717565737429203d206c6973742e61742874612c20726571756573745f696478290016424804660120100026600a00a612e020086eb4c25404004cc24c04c24004004cc24c04c244040052f5c061260200284880a2a66118029201886578706563740a202020206c6973742e6c656e67746828726571756573745f746f5f6f75747075747329203d3d206c6973742e6c656e677468280a2020202020206c6973742e756e69717565286c6973742e6d617028726571756573745f746f5f6f7574707574732c20666e286974656d29207b206974656d2e317374207d29292c0a20202020290016422c0522225980099b873022004302200389980e8021192cc004c1ecc24004dd5000c4c96600260f86122026ea800626644b3001308101309301375400313259800800c4c966002610002612a026ea800a264b300100184880c4c96600200313259800800c24c06264b30010018992cc00400612a0313259800800c4c966002003097018992cc004c2880400a330010078cc004016264b30013089010018992cc0040061340313259800800c26c061360309b018992cc004c2980400e01b09c01428c046eb400613602853008c28c040050a101184f809baa0048acc004c22004006264b300100184d00c4c96600200309b0184d80c26c06264b300130a601003806c270050a3011bad00184d80a14c0230a301001428404613e026ea80121320284e00909c01184e809baa00384c00a06e84c00a0c084c00a13e0230a0010014278046140020050960184b00c2580612c02850808c2780400509c01184f00801425006128030940184a00a13e02309c010014268046138020050920184900c248061240284e808c2680400509801184b009baa00284800a1260215980099baf30663095013754002613002612a026ea800e2b3001337126eb4c198c25404dd5001cc004dd59833184a809baa3066309501375400d375c61300200f375c60cc00e806a264b3001308001309501375400313370e6eb4c26404c25804dd50009bad3067309601375400913370e6eb4c26404c25804dd50009bad30673096013754008849808c190c25404dd5000c54cc24c05241666578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d206d61746368696e675f726571756573742e616d6f756e7400164248051533093014913865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e001642480508f0184780c23c0611e0284d008c25c04c25004dd5000c54cc248052413365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d0016424404612a026124026ea8004c184c24804dd518319849009baa0038a9984800a4814765787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c206d61746368696e675f726571756573745f696478290016423c046600e00a6eb4c25004c24404dd5000c54cc23c0524016565787065637420536f6d65286d61746368696e675f726571756573745f69647829203d0a2020202020202020646963742e676574286d617070696e672c2063626f722e73657269616c69736528696e7075742e6f75747075745f7265666572656e6365292900164238046644646600200200c44b3001001801c4c8cc896600266e4401c00a2b30013371e00e005130693309901375000297ae0803212802899802802984d80802212802375c6128020026eb4c25404004c25c04005095011bb330930130900137540022980103d87a80008a9984680a4933657870656374206c6973742e6c656e67746828696e7075747329203d3d206c6973742e6c656e677468287265717565737473290016423005222253308d0149012d5b76616c69646174655f6f7574707574735d205374617274696e67206f75747075742076616c69646174696f6e0015980099b87300600230220038994c004006900040110011112cc004006294626644a661240266e59241305b76616c69646174655f6f7574707574735d2056616c69646174696e67207265717565737420617420696e6465783a20003732660b86ea001122010013259800983f984a009baa0018992cc004c20004c25404dd5000c4c9660020030920184900c2480626464b300130830130980137540031325980099baf309d01309a013754002613a026134026ea8c27404c26804dd5004456600266ebcc1a4c26804dd50009835984d009baa309d01309a0137540111533098013372c92012d5b76616c69646174655f6f7574707574735d20436865636b696e67206f757470757420617420696e6465783a20003732660c46ea000d2201001533098013372c9201245b76616c69646174655f6f7574707574735d20457870656374656420616d6f756e743a20003732660c460d66134026ea80212201001533098013372c9201225b76616c69646174655f6f7574707574735d2041637475616c20616d6f756e743a20003732660c46ea260026eacc1acc26804dd5000cdd7184e808064dd71835806202448900159800803c4cdc3cc004dd59835984d009baa0019bae309d0100c9bae306b00c404864b300133710002900044c1c4006200284c008dd69835984d009baa0088a50425c0515330980149139657870656374206d61746368696e675f6f75747075742e646174756d203d3d20726571756573742e64657374696e6174696f6e2e646174756d0016425c051533098014913d657870656374206d61746368696e675f6f75747075742e61646472657373203d3d20726571756573742e64657374696e6174696f6e2e616464726573730016425c046138026132026ea80062a6612e0292014465787065637420536f6d65286d61746368696e675f6f757470757429203d206c6973742e6174286f7574707574732c206d61746368696e675f6f75747075745f6964782900164258046601c01a0026eb40061240284e008c26404c25804dd5000c54cc250052415b65787065637420536f6d65286d61746368696e675f6f75747075745f6964785f6461746129203d0a202020202020202063626f722e646573657269616c697365286d61746368696e675f6f75747075745f6964785f6279746573290016424c0460646eb8c26004c25404dd5000c54cc24c0524013e65787065637420536f6d65286d61746368696e675f6f75747075745f6964785f627974657329203d20646963742e66696e64286d617070696e672c2069290016424804646600200201044b30010018a60103d87a80008992cc004cdc38039bad309701001898349984c80984b00800a5eb8226600600661360200484a008c2640400509701184a80800cc00400e606a005309601001400c84980a2a6611a0292013265787065637420646963742e73697a65286d617070696e6729203d3d206c6973742e6c656e6774682872657175657374732900164230052223233225980099b87375a6128020020051325980099912cc004006294226530013259800984000984a809baa00189bad3096013099013756613202612c026ea8006290002126023098010019baf3098013099010019bab0024889660020031598009801002c4cdc4a400000714a084a80a264b30013375e61300200298010140008acc004cdc49bad309901309c01375661320200200913003374c613a0200514a084b00a2b300133712900000244c00c01a294109601212c02309b01001426404329800800c00e44661320200466132026e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c25c040066eacc260040066138020069112cc004cdc8a441000038acc004cdc7a4410000389980298369984e809ba60024bd70000c4cc015300103d87a800000642600519800803c006446600e0046613e0266ec0dd48029ba6004001401c84c00861340200484c00a294229422941099011bab3063002374c661280266ec0c25404004dd31984a0099bb0309501309601001375066e0400c0152f5bded8c097adef6c608801c54cc240052401c56578706563740a202020206173736574732e6d61746368280a20202020202074726561737572795f64656c74612e326e642c0a2020202020205b0a202020202020202050616972280a20202020202020202020726573657276655f706f6c6963792c0a202020202020202020205b5061697228726573657276655f6e616d652c206d696e745f616d6f756e74202d2077697468647261775f616d6f756e74295d2c0a2020202020202020292c0a2020202020205d2c0a2020202020203e3d2c0a20202020290016423c046eb0c060c24404dd5003454cc23c052401286578706563742074726561737572795f64656c74612e317374203d3d206d696e745f616d6f756e740016423804b30013079300d0018a4001159800800c21806264b30013094010028acc004cdc79bae308f01001488104555344720089bad3090010018a9984700a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200164234050870142440461240200284800908c0119192cc004c1ecc24004dd5000c4c96600266ebcc25404c24804dd5184a809849009baa30633092013754002604c66128026ea400d2f5c1132598009840009849009baa0018992cc004006330010018992cc004c1fcc25004dd5000c4c96600266ebcc26404c25804dd5184c80984b009baa001302a3309801375200e97ae08992cc004c21004c25804dd5000c4c96600200319800800c4cc26804dd419b81375a6136026130026ea8004dd6984d80984c009baa0053309a01374c6530010019bab306a30990137540093233001001375660d66134026ea8c1acc26804dd5004912cc004006297adef6c608991984f0099bb0309b01001374c64660020026eacc27404008896600200314bd6f7b63044c8cc28404cdd8184f008009ba83075375a613e020026600600661460200461420200284f808cc00c00cc28004008c2780400509c012002222598008014400626466453001006985100802cc8cc00400401489660020031330a201337606ea4010dd3001a5eb7bdb1822653001375c614002003375661420200330a50100248896600266e4002000e26614c0266ec0dd48041ba60070058acc004cdc7804001c4c966002b30010018a518a5042980510028998538099bb037520126e980040090a201194c0040060110034004444b30010028800c4c8cc8a600200d30ae010059919800800802912cc00400626615c0266ec0dd48021ba80034bd6f7b63044ca60026eb8c2b0040066eb4c2b4040066162020049112cc004cdc8004001c4cc2c804cdd81ba9008375000e00b15980099b8f0080038992cc004c26c0400620051330b301337606ea4024dd4000801215c023370000e0051330b201337606ea400cdd400119803003000a15a0242b40430af0100142b4048030dd71853808009bad30a80100130aa0100242a0051330a601337606ea400cdd300119803003000a1420242840430a3010014284048030dd7184d808009bab309c01001309e0100242700497ae084880a04684880c244061220309101427404613402612e026ea80062a6612a0292012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001642500460ca612c026ea80062a661280292013a657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2053637269707428736372697074290016424c04613002612a026ea80062a661260292013c65787065637420536f6d65286f757470757429203d206f75747075745f776974685f706f6c6963792874782e6f7574707574732c20736372697074290016424804660bc6eb0c18cc25004dd500411983298301bab3066309501375400200d08c01407d08c0184600c230061180284c808c25804c24c04dd5000c54cc244052413365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001642400460c26124026ea8c18cc24804dd5000c54cc2400524014065787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2053637269707428736372697074290016423c046128026122026ea8006297ae110100008101a000211c023305737586126026120026ea8010004dd71849009847809baa3019308f0137540086602e6eacc060c23804dd50011bae305f308e0137546030611c026ea800d222259800983c80644cc894cc23c052411f5b6d696e745d205374617274696e67206d696e742076616c69646174696f6e00159800cc004c25004c24404dd502bc0a660506122026ea81f66eacc074c24404dd503ea01a8a9984780a49205b6d696e745d207361746973666965645f7061796c6f61647320706173736564001323298009bab3096010019bab3096013097010019bad30960100248894cc25004cdcb24812f5b6d696e745d2070726f636573735f7265717565737473207061737365642c2073756d6d65645f616d6f756e743a20003732660bc6ea0005220100132533095013372c92011b5b6d696e745d206f726465725f696e7075747320636f756e743a20003732660be6ea0c0a8005220100159800cc0040060110049bac301e30970137540ba805a2a6612a0292011d5b6d696e745d2076616c69646174655f696e707574732070617373656400159800cc004dd61833184b809baa08301804400e661320260d0612e026ea8c084c25c04dd502e9984c80a601054455534472004bd7020148a9984a80a4811e5b6d696e745d2076616c69646174655f6f7574707574732070617373656400132533096013372c9201215b6d696e745d206d61696e7461696e5f747265617375727920726573756c743a20003732660c13001001a60103d87a8000a60103d879800042540491010010013370f300105d84180d200040240051533095014901816578706563740a2020202076616c69646174655f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f75747075745f6964782c0a2020202020202873657474696e67732e72656769737472792e757364722c2075736472292c0a202020202900164250051533095014917a6578706563740a2020202076616c69646174655f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f726967696e5f6964782c0a20202020202073657474696e67732e726573657276655f746f6b656e2c0a20202020290016425004660306eb0c26404c25804dd5041009bae306530960137546040612c026ea8170612c020033001002800c8c048dd698319849009baa0014019153308f014901856578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6d696e745f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900164238046eb0c24804c23c04dd50101bab309201308f013754612402611e026ea81fa2b3001307800c8992cc006600260c26120026ea815a051302730900137540f9375660386120026ea81f100c44c8c9660033001330143758612a026124026ea81f8dd718309849009baa301c30920137540b10039bab3095010019984a0098319849009baa301c30920137540b066128029801054455534472004bd70200c8acc00660026eb0c184c24804dd503f400e6eacc25404c258040066eb0c064c24804dd502c200a899b87980082c41fa90002008375a612a020051533090014901796578706563740a2020202076616c69646174655f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206275726e5f72657175657374732c0a2020202020206f75747075745f6964782c0a20202020202073657474696e67732e726573657276655f746f6b656e2c0a20202020290016423c05153309001491826578706563740a2020202076616c69646174655f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206275726e5f72657175657374732c0a2020202020206f726967696e5f6964782c0a2020202020202873657474696e67732e72656769737472792e757364722c2075736472292c0a20202020290016423c04612a0200330010019bab30930130900137546126026120026ea81fe466e20dd698311848809baa00148001005454cc23805241856578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6275726e5f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a202020202900164234046eb0c24804c23c04dd5010456600260f801913259800cc004c17cc24004dd502b4dd6180e9848009baa07c98139848009baa07c9bab301c30900137540f8807a2b300130100018983d4c00415a0f90014009153308e014911a6578706563742077697468647261775f616d6f756e74203e20300016423405086014234046eb4c24804c23c04dd501044c9660033001305f30900137540ad3758603a6120026ea81f2604e6120026ea81f26eacc070c24004dd503e201e8acc004c040006260f5300105683e4cdc1000a400280122a6611c02920119657870656374206465706f7369745f616d6f756e74203e20300016423405086014234046eb4c24804c23c04dd501021180242300484600844b300133710002900045300103d87a8000899803801000a1120222a660da920113657870656374206e6f6e63655f726573756c74001641b0653001306e37540032323232332259800982f8014528456600260c40051980099baf30783075375400298103d87b8000a50a5141c913233225980098310014528c56600260c200513322598009831983c9baa304b307a375400d13371000400313371200400283b8dd6983d983c1baa003598009830983b9baa30493078375400f10018980d800a0ea8a5041d483a8c1d4dd50009bad30793076375400860f060ea6ea800507220e43072375400260ec60ee00660ea60e46ea8004c1d0004c1c0dd5000c888c8cc896600260be005159800982f983a1baa0018a6103d87a80008a6103d879800041c91598009831001456600260c460e86ea80062980103d87a80008a6103d87b800041c913322598009830800c530103d87b80008acc004c180006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041d483a8dd6983d183b9baa0038a6103d879800041d083a0dd6983c183a9baa00330743754002839107218391baa0013002003300100348896600260b80071325330713372c921215b7665726966795f6e6f6e63655d204c6f6f6b696e6720666f72206f7265663a200037326607600291010015330713372c9201215b7665726966795f6e6f6e63655d204e756d626572206f6620696e707574733a20003732660766ea0c018dd6183b18399baa05f48900133008375860ec60e66ea817c94cc1c8cdcb24811f5b7665726966795f6e6f6e63655d20436865636b696e6720696e7075743a200037326607860ee60e86ea80052201001325330733372c9201185b7665726966795f6e6f6e63655d204d6174636865733a200037326607b3001001a60103d87a8000a60103d879800041c891010010013375e60ee60e86ea8004008c1d4c1c8dd5002456600260b600713322598009802000c528c566002600800514a1159800cc004cdd7cc004c1dcc1d0dd50014c1dcc1d0dd5000c8c8c96600260c060ec6ea8c1e8c1ec00a2003132598009830800c4c030cc1e8dd4180d9bad307b3078375400497ae08acc004c1880062005100241d483a8c1d8dd5000a0e83079001307537540028019300103d87b8000a50a5141c51980099baf98009822983a1baa0029822983a1baa001919192cc004c180c1d8dd5183d183d80144006264b30013061001898061983d1ba8304c375a60f660f06ea80092f5c11598009831000c400a200483a9075183b1baa00141d060f200260ea6ea8005003260103d8798000a50a5141c514a0838907120e2307530723754008601260e46ea817a294106f20de181f98371baa009300300319198008009bac3038306937540b044b30010018a5eb822660d86e9cc8c8cc1b8c1bc008cc1b8c0ecc1b0dd5000998371ba9980091838183898389838800c8c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a410008004835906b1b8d001981f198372610b4a5369676e617475726531003306e306f306c375460de60d86ea8004cc1b93010140003306e303d306c37540b697ae048894cc1b4cdcb249165369675374727563747572652e636f6e746578743a200037326606e60e460de6ea8005220100153306d3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a200037326606e608060de6ea8005220100153306d3372c92011b5369675374727563747572652e65787465726e616c5f6161643a200037326606e607c60de6ea8005220100153306d3372c9201165369675374727563747572652e7061796c6f61643a200037326606e600660de6ea800522010013253306e3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a20003732660706ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241b88370dc68009bae3072306f375400266e28c008dd7182018379baa0013371460046eb8c0f8c1bcdd500098011bae3003306f37540024bd70183718378009bac306d00133002002306e00141ad22259800982a98351baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300130700018acc004cdc4a400860de0030068992cc004c1d4012264b3001305c0018acc004c1c8dd50034026010839a2b3001305b0018992cc00400601313259800800c02a01500a8992cc004c1e400e01900b41d86eb400601483c8c1d800507418391baa0068acc004c17c0062b30013072375400d00980420e680420de41bc8378c1c0dd5002c01d072182c9837800a0da80320e23754003005802c01600a83a0c1c400506f1838801400e007003801a0e4306f00141b460d66ea800e002834122259800982a98351baa0068992cc0040060c113259800800c4c9660020030628992cc0040062b30013073002899912cc004c16c006264b300100183344c966002003067833c4c96600260f000713305b0012259800801401e264b30010018cc0040062600460f600706b403d06b835c1ae0d683e0c1e400907741a10751bac001833c19d078183a800a0e63071375400b159800982d000c4c9660020030668992cc0040060cf0678992cc004c1e000e2660b600244b3001002803c4c96600200319800800c4c008c1ec00e0d6807a0d706b835c1ad07c183c80120ee83420ea3758003067833a0f0307500141cc60e26ea80162b3001305e0018992cc0040060cd13259800800c19e0cf0678992cc004c1e000e00b06841d46eb40060ce83c0c1d400507318389baa0058acc004c0d8006264b300100183344c966002003067833c19e264b30013078003802c1a10751bad001833a0f0307500141cc60e26ea80160ca837106e20dc41b8264b3001305a0018992cc0040060cb13259800800c56600260ec005159800982e18389baa0018992cc0040060cf13259800800c1a20d106883444cc896600200306a8992cc0040060d706b835c4c96600260f800700f83620f2375a00306b41f060f200283b8dd7000983c00120f2307600141d060e46ea80060cc837a0cc839a0cd0668334199077183a000a0e430703754005159800982c800c4c9660020030658992cc0040062b300130760028acc004c170c1c4dd5000c4c9660020030678992cc004006264b3001001834c4c966002003159800983d00146600200719800800c0360d480620d480620d483ba0d506a83541a907b183c000a0ec307800283441a20d106841e460ec00283a0c1c8dd5000c19906f4199073419a0cd06683320ee307400141c860e06ea800a2b3001305d0018992cc0040060cb13259800800c19a0cd06683344c96600260ee00700a833a0e8375c00283b8c1d000507218381baa00283220da41b48368c1b8dd500098371baa003831a0e0831c18e0c706341d060e20028378c1c400a0c3061830c1850721837800a0da306b375400d05f41a022259800982a18349baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130720028992cc004c164c1b8dd500244c9660020030078992cc004006264b3001001804c4c966002003159800983b80146600200713259800982f000c4c96600200300c8992cc0040062b3001307a0028992cc004c184006264b3001001807c4c966002003159800983e80146600200300b808202680820f4808404202101041f860f600283c8c1dcdd5001456600260c000313259800800c03e264b300100180840420211332259800800c04a264b3001001809c04e0271332259800800c056264b300100180b405a02d13259800984200801c04a02e840808dd6800c05908401184080800a0fe375a00261000200501342040460fc00283e0dd6800983e801404107e183d800a0f23077375400500e41d083a0c1d4dd5000c035077403601b00d806a0f6307800141d860e86ea800a2b3001305d0018acc004c1d0dd5001401a01683aa016838907118391baa001805201a80520e8805402a01500a41e060ea0028398c1d400a01100880440210761839800a0e2306f375400900641b0264b300130590018acc004c1bcdd5001401e00c83822b300130580018992cc00400600f13259800800c02201100880444c96600260ec00700a804a0e6375c00283b0c1cc00507118379baa0028acc004c170006264b3001001803c4c96600260ea00500980420e4307300141c460de6ea800a00c836106c20d8306d375400300541bd005802c01600a8398c1c000506e1838001400e007003801a0e2306e00141b060d46ea800e0028338888c96600260a800313259800800c00e264b300100180240120090048992cc004c1c400e00d00541b86eb80050711837000a0d8306a37540091598009829800c4c9660020030038992cc0040060090048024012264b30013071003803401506e1bae00141c460dc0028360c1a8dd5002400906720ce3068375400705a82d416a0b48358c1a0c194dd5000c54cc18d24014565787065637420536f6d65287369676e65645f7061796c6f61645f6461746129203d2063626f722e646573657269616c6973652872656465656d65722e7061796c6f6164290016418860026eb8c0d4c190dd50299192cc004c13c006298103d87a80008992cc006600260a06eb4c1980069429450634530103d87a80008981c198341832800a5eb810634c00488006444b3001337120029000452f7b63010140000101200089980119b8e0053370200800266e0400400d06548896600266e2400520008a5ef6c601014000010120008998014c004cdc0802000c00e00ab8c19b810010034195001400c8310dc680098008009119800911191919bb032374e660d660d0002660d660d200297ae03376060ce00460ce00260d0003300100691000c012007375a60ce0028032600200b22001801c00a002802888cc00920022325980099b89001480122b300130510018cc004012007002918051ba800140351598009828000c6600200900399b80002480fe460146ea0c0f0c0f800500d456600266e1c00920be0189919800800918059ba9001223300648008966002601c00313002489008cc00401e00d33700002903fc8cc0100108c010cdc5001000a014419d19800802400e66e00009207f918051ba9001401c832106420c88acc004cdc3800a401919800802400e66e0000920ff02919802a40044b30013370e004906600c492f7b63001014000010120008992cc004cdc38012417c0519800803c01a66012012440032300d3374a004002805a330010078034cdc0001241fe0329800804401e66014014440030019180719ba5003001404080810672cc004cdc4a41002800513370066e0000920ff134803a266e0000920f1014198833100d4566002605600315980099b87002482f80a33001004801ccc01801888006460146e9c00500846600200900399b80002483fc06530010058024cc01c01c880060032300b374e002806900d20c88acc004c0a80062b30013370e004907f0144c8c8cc0040048c030dd30009119803a40044b3001300f0018980125eb7bdb18224646530010069180319838801000cdd69837001200c323376060e200260e260e40026eb0c1b000660020130089807800a00a41a06600c00c4400519800802400e66e0000920bf02919194c0040060072300d374c00280088896600266e24009200089800a5eb7bdb18224646530010069821802c8c014cc1c80080066eb4c1bc0090061919bb0307200130723073001375860da003300100a804c00500520d23300700722002403483222497bdb181014000010120004190832106420c8337060029020111119198008008011119803240044b3001300a0018980125eb8224646530010069180319836001000cdd69834801200c30670019800804401e6014002803106311114c00401200700291980200091801800a012413505b1bae001417860b600282c8dd7000982d005a0b6305800a415904841586eb8005059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270c130dd500240fd04940fd00e40fd00e40fd00e40fd00e40fd04d1bac00181f40f90501826800a096304d00281e40f207903c413860960028248c12c00a07503a81d40e904c1824800a08e304900281c40e20710384128608e0028228c11c00a06d03681b40d90481822800a086304500281a40d2069034411860860028208c0fcdd5002c0c903c111194c004006009003400444464b3001302f0018992cc00400600d13259800800c01e00f007803c4c96600260980070058042092375c0028260c12400504718229baa0038acc004c0b8006264b300100180344c966002003007803c4c966002609800713302f0012259800801401e264b30010018cc00402a00313002304f003402900b805c02e0168280c13400904b40210491bac001803c01d04c1824800a08e304537540071598009819000c4c9660020030068992cc00400600f0078992cc004c13000e26605e00244b3001002803c4c96600200319800805400626004609e006805201700b805c02d0501826801209680420923758003007803a0983049001411c608a6ea800e2b3001300a0018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009827801c4cc0c8004896600200500a8992cc0040063300100d800c4c008c14800d00d403a01d00e80720a63050002413900b41306eb000601500a413c60980028250dd68009825801401d04c1824800a08e304537540071598009804800c4c9660020030068992cc00400600f007803c4c96600260980070058042092375a003007413060920028238c114dd5001c566002601000313259800800c01a264b3001001803c01e00f132598009826001c0160108248dd6800c01d04c1824800a08e3045375400715980099b8748030006264b300100180344c966002003007803c01e00f132598009826001c0160108248dd7000a0983049001411c608a6ea800e00a821104220844108821104220843043375400481740ba05d02e4100601660746ea8c94cc0e4cdcb24812467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea40dd220100132598009813181d9baa00189929981d99b9649113666f756e642070726f7879207574786f3a3a200037326600a002910100132598009815981e9baa0018992cc0040062b30013029303e375400313259800800c0d6264b300100181b40da06d036899912cc0040060711325980098240014401a0728228c1180050441bae0013045002411860860028208c0fcdd5000c0d103c40d206903481a20883041303e3754003153303c49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640ec6018607a6ea8c038c0f4dd5000981f981e1baa0018a9981d24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640e46600400206e6eb0c02cc0e8dd50131800800911980200111980598031bab300c303b3754601860766ea8004008888c9660020071323233223300b0023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101420805980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81d103a1bac303d002375a60760026466ec0dd4181d8009ba7303c001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6080003337149101023a200098008054c10400600a805100a182180144ca6002015304000199b8a489023a200098008054c104006600e66008008004805100a182180120823043001410066e29220102207d0000340f46eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a0028039011207a3758007133007375a0060051323371491102682700329800800cc044dc68014cdc52450127000044004444b30013371000490004400626466453001006980b002ccdc599b800025980099b88002480522903045206e40fc66e2ccdc0000acc004cdc4000a402914818229037207e004401866e0c00520203370c002901019b8e00400240f06eb800d0401b8a4881022c200018048049802802a264b300100180e4072264b300100180ec4c96600200301e80f407a03d1332259800800c082264b30010018acc004c0cc00a2b30013019302e375400313259800800c08a264b30010018992cc00400604913259800800c4c9660020030268992cc00400604f027813c09e264b3001303a0038acc004c080c0d4dd500344c9660020030298992cc00400605502a81540aa26644b300100181644c96600200302d816c0b605b132598009820001c660020151301430400158172048817207a375c0028200c0f400503b1bae001303c00240f4607400281c0c0d8dd500340a103340a10371bae00140e8606e00281a8c0dc00a04b025812c095038181a800a0663035002811c08e04702340d860660028188c0bcdd5000c08502c40850304086043021810a068303100140bc6eb8004c0c00090311817000a058375800301c80e205e302c00240a91323259800800c06e03701b899912cc00400603b01d80ec4c8c018c0c001cdd6800c0750301bad001302900280da05c3027001302a00240a101740986eac00602d01680b20523026001409060446ea801e02880fa0288118dd6000c04e0268130c08c0050211bae0013022002408c604000280f0c08000a01d00e8074039021180f000a038301a375401300c405c44464b300130060018992cc00400600713259800800c01200900480244c9660026046007006802a040375c0028118c08000501e180e1baa0048acc004c0140062b3001301c3754009003801203a8012032406460346ea800c88c8cc00400400c88cc00c004c008008dc3a40006e1d20028044022011008406c6030602a6ea800e2c80906028002601e6ea8056293454cc0352411856616c696461746f722072657475726e65642066616c7365001365640301" + : + "592497010100229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007370e90004dc3a40052232330010010032233003001300200248888c9660026008601c6ea802626464646644b300130180038992cc004c028c050dd5000c4c96600260340031330093756603200244b3001002899805803112cc00400a330012259800800c52f5c113301e301b301f0013300200230200014075374a900048c078c07c00644646600200200644b30010018a508acc004cdc79bae30210010038a518998010011811000a038407d2301e301f301f0019b874801a6e1d20089b8748029222222223322332232332259800980f18141baa00289919191919194c004dd61819000cc0c8016606400930320039819001244444b30013038006899806181b8058998060020998060018998060010acc004c0a4c0ccdd5000c4c8c8ca60026eb8c0e80066eb8c0e800e6eb8c0e800922259800981f00244c8cc896600260820071980091112cc004cdc400124061130010028acc004cdc380124061133004480088c0080062b300133710004901c44cc00ccdc7244103020408003370000490189180119bca4a2003124bded8c10140000101200040fc81f903f4dc024003370e907f01cdc02400522337600046ea00066e052000488888a600244444653001001801c0090011112cc004cdc480124001130014bd70448c8ca600200d30100059180299828801000cdd69827001200c304c0019800804c022002803904948888c8cc00400400888cc01920022598009805800c4c0092f5c1123232980080348c018cc1400080066eb4c1340090061825800cc00402200f300b0014018824244453001004801c00a4660080024600600280512223232323259800981f98249baa00189919914c00489660026088609c6ea800a26464646644b30013058003899804982b802899823001003459055182a8009bad305500230550013054001304f37540051641351980099198008009bac3030304e375409044b30010018a5eb822660a26e9cc8c8cc14cc150008cc14cc0ccc144dd5000998299ba9332233714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002414c8298dc68009bae30563053375400266e28c008dd7181b98299baa0013371460046eb8c0d4c14cdd500098011bae305630573057305730533754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241448288dc6800981b19829a610b4a5369676e617475726531003305330543051375460a860a26ea8004cc14d3010140003305330353051375409697ae04bd701829982a0009bac30520013300200230530014141230513052305230523052305230523052001911919800800801912cc00400629422b3001300330540018a51899801001182a800a09e4149374a900124444b300132980098289baa001919191919912cc004c13400a29422b300130500028cc004cdd7982d982c1baa0014c103d87b8000a50a51415913233225980098280014528c566002609e00513322598009828982e1baa3041305d375400d13371000400313371200400282d8dd6982f182d9baa003598009827982d1baa303f305b375400f10018980d800a0b28a50416482c8c160dd50009bad305c3059375400860b660b06ea800505620ac3055375400260b260b400660b060aa6ea8004c15c004c14cdd5000c888c8cc8966002609a0051598009826982b9baa0018a6103d87a80008a6103d879800041591598009828001456600260a060ae6ea80062980103d87a80008a6103d87b8000415913322598009827800c530103d87b80008acc004c138006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000416482c8dd6982e982d1baa0038a6103d8798000416082c0dd6982d982c1baa0033057375400282b1056182a9baa00130020033001003488966002609400713233007375860b260ac6ea81348cdd7982d182b9baa0010023058305537540091598009824801c4cc8966002600800314a315980098020014528456600330013375f3001305a30573754005305a3057375400323232598009827182c9baa305d305e0028800c4c966002609e0031300b3305d375060366eb4c178c16cdd500125eb822b3001305000188014400905920b23059375400282c0c170004c160dd5000a0064c0103d87b8000a50a5141551980099baf9800981d982b9baa002981d982b9baa001919192cc004c138c164dd5182e982f00144006264b3001304f001898059982e9ba8301d375a60bc60b66ea80092f5c11598009828000c400a200482c9059182c9baa001416060b800260b06ea8005003260103d8798000a50a51415514a082a905520aa305830553754008600e60aa6ea8132294105320a6181a98289baa0058cc004c150c144dd5002c88c8cc00400400c896600200314800226644b300130050028980b800c4005055182c00099801001182c800a0ac911919800800801912cc00400629422b30013375e00660a860b000314a31330020023059001414c82b244646600200200644b30010018a518acc004c00cc16000626600400460b200314a0829905648c154c158c158c158c158c158c158c158c158006460aa60ac60ac60ac60ac60ac60ac0032259800982418291baa002899192cc004c16400a0071641586eb4c15c004c14cdd500145905148c154c158c158c158c1580064464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320ae899802802982e80220ae375c60ac0026eacc15c004c1640050570a5eb7bdb18244b30010018a400113013330020023057001415123055305630563056305630560019112cc00400a2980103d87a80008acc004c12400626072660ac60ae00497ae08cc00400e60b00053016001400c829105548966002003148002260266600400460ae00282a244b30010018a5eb82264660ac6ea0004cc00c00cc8cc004004c16400c896600200314bd7044cc896600330013370e00400b4a14a282b22660b46ea0008cc01001000626600800800282b0dd6982c800982d000a0ae375a60ac00282a2444646600200200844b300100189982c19bb037520086ea000d2f5bded8c113298009bae30560019bad3057001982d8012444b30013372001000713305c337606ea4020dd4003802c56600266e3c02000e2660b866ec0dd48041ba800700189982e19bb037520066ea0008cc01801800505820b0182c800a0ae911919800800801912cc004006297ae0899912cc004cdd7982d182b9baa305a30573754607660ae6ea8008c01ccc164dd4802a5eb822660b200466008008003133004004001415460b000260b200282b244b30010018a40011301333002002305700141512259800800c520008980999801001182b800a0a89b8848001222222222222222222298009111191980080080291192cc004c18000626609c00c6eb8c1b8c1acdd5001456600260be003133017375860dc60d66ea80088cc0100100062b3001306300189980e1bac306e306b37540044660080080031598009826000c4c8cdc49bad306f0013301a375860de60e000246600a00a00260d66ea800a2b3001304b00189919912cc004c188c1b4dd5001456600260c460da6ea8c1c4c1c800e266e24dd6983898371baa002001899b88375a60e260dc6ea800800506c452820d8306f001375a60de60d86ea800cc1acdd5182798359baa0058acc004c1280062646644b30013062306d3754005159800983118369baa30713072003899b89001375a60e260dc6ea800a266e20004dd6983898371baa00241b114a08360c1bc004dd6983798361baa003306b375460dc60d66ea80162660300086036660da60dc60d66ea80092f5c0834906920d241a4834906918349baa00198050054c18cdd5009c8888c8cc00400401488c96600260c00031323259800983118361baa001899194c004dd718390014dd718391839800cdd71839000ae5460e40026eb0c1c0c1b4dd5000c52820d632330010010082259800800c5300103d87a80008992cc004cdc79bc8375c60e40020091305433071374e00297ae0899801801983980120da375860e20028378dd7183718359baa0028acc004c17c00626602e6eb0c1b8c1acdd5001119802002000c56600260c600313301c375860dc60d66ea80088cc0100100062b3001304c00189919b89375a60de002660346eb0c1bcc1c00048cc014014004c1acdd500145660026096003132332259800983118369baa0028acc004c188c1b4dd518389839001c4cdc49bad3071306e37540040031337106eb4c1c4c1b8dd5001000a0d88a5041b060de0026eb4c1bcc1b0dd500198359baa304f306b375400b1598009825000c4c8cc896600260c460da6ea800a2b30013062306d375460e260e40071337120026eb4c1c4c1b8dd500144cdc40009bad3071306e37540048362294106c18378009bad306f306c375400660d66ea8c1b8c1acdd5002c4cc060010c06ccc1b4c1b8c1acdd500125eb8106920d241a4834906920d23069375400330080089803803cc01801a6006007222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01906b44cc014014c1c401106b1bae306a001375a60d600260da0028358cc03c01000c520009801001244444444446530012225980099b87300d0023009300832330010010032259800800c52f5c11330763073307700133002002307800141d5132330010010032259800800c52f5c30100008101a0008101a00044c8c8c8cc896600260dc60f06ea800a264b3001300900189983e1ba8337006eb4c1f4008dd6982f183d1baa0013307c374c64b3001306f307a37540031375660be0071375660fc60f66ea8005079192cc004c1bcc1e8dd5000c530103d87a8000898301983e9ba698009bab305f0039bae307e307b3754003005407097ae041e460b860f46ea8004cc1f0dd34c004dd5982e0014dd9983e983f002c01101b25eb822c83c0c1f0c1e4dd50014590771980480400099802802983d8021bad30790013307730740013307730750014bd70183b800a0ea8b20e091112cc004cdc398040021804001c4cc07c0108c96600260d460e86ea8006264b3001306b3075375400313322598009838183b9baa001899192cc004c1bcc1e4dd500144c8c8c8ca60026102020033081010039840808012444b300130850100489982c98420080389981b0010992cc004c1dc00626464b3001308801002805c59085011bad3086010013082013754005159800983b000c4c8c96600261100200500b8b210a02375a610c020026104026ea800a2c840009080011840009baa0018b210402184080800984000800983f800983d1baa0028b20f015980099baf305d3079375400260f860f26ea800e2b3001337126eb4c174c1e4dd5001cc004dd5982e983c9baa305d3079375400d375c60f800f375c60ba00e806a264b3001306f3079375400313370e6eb4c1f4c1e8dd50009bad305e307a375400913370e6eb4c1f4c1e8dd50009bad305e307a375400883c0c16cc1e4dd5000c59077459077183d983c1baa0018b20ec30793076375400260b060ec6ea8c168c1d8dd5001c59074198038029bad3078307537540031641cc6644646600200200c44b3001001801c4c8cc896600266e4401c00a2b30013371e00e005130603307d375000297ae080320f2899802802983f80220f2375c60f00026eb4c1e4004c1ec0050791bb3307730743754002298103d87a80008b20e291112cc004cdc398030011804001c4ca60020034800200880088896600200314a313322598009836983b9baa0018992cc004c1b8c1e0dd5000c4c96600260de60f26ea8006264b30013375e60fc60f66ea8004c1f8c1ecdd5183f183d9baa0058acc004cdd7982e983d9baa001305f307b375460fc60f66ea80162b300198008044c0ec01e60fe00c8042266e1e60026eacc17cc1ecdd5000cdd7183f004cdd7182f804a01e325980099b880014800226074003100141e86eb4c17cc1ecdd5002c52820f28b20f28b20f2307d307a37540031641e0660160146eb4c1f0c1e4dd5000c5907718181bae307b307837540031641d860f2002646600200200c44b30010018a60103d87a80008992cc004cdc38029bad30790018982f1983d983c000a5eb8226600600660fa00483b8c1ec00507920ee8b20e29111919912cc004cdc39bad30780010028992cc004cc896600200314a11329800992cc004c1bcc1e4dd5000c4dd6983d183e9bab307d307a3754003148001078183e000cdd7983e183e800cdd58012444b30010018acc004c008016266e2520000038a5041e91325980099baf307c0014c010140008acc004cdc49bad307d308001375660fa00200913003374c61020200514a083da2b300133712900000244c00c01a294107b20f6307f00141f4329800800c00e44660fa004660fa6e980052f5c08008889660020051330014c103d87a80004bd6f7b63044ca60026eb8c1ec0066eacc1f00066100020069112cc004cdc8a441000038acc004cdc7a44100003899802983219840809ba60024bd70000c4cc015300103d87a800000641f519800803c006446600e004661060266ec0dd48029ba6004001401c83e860fc00483e229422942294107d1bab305a002374c660f066ec0c1e4004dd31983c19bb03079307a001375066e0400c0152f5bded8c097adef6c608801c590741bac301a3075375400d1641ccb30013068300e0018a4001159800983b800c4c96600266e3cdd71839800a44104555344720089bad30740018b20e430760018b20e841c46464b3001306a307437540031325980099baf30793076375460f260ec6ea8c168c1d8dd500098131983c1ba90034bd7044c96600260de60ec6ea800626466042002264b3001306e307837540031325980099baf307d307a375460fa60f46ea8004c0a8cc1f0dd4803a5eb82264b30013073307a37540031323302500113307e375066e04dd6983f983e1baa001375a60fe60f86ea8014cc1f8dd3194c0040066eacc184c1f4dd50024c8cc004004dd59831183f1baa3062307e375401244b30010018a5eb7bdb182264661040266ec0c1fc004dd319198008009bab3081010022259800800c52f5bded8c11323308501337606104020026ea0c104dd698418080099801801984380801184280800a1060233003003308401002308201001420004800888966002005100189919914c00401a610c0200b32330010010052259800800c4cc21804cdd81ba9004374c00697adef6c608994c004dd7184200800cdd5984280800cc224040092225980099b900080038998450099bb037520106e9801c0162b30013371e01000713259800acc0040062946294108a014400a2661160266ec0dd48049ba6001002421c04653001001804400d0011112cc00400a2003132332298008034c24804016646600200200a44b30010018998490099bb037520086ea000d2f5bded8c113298009bae3090010019bad309101001984a808012444b30013372001000713309601337606ea4020dd4003802c56600266e3c02000e264b3001308a01001880144cc25c04cdd81ba90093750002004849808cdc000380144cc25804cdd81ba900337500046600c00c002849009092010c24c0400509101200c375c6116020026eb4c23004004c2380400908c0144cc22804cdd81ba9003374c0046600c00c002843009086010c21c0400508501200c375c60fe0026eacc20004004c208040090800125eb80c1f8c1ecdd5000c59079182e183d1baa0018b20f0307c307937540031641dc660a66eb0c168c1e0dd500411982e182a9bab305d3079375400200c60f460ee6ea80062c83a8c160c1d8dd5182d183b1baa0018b20e830783075375400314bd7090100008101a00020e63304e375860ee60e86ea8010004dd7183b18399baa301b30733754008660326eacc068c1c8dd50011bae305630723754603460e46ea800d2222598009834006c4c966003300130773074375409b0279813183a1baa06b9bab301e307437540d6806a26464b300198009980b1bac3079307637540da6eb8c160c1d8dd5180f183b1baa04f801cdd5983c800cdd6180d983b1baa04f4019159800cc004dd6182c183b1baa06d801cdd5983c983d000ccc1e0c168c1d8dd5180f183b1baa04f330784c1054455534472004bd70200a899b879800827c1b690002008375a60f20051641d11641d060f200330010019bab30773074375460ee60e86ea81ba460246eb4c164c1d4dd5000a00a8b20e4375860ec60e66ea808a2b3001306700d8992cc006600260b060e86ea813604f3026307437540d73756603c60e86ea81ad00d44c8c966003300133016375860f260ec6ea81b4dd7182c183b1baa301e3076375409f0039bab30790019983c182d183b1baa301e3076375409e660f0981054455534472004bd70200c8acc00660026eb0c160c1d8dd5036c00e6eacc1e4c1e80066eb0c06cc1d8dd5027a00a899b879800827c1b690002008375a60f20051641d11641d060f200330010019bab30773074375460ee60e86ea81ba466e20dd6982c983a9baa001480010054590721bac3076307337540451598009835806c4c966003300130563074375409b3758603e60e86ea81ae604c60e86ea81ae6eacc078c1d0dd5035a0208acc004c044006260d3300104d835c0050024590724590721bad30763073375404513259800cc004c158c1d0dd5026cdd6180f983a1baa06b9813183a1baa06b9bab301e307437540d680822b3001301100189834cc0041360d7337040029000a0048b20e48b20e4375a60ec60e66ea808907120e241c4225980099b8800148002298103d87a8000899804001000a0dc22c82792259800982218271baa00289919192cc004c15800a26464b300130490018acc004c150dd5001401a2c82aa2b30013048001899192cc004c16800a01116415c6eb4c160004c150dd500145660026098003159800982a1baa00280345905545905220a4414860a46ea8004c15400e2c8298c96600260a400315980099b8948010c1440062d130463051001414116414c6ea8c150004c150004c13cdd500145904d2444b30013045304f3754009132323259800982b80144c8cc8966002609600513259800982d800c4cc128dd6182d000912cc00400a00913300c305c00213001305d002416916416060ac6ea800e2b3001304a0028992cc004c16c0062660946eb0c1680048966002005004899806182e00109800982e80120b48b20b030563754007159800982700144c8c96600260b80050038b20b2375a60b400260ac6ea800e2b30013037002899192cc004c17000a0071641646eb4c168004c158dd5001c5905420a8415082a0c14cdd50008992cc004c128006264b3001305a0018992cc004c130c158dd5000c4c8c8cc896600260be00700d8b20b8375a60b80026eb8c170008c170004c15cdd5000c59055182c800c59057182a9baa0038acc004c124006264b3001305a0018992cc004c130c158dd5000c4c8c8c96600260bc00513300b305d00313300b00100c8b20b6305c001305c0013057375400316415460b200316415c60aa6ea800e2b3001304d001899192cc004c16c00a0131641606eb8c164004c154dd5001c5905320a6414c60a66ea8008c15800e2c82a0c154004c154004c140dd500245904e08966002608460986ea800a2646464b30013054002899912cc004c11cc144dd500144c8c8c96600260b200513300b3058003132598009825800c4c96600260b600313232598009827000c4c96600260bc003133010305d0010098b20b6305937540051598009826800c4c8c8ca60026eb4c17c0066eb4c17c00e6eb4c17c009222598009831802403a2c830060be00260bc00260b26ea800a2c82b9057182b9baa001305a0018b20b0305637540051598009825000c56600260ac6ea800a00b16415d16415082a0c150dd5000c59056182b800982b80098291baa0028b20a03053003132598009823000c56600260a26ea800a00b1641491598009822800c4c8c96600260ae0050078b20a8375c60aa00260a26ea800a2b30013049001899192cc004c15c00a00f16415060aa00260a26ea800a2c827904f209e304f375400316414460a400260a4002609a6ea800a2c8258c138c12cdd500111192cc004c10800626464b300130530028024590501bae3051001304d37540071598009820800c4c8c96600260a60050048b20a0375c60a2002609a6ea800e2c825904b18259baa0028b20903001375c605a60926ea810c8c966002607e00314c103d87a80008992cc006600260806eb4c12c0069429450494530103d87a800089818198269825000a5eb810494c00488006444b3001337120029000452f7b63010140000101200089980119b8e0053370200800266e0400400d04b48896600266e2400520008a5ef6c601014000010120008998014c004cdc0802000c00e00ab8c19b81001003412d001400c8240dc680098008009119800911191919bb032374e660a0609a002660a0609c00297ae03376060980046098002609a003300100691000c012007375a60980028032600200b22001801c00a002802888cc00920022325980099b89001480122b300130410018cc004012007002918061ba8001403d1598009820000c6600200900399b80002480fe460186ea0c03cc02c00500f456600266e1c00920be0189919800800918069ba9001223300648008966002602000313002489008cc00401e00d33700002903fc8cc0100108c010cdc5001000a014413519800802400e66e00009207f918061ba9001401c825104a20948acc004cdc3800a401919800802400e66e0000920ff02919802a40044b30013370e004906600c492f7b63001014000010120008992cc004cdc38012417c0519800803c01a66012012440032300f3374a004002805a330010078034cdc0001241fe0329800804401e66014014440030019180819ba50030014034809104d2cc004cdc4a41002800513370066e0000920ff134803a266e0000920f1014130826100f4566002605800315980099b87002482f80a33001004801ccc01801888006460186e9c00500846600200900399b80002483fc06530010058024cc01c01c880060032300d374e002805100f20948acc004c0ac0062b30013370e004907f0144c8c8cc0040048c038dd30009119803a40044b300130110018980125eb7bdb1822464653001006918031982b001000cdd69829801200c323376060ac00260ac60ae0026eb0c14400660020130089808800a00a41386600c00c4400519800802400e66e0000920bf02919194c0040060072300f374c00280088896600266e24009200089800a5eb7bdb1822464653001006980b002c8c014cc15c0080066eb4c1500090061919bb0305700130573058001375860a4003300100a804c005005209e3300700722002403c82522497bdb181014000010120004128825104a209433706002902011640f86eb8c0f8004dd7181f006181f005c5903b0c0e8004c0e4004c0d0dd5000c590324590350c0c8004c0c4004c0c0004c0bc004c0b8004c0a4dd5001459027180598139baa3259800980e98139baa0018992cc004c084c0a0dd5000c4c966002603e60526ea8006264646644b300130320038802c5902f18178009bae302f002302f001302a37540031640a0605860526ea80062c8138c028c0a0dd5180618141baa302b30283754003164098660026eb0c02cc09cdd500f0121802002111980180111980618029bab300d30293754601a60526ea80040088c00c00488c8cc00400400c896600200314c103d87a80008992cc004c0100062601c6605600297ae08998018019816801204e302b00140a4601001044464b3001301b001899192cc004c0b000a0091640a46eb8c0a8004c098dd5001c5660026034003132598009815800c4cc068dd61815000912cc00400a00b19800803cc0b000a26002605a004803902a45902818131baa0038acc004c078006264b3001302b00189980d1bac302a0012259800801401633001007981600144c004c0b400900720548b2050302637540071598009803800c4c8cc8966002605a00313301c3758605800244b3001002803c66002013302e002898009817801201240b11640a86eb4c0a8004c0ac004c098dd5001c566002600c0031323259800981600140122c8148dd6981500098131baa0038acc004c01400626464b3001302c0028024590291bad302a0013026375400715980099b874803000626464b3001302c0028024590291bae302a00130263754007164090812102420484090812102418121baa00244c8cc89660026042003132598009809980e9baa0018991919192cc004c09800a264b3001301830223754003132323322598009815801c4cc064c0a80204c038c0ac03e2c8140dd718140009bae3028002302800130233754003164084604a00916408c6eb8c090004c090004c08c004c078dd5000c5901c1810000c5901e1bae301e001301f0013758603a00480da26466446008603e00a6eb4c060004dd6980c800980d80120328b202e3015375400316404c602e00b1640546eb0c054004dd7180a801180a800980a00098079baa0098b201a2232598009803000c4c8c966002602e0050048b2028375c602a00260226ea800e2b300130050018acc004c044dd5001c00a2c80922c807900f18079baa0024590080c024004c010dd5005452689b2b200401", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} \ No newline at end of file diff --git a/modules/realfi-partner-sdk/src/generated-types/v0_4/index.ts b/modules/realfi-partner-sdk/src/generated-types/v0_4/index.ts new file mode 100644 index 0000000000..faa9ec5f0f --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/v0_4/index.ts @@ -0,0 +1,619 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +type Data = Exact; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ + Bool: Type.Boolean(), + Tuple_VerificationKey_COSESign1: Type.Tuple([ + Type.String(), + Type.Ref("COSESign1"), + ]), + COSESign1: Type.Object({ + headers: Type.Ref("Headers"), + payload: Type.Optional( + Type.String() + ), + signature: Type.String(), + }, { ctor: 0n }), + HeaderMap: Type.String(), + Headers: Type.Object({ + protected: Type.Ref("HeaderMap"), + unprotected: Type.Ref("HeaderMap"), + }, { ctor: 0n }), + MultisigScript: Type.Union([ + Type.Object({ + Signature: Type.Object({ + key_hash: Type.String(), + }, { ctor: 0n }) + }), + Type.Object({ + AllOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 1n }) + }), + Type.Object({ + AnyOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 2n }) + }), + Type.Object({ + AtLeast: Type.Object({ + required: Type.BigInt(), + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 3n }) + }), + Type.Object({ + Before: Type.Object({ + time: Type.BigInt(), + }, { ctor: 4n }) + }), + Type.Object({ + After: Type.Object({ + time: Type.BigInt(), + }, { ctor: 5n }) + }), + Type.Object({ + Script: Type.Object({ + script_hash: Type.String(), + }, { ctor: 6n }) + }), + ]), + Asset: Type.Tuple([ + Type.String(), + Type.String(), + ]), + Destination: Type.Object({ + address: Type.Object({ + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple([ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + ], { ctor: 0n }) + }), + Type.Object({ + Pointer: Type.Object({ + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, { ctor: 1n }) + }), + ]) + ), + }, { ctor: 0n }), + datum: Type.Union([ + Type.Literal("NoDatum", { ctor: 0n }), + Type.Object({ + DatumHash: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + Type.Object({ + InlineDatum: Type.Tuple([ + TPlutusData, + ], { ctor: 2n }) + }), + ]), + }, { ctor: 0n }), + ExtraProtocolRedeemer: Type.Object({ + request_to_outputs: Type.Array( + Type.BigInt() + ), + input_to_requests: Type.Array( + Type.BigInt() + ), + treasury_input_idx: Type.BigInt(), + treasury_output_idx: Type.BigInt(), + vault_input_idx: Type.Optional( + Type.BigInt() + ), + vault_output_idx: Type.Optional( + Type.BigInt() + ), + }, { ctor: 0n }), + Nonce: Type.Union([ + Type.Object({ + UTxO: Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + ], { ctor: 0n }) + }), + Type.Object({ + Validity: Type.Tuple([ + Type.Object({ + lower_bound: Type.Object({ + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([ + Type.BigInt(), + ], { ctor: 1n }) + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, { ctor: 0n }), + upper_bound: Type.Object({ + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([ + Type.BigInt(), + ], { ctor: 1n }) + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, { ctor: 0n }), + }, { ctor: 0n }), + ], { ctor: 1n }) + }), + ]), + OrderAction: Type.Union([ + Type.Object({ + OMint: Type.Object({ + amount: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 0n }) + }), + Type.Object({ + ORedeem: Type.Object({ + amount: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 1n }) + }), + Type.Object({ + ODeposit: Type.Object({ + principal: Type.BigInt(), + yield: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 2n }) + }), + Type.Object({ + OWithdraw: Type.Object({ + amount: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 3n }) + }), + Type.Object({ + OStake: Type.Object({ + amount: Type.BigInt(), + }, { ctor: 4n }) + }), + Type.Object({ + OUnstake: Type.Object({ + amount: Type.BigInt(), + }, { ctor: 5n }) + }), + ]), + OrderDatum: Type.Object({ + owner: Type.Ref("MultisigScript"), + destination: Type.Ref("Destination"), + action: Type.Ref("OrderAction"), + data: TPlutusData, + }, { ctor: 0n }), + OrderRedeemer: Type.Union([ + Type.Literal("Execute", { ctor: 0n }), + Type.Literal("Cancel", { ctor: 1n }), + ]), + ProtocolRedeemer: Type.Union([ + Type.Object({ + Mint: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequest") + ), + }, { ctor: 0n }) + }), + Type.Object({ + Burn: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequest") + ), + }, { ctor: 1n }) + }), + Type.Object({ + Withdraw: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequest") + ), + }, { ctor: 2n }) + }), + Type.Object({ + Deposit: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequest") + ), + }, { ctor: 3n }) + }), + Type.Object({ + Stake: Type.Object({ + requests: Type.Array( + Type.Ref("Request") + ), + }, { ctor: 4n }) + }), + Type.Object({ + Unstake: Type.Object({ + requests: Type.Array( + Type.Ref("Request") + ), + }, { ctor: 5n }) + }), + ]), + ProxyDatum: Type.Object({ + logic: Type.String(), + settings: Type.Ref("Settings"), + }, { ctor: 0n }), + Registry: Type.Object({ + treasury: Type.String(), + usdr: Type.String(), + order: Type.String(), + staking_vault: Type.String(), + susdr: Type.String(), + }, { ctor: 0n }), + Request: Type.Object({ + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + origin: Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + }, { ctor: 0n }), + ReserveAsset: Type.Object({ + asset: Type.Ref("Asset"), + numerator: Type.BigInt(), + denominator: Type.BigInt(), + }, { ctor: 0n }), + Settings: Type.Object({ + mint_permission: Type.Ref("MultisigScript"), + burn_permission: Type.Ref("MultisigScript"), + withdraw_permission: Type.Ref("MultisigScript"), + deposit_permission: Type.Ref("MultisigScript"), + stake_permission: Type.Ref("MultisigScript"), + unstake_permission: Type.Ref("MultisigScript"), + registry: Type.Ref("Registry"), + reserve_assets: Type.Array( + Type.Ref("ReserveAsset") + ), + unstaked_yield_pot: Type.Object({ + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple([ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + ], { ctor: 0n }) + }), + Type.Object({ + Pointer: Type.Object({ + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, { ctor: 1n }) + }), + ]) + ), + }, { ctor: 0n }), + }, { ctor: 0n }), + SignedPayload_ProtocolRedeemer: Type.Object({ + action: Type.Ref("ProtocolRedeemer"), + nonce: Type.Ref("Nonce"), + }, { ctor: 0n }), + SignedRedeemer_ExtraProtocolRedeemer: Type.Object({ + extra: Type.Ref("ExtraProtocolRedeemer"), + payload: Type.Ref("SignedPayload_ProtocolRedeemer"), + signatures: Type.Array( + Type.Ref("Tuple_VerificationKey_COSESign1") + ), + }, { ctor: 0n }), + StakingVaultRedeemer: Type.Undefined(), + TreasuryRequest: Type.Object({ + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + yield: Type.BigInt(), + origin: Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 0n }), + VaultDatum: Type.Object({ + circulating_susdr: Type.BigInt(), + }, { ctor: 0n }), +}); + +export const Bool = Contracts.Import("Bool"); +export type Bool = Exact; +export const Tuple_VerificationKey_COSESign1 = Contracts.Import("Tuple_VerificationKey_COSESign1"); +export type Tuple_VerificationKey_COSESign1 = Exact; +export const COSESign1 = Contracts.Import("COSESign1"); +export type COSESign1 = Exact; +export const HeaderMap = Contracts.Import("HeaderMap"); +export type HeaderMap = Exact; +export const Headers = Contracts.Import("Headers"); +export type Headers = Exact; +export const MultisigScript = Contracts.Import("MultisigScript"); +export type MultisigScript = Exact; +export const Asset = Contracts.Import("Asset"); +export type Asset = Exact; +export const Destination = Contracts.Import("Destination"); +export type Destination = Exact; +export const ExtraProtocolRedeemer = Contracts.Import("ExtraProtocolRedeemer"); +export type ExtraProtocolRedeemer = Exact; +export const Nonce = Contracts.Import("Nonce"); +export type Nonce = Exact; +export const OrderAction = Contracts.Import("OrderAction"); +export type OrderAction = Exact; +export const OrderDatum = Contracts.Import("OrderDatum"); +export type OrderDatum = Exact; +export const OrderRedeemer = Contracts.Import("OrderRedeemer"); +export type OrderRedeemer = Exact; +export const ProtocolRedeemer = Contracts.Import("ProtocolRedeemer"); +export type ProtocolRedeemer = Exact; +export const ProxyDatum = Contracts.Import("ProxyDatum"); +export type ProxyDatum = Exact; +export const Registry = Contracts.Import("Registry"); +export type Registry = Exact; +export const Request = Contracts.Import("Request"); +export type Request = Exact; +export const ReserveAsset = Contracts.Import("ReserveAsset"); +export type ReserveAsset = Exact; +export const Settings = Contracts.Import("Settings"); +export type Settings = Exact; +export const SignedPayload_ProtocolRedeemer = Contracts.Import("SignedPayload_ProtocolRedeemer"); +export type SignedPayload_ProtocolRedeemer = Exact; +export const SignedRedeemer_ExtraProtocolRedeemer = Contracts.Import("SignedRedeemer_ExtraProtocolRedeemer"); +export type SignedRedeemer_ExtraProtocolRedeemer = Exact; +export const StakingVaultRedeemer = Contracts.Import("StakingVaultRedeemer"); +export type StakingVaultRedeemer = Exact; +export const TreasuryRequest = Contracts.Import("TreasuryRequest"); +export type TreasuryRequest = Exact; +export const VaultDatum = Contracts.Import("VaultDatum"); +export type VaultDatum = Exact; + +export class V0_4OrderOrderSpend { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5911bb010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc896600264653001300c00198061806800cdc3a4005300c0024888966002600460186ea800e2646644b300100789919912cc004c00c0062b300130133754015002806a0288acc004c0200062b300130133754015002806a028806a02040403300123015301630163016301630163016001911919800800801912cc00400629422b30013375e0066028603000314a31330020023019001404880b24602a602c0032232330010010032259800800c528456600266e3cdd7180c000801c528c4cc008008c064005012202c9b874801122222598009803180a9baa00d8cc004888c966002601400313259800800c00e264b300100180240120090048992cc004c08400e00d00540786eb8005021180f000a038301a37540091598009807800c4c9660020030038992cc0040060090048024012264b30013021003803401501e1bae0014084603c00280e0c068dd50024009017202e301837540072259800800c52f5c113301a3017301b00133002002301c00140652225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a00640592232330010010032233003001300200291111919800800802912cc004006200b13259800800c4cc010c08000801a26600a60400046600600600280f0c08000501d488c8cc00400400c896600200314c0103d87a80008992cc004c010006266e9520003301d0014bd7044cc00c00cc07c009018180e800a0369180d180d980d800a4444445300130060069802802c888ca6002003004801a0022223259800980a000c4c9660020030068992cc00400600f007803c01e264b3001302b003802c0210281bae00140ac60500028130c090dd5001c566002603200313259800800c01a264b3001001803c01e264b3001302b003899807000912cc00400a00f13259800800c66002015001898011817001a014805c02e01700b40bc605800481520108140dd6000c01e00e8158c0a000502618121baa0038acc004c03c006264b300100180344c966002003007803c4c966002605600713300e0012259800801401e264b30010018cc00402a00313002302e003402900b805c02e0168178c0b000902a40210281bac001803c01d02b1814000a04c3024375400715980099b8748018006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002605c0071330110012259800801402a264b30010018cc004036003130023031003403500e807403a01c8190c0bc00902d402d02b1bac001805402902e1815800a052375a002605400500740ac60500028130c090dd5001c56600266e1d20080018992cc00400600d13259800800c01e00f0078992cc004c0ac00e00b00840a06eb400600e8158c0a000502618121baa0038acc004cdc3a401400313259800800c01a264b3001001803c01e00f132598009815801c0160108140dd6800c01d02b1814000a04c3024375400715980099b8748030006264b300100180344c966002003007803c01e00f132598009815801c0160108140dd7000a0563028001409860486ea800e00a81090212042408481090212042302237540053300237586040603a6ea80448cdd79810980f1baa00101048888c8c8cc88c966002602c604a6ea801a264b3001301c3026375400315980099b8f375c6054604e6ea8004dd7180598139baa3016302737546028604e6ea8c96600200319800800c40060468022047023811c08d02d198011bac30143027375403604713233225330283372c9210d63726564656e7469616c3a3a200037326600e0049101001330180010023374a9001198151ba90014bd701bab3017302837540386eb8c0a8c09cdd5198011bac301430273754036047153302549013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f7264657200164091153302549132657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f63726564001640906052604c6ea8c0a4c098dd5180998131baa30293026375400d15330244913665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f7574290016408c44a6604a66e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea400522010013259800980c18139baa00189929981399b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800980a98149baa0018992cc004006330010018800c099007409a04d0268132060302d302a375400315330284913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d0016409c601a60526ea8c058c0a4dd5000981598141baa0018a9981324814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640946601800446602860166eacc054c0a0dd5180a98141baa001002300100122259800980b18129baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc0040062b3001302f0028acc004c06cc0a8dd5000c4c9660020030078992cc004006264b3001001804c4c96600200313259800800c02e264b30010018992cc00400601b13259800800c4c96600200300f8992cc004006264b3001001808c4c96600200313259800800c04e264b30010018992cc00400602b13259800800c05a02d1332259800800c062264b30010018acc004c10800a330010128cc0040423300100e8cc0040323300100a8cc0040222b3001302e303d375400d13259800800c06a264b300100180dc06e03701b899912cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004006043021810c08626644b3001001811c4c96600200302481240920491332259800800c09a264b3001001813c09e04f0278992cc004c14400e26606802444b30010028acc004c0fcc138dd500944c96600200302b8992cc004006264b3001001816c4c966002003159800982b801466002007132598009822000c4c9660020030308992cc0040062b3001305a0028992cc004c11c006264b3001001819c4c966002003159800982e80146600200303581a208681a20b481a40d2069034417860b600282c8c15cdd50014566002609800313259800800c0ce264b300100181a40d20691332259800800c0da264b300100181bc0de06f1332259800800c0e6264b300100181d40ea075132598009832001c0f20768308dd6800c0e90641830800a0be375a00260c0005037418460bc00282e0dd6800982e80140d105e182d800a0b230573754005032415082a0c154dd5000c0c505740c6063031818a0b63058001415860a86ea800a2b300130490018acc004c150dd500140c205e82aa05e828905118291baa001817207a81720a881740ba05d02e416060aa0028298c15400a05902c81640b10561829800a0a2304f375402502a413113259800800c5660026080609e6ea8006264b300100181644c96600200302d816c4cc896600200302f8992cc00400606103081844cc89660020030328992cc004006067033819c4c96600260ba007159800803c0d2264b300100181ac0d606b035899912cc00400606f13259800800c0e207103881c44c96600260c400713010306201181ca0be375c0028310c17c00505d1bae001305e008417c60b800e82d206882d0dd6800c0cd05d182d000a0b0375a00260b2005030416860ae00282a8dd6000982b00140b605a82b8c15000505218281baa001815a09a815c0ae05702b415460a400482820508270dd7000a0a2304e00141306eb8004c13400904e1825800a092375c00260940048258c1200050461bae00130470024120608a0028218dd70009822001208a30420014100607c6ea801a03281da03280fa03280fa03280fa03280fa03280fa03280fa03281fa03301980cc0650431820000a07c3758002607e00501680b2080303d00140ec607a00501480a405202881f0c0ec005039181d801404a0250128092078303900140dc6072005010808404202081d0c0dc005035181b801403a01d00e8072070303500140cc606a00500c806403201881b0c0cc0050311819801402a01500a8052068303100140bc606200500880440220108190c0bc00502d18159baa00180320508032058803401a00d00640c0605a0028158dd70009816001205a302a00140a0604c6ea800e0028118888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020565980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81290251bac3028002375a604c0026466ec0dd418130009ba73027001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6056003337149101023a200098008054c0b000600a805100a181700144ca6002015302b00199b8a489023a200098008054c0b0006600e66008008004805100a18170012058302e00140ac66e29220102207d0000340a06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d20503758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720543371666e000056600266e2000520148a40c11481b902a002200c33706002901019b8600148080cdc7002001204e375c0068158dc5245022c20002232330010010032259800980a800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc01ccdc2000a402866e2ccdc019b85001480512060003408881108acc004c018c054dd5003c660026032602c6ea8c064c058dd5003cdd6180c980d180d180d180d180d180d180d180d180b1baa00a980c980d180d180d180d180d180d180d180b1baa00a9bab3005301637540149111191980080080291192cc004c03400626601200c6eb8c080c074dd5001456600260240031323300100137586042603c6ea800c896600200314a3159800998028029811000c4cc008008c08c006294101c20408acc004c020006264660020026eb0c084c078dd5001912cc00400629422b30013300500530220018a518998010011811800a038408115980099b874801800626466e24dd6981080099198008009bac302230230022259800800c52000899912cc004cc02002000a266e0000520028800a03e30230013300200230240014084603a6ea800a2b30013370e9004000c4c8cc8966002602a603e6ea800a2b30013015301f3754604660480071337126eb4c08cc080dd5001000c4cdc41bad30233020375400400280ea294101d18108009bad3021301e3754006603a6ea8c028c074dd5002c56600266e1d200a00189919912cc004c054c07cdd50014566002602a603e6ea8c08cc09000e266e24004dd6981198101baa002899b88001375a604660406ea800901d4528203a3021001375a6042603c6ea800cc074dd51810180e9baa00589980580219ba548008cc07cc080c074dd500125eb8101a2034406880d101a2034301b37540028a9980a24812065787065637420536f6d65286f726465725f646174756d29203d20646174756d0016404c809860206ea8020dc3a400100a805402a01480a8c044004c044c048004c034dd5001c5900a0c030004c01cdd5006c5268a99802a491856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001615330034911772656465656d65723a204f7264657252656465656d6572001601" + : + "590882010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400530090024888966002600460126ea800e2653001300e00198071807800cdc3a400091119912cc004c00c0062b3001301037540150028b20228acc004c0200062b3001301037540150028b20228b201c40383300123012301330133013301330133013001911919800800801912cc00400629422b30013375e0066022602a00314a313300200230160014040809a4602460260032232330010010032259800800c528456600266e3cdd7180a800801c528c4cc008008c05800501020269b87480112222259800980318091baa00d8cc00488c96600260120031323259800980e00140122c80c8dd7180d000980b1baa0038acc004c03800626464b3001301c0028024590191bae301a0013016375400716405080a0c050dd50014896600200314bd7044cc05cc050c060004cc008008c064005016488c8cc00400400c88cc00c004c00800a44646600200200644b30010018a6103d87a80008992cc004c010006266e9520003301a0014bd7044cc00c00cc070009016180d000a0309180b980c180c000a44444646466446644b30013011301d375400313259800980b980f1baa0018acc004cdc79bae3022301f37540026eb8c020c07cdd51808980f9baa300f301f3754646600c0022002660066eb0c03cc07cdd500b00e44cc040dd59808980f9baa0163374a9001198109811180f9baa330033758601e603e6ea80580712f5c11640751640746042603c6ea8c084c078dd51807180f1baa3021301e37540031640704464b30013012301e3754003132598009807180f9baa001899198038008800981198101baa0018b203c3008301f3754601e603e6ea8c088c07cdd5000c5901d1980400111980718021bab300f301f3754601e603e6ea8004008cc018dd6180f980e1baa01323375e6040603a6ea80040488966002601e60366ea800a2646644b300130230018992cc004c04cc07cdd5000c4c8c8c8c8c8c8c8c8ca60026058003302c0089816003cc0b001a605800b302c0049816001cdd61816001244444444b3001303500989980c181a00889980c00389980c00309980c00289980c00209980c0018acc004c090c0c0dd500144c8c8c8c8ca60026eb8c0e40066eb8c0e40166eb8c0e40126eb8c0e400e6eb8c0e40092222259800981f80344cc09802c89660020051598009818181e1baa01489919192cc004c11000a26605a6086006264b300130340018992cc004c11800626464b300130370018992cc004c124006266064609000205516411860886ea800a2b3001303c00189919194c004dd69825000cdd69825001cdd698250012444b3001304e004817c5904b0c128004c124004c110dd5001459042208430423754002608a00316410c60826ea800a2b300130390018acc004c104dd5001409a2c82122c81f903f181f9baa0018b208230420013042001303d37540291640ed132598009818981e9baa001899191919912cc004c11c00e264646644b3001304b0038980598258064590481bae3048001375c609000460900026eb0c1180162c8220dd698220009bad304400230440013043001303e37540031640f0608000481f22c81e060720026070002606e002606c00260626ea800a2c817a2c819060580026056002605400260520026050002604e002604c002604a00260406ea80062c80f0c0880062c8100dd718100009810800980e1baa0028b20343006006300100122232598009807800c4c8c96600260440050048b203e375c604000260386ea800e2b300130140018992cc004c0840062660106eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c5660026014003132598009810800c4cc020dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004cdc3a400c0031323322598009811800c4cc028dd61811000912cc00400a00f19800804cc09000a26002604a00480490224590201bad30200013021001301c375400715980099b874802000626464b3001302200280245901f1bad3020001301c375400715980099b874802800626464b3001302200280245901f1bad3020001301c375400715980099b874803000626464b3001302200280245901f1bae3020001301c375400716406880d101a2034406880d101a180d1baa0024566002600c60246ea801e33001301630133754602c60266ea801e6eb0c058c05cc05cc05cc05cc05cc05cc05cc05cc04cdd50054c058c05cc05cc05cc05cc05cc05cc05cc04cdd50054dd5980298099baa00a48888c8cc00400401488c966002601a003133009006375c603a60346ea800a2b30013012001899198008009bac301e301b375400644b30010018a518acc004cc014014c07c006266004004604000314a080d101d45660026010003132330010013758603c60366ea800c896600200314a115980099802802980f800c528c4cc008008c08000501a203a8acc004cdc3a400c003132337126eb4c078004c8cc004004dd6180f9810001112cc0040062900044cc89660026601001000513370000290014400501d1810000998010011810800a03c301a375400515980099b87480200062646644b30013015301c3754005159800980a980e1baa30203021003899b89375a6040603a6ea8008006266e20dd69810180e9baa002001406d14a080d8c078004dd6980f180d9baa003301a3754601460346ea80162b30013370e9005000c4c8cc8966002602a60386ea800a2b30013015301c3754604060420071337120026eb4c080c074dd500144cdc40009bad3020301d375400480da294101b180f0009bad301e301b375400660346ea8c074c068dd5002c4cc02c010cdd2a400466038603a60346ea80092f5c080c10182030406080c1018180c1baa001459011202218069baa00818051baa0038b2010180480098021baa0098a4d13656400801", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_4OrderOrderElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5911bb010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc896600264653001300c00198061806800cdc3a4005300c0024888966002600460186ea800e2646644b300100789919912cc004c00c0062b300130133754015002806a0288acc004c0200062b300130133754015002806a028806a02040403300123015301630163016301630163016001911919800800801912cc00400629422b30013375e0066028603000314a31330020023019001404880b24602a602c0032232330010010032259800800c528456600266e3cdd7180c000801c528c4cc008008c064005012202c9b874801122222598009803180a9baa00d8cc004888c966002601400313259800800c00e264b300100180240120090048992cc004c08400e00d00540786eb8005021180f000a038301a37540091598009807800c4c9660020030038992cc0040060090048024012264b30013021003803401501e1bae0014084603c00280e0c068dd50024009017202e301837540072259800800c52f5c113301a3017301b00133002002301c00140652225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a00640592232330010010032233003001300200291111919800800802912cc004006200b13259800800c4cc010c08000801a26600a60400046600600600280f0c08000501d488c8cc00400400c896600200314c0103d87a80008992cc004c010006266e9520003301d0014bd7044cc00c00cc07c009018180e800a0369180d180d980d800a4444445300130060069802802c888ca6002003004801a0022223259800980a000c4c9660020030068992cc00400600f007803c01e264b3001302b003802c0210281bae00140ac60500028130c090dd5001c566002603200313259800800c01a264b3001001803c01e264b3001302b003899807000912cc00400a00f13259800800c66002015001898011817001a014805c02e01700b40bc605800481520108140dd6000c01e00e8158c0a000502618121baa0038acc004c03c006264b300100180344c966002003007803c4c966002605600713300e0012259800801401e264b30010018cc00402a00313002302e003402900b805c02e0168178c0b000902a40210281bac001803c01d02b1814000a04c3024375400715980099b8748018006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002605c0071330110012259800801402a264b30010018cc004036003130023031003403500e807403a01c8190c0bc00902d402d02b1bac001805402902e1815800a052375a002605400500740ac60500028130c090dd5001c56600266e1d20080018992cc00400600d13259800800c01e00f0078992cc004c0ac00e00b00840a06eb400600e8158c0a000502618121baa0038acc004cdc3a401400313259800800c01a264b3001001803c01e00f132598009815801c0160108140dd6800c01d02b1814000a04c3024375400715980099b8748030006264b300100180344c966002003007803c01e00f132598009815801c0160108140dd7000a0563028001409860486ea800e00a81090212042408481090212042302237540053300237586040603a6ea80448cdd79810980f1baa00101048888c8c8cc88c966002602c604a6ea801a264b3001301c3026375400315980099b8f375c6054604e6ea8004dd7180598139baa3016302737546028604e6ea8c96600200319800800c40060468022047023811c08d02d198011bac30143027375403604713233225330283372c9210d63726564656e7469616c3a3a200037326600e0049101001330180010023374a9001198151ba90014bd701bab3017302837540386eb8c0a8c09cdd5198011bac301430273754036047153302549013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f7264657200164091153302549132657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f63726564001640906052604c6ea8c0a4c098dd5180998131baa30293026375400d15330244913665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f7574290016408c44a6604a66e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea400522010013259800980c18139baa00189929981399b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800980a98149baa0018992cc004006330010018800c099007409a04d0268132060302d302a375400315330284913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d0016409c601a60526ea8c058c0a4dd5000981598141baa0018a9981324814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640946601800446602860166eacc054c0a0dd5180a98141baa001002300100122259800980b18129baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc0040062b3001302f0028acc004c06cc0a8dd5000c4c9660020030078992cc004006264b3001001804c4c96600200313259800800c02e264b30010018992cc00400601b13259800800c4c96600200300f8992cc004006264b3001001808c4c96600200313259800800c04e264b30010018992cc00400602b13259800800c05a02d1332259800800c062264b30010018acc004c10800a330010128cc0040423300100e8cc0040323300100a8cc0040222b3001302e303d375400d13259800800c06a264b300100180dc06e03701b899912cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004006043021810c08626644b3001001811c4c96600200302481240920491332259800800c09a264b3001001813c09e04f0278992cc004c14400e26606802444b30010028acc004c0fcc138dd500944c96600200302b8992cc004006264b3001001816c4c966002003159800982b801466002007132598009822000c4c9660020030308992cc0040062b3001305a0028992cc004c11c006264b3001001819c4c966002003159800982e80146600200303581a208681a20b481a40d2069034417860b600282c8c15cdd50014566002609800313259800800c0ce264b300100181a40d20691332259800800c0da264b300100181bc0de06f1332259800800c0e6264b300100181d40ea075132598009832001c0f20768308dd6800c0e90641830800a0be375a00260c0005037418460bc00282e0dd6800982e80140d105e182d800a0b230573754005032415082a0c154dd5000c0c505740c6063031818a0b63058001415860a86ea800a2b300130490018acc004c150dd500140c205e82aa05e828905118291baa001817207a81720a881740ba05d02e416060aa0028298c15400a05902c81640b10561829800a0a2304f375402502a413113259800800c5660026080609e6ea8006264b300100181644c96600200302d816c4cc896600200302f8992cc00400606103081844cc89660020030328992cc004006067033819c4c96600260ba007159800803c0d2264b300100181ac0d606b035899912cc00400606f13259800800c0e207103881c44c96600260c400713010306201181ca0be375c0028310c17c00505d1bae001305e008417c60b800e82d206882d0dd6800c0cd05d182d000a0b0375a00260b2005030416860ae00282a8dd6000982b00140b605a82b8c15000505218281baa001815a09a815c0ae05702b415460a400482820508270dd7000a0a2304e00141306eb8004c13400904e1825800a092375c00260940048258c1200050461bae00130470024120608a0028218dd70009822001208a30420014100607c6ea801a03281da03280fa03280fa03280fa03280fa03280fa03280fa03281fa03301980cc0650431820000a07c3758002607e00501680b2080303d00140ec607a00501480a405202881f0c0ec005039181d801404a0250128092078303900140dc6072005010808404202081d0c0dc005035181b801403a01d00e8072070303500140cc606a00500c806403201881b0c0cc0050311819801402a01500a8052068303100140bc606200500880440220108190c0bc00502d18159baa00180320508032058803401a00d00640c0605a0028158dd70009816001205a302a00140a0604c6ea800e0028118888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020565980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81290251bac3028002375a604c0026466ec0dd418130009ba73027001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6056003337149101023a200098008054c0b000600a805100a181700144ca6002015302b00199b8a489023a200098008054c0b0006600e66008008004805100a18170012058302e00140ac66e29220102207d0000340a06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d20503758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720543371666e000056600266e2000520148a40c11481b902a002200c33706002901019b8600148080cdc7002001204e375c0068158dc5245022c20002232330010010032259800980a800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc01ccdc2000a402866e2ccdc019b85001480512060003408881108acc004c018c054dd5003c660026032602c6ea8c064c058dd5003cdd6180c980d180d180d180d180d180d180d180d180b1baa00a980c980d180d180d180d180d180d180d180b1baa00a9bab3005301637540149111191980080080291192cc004c03400626601200c6eb8c080c074dd5001456600260240031323300100137586042603c6ea800c896600200314a3159800998028029811000c4cc008008c08c006294101c20408acc004c020006264660020026eb0c084c078dd5001912cc00400629422b30013300500530220018a518998010011811800a038408115980099b874801800626466e24dd6981080099198008009bac302230230022259800800c52000899912cc004cc02002000a266e0000520028800a03e30230013300200230240014084603a6ea800a2b30013370e9004000c4c8cc8966002602a603e6ea800a2b30013015301f3754604660480071337126eb4c08cc080dd5001000c4cdc41bad30233020375400400280ea294101d18108009bad3021301e3754006603a6ea8c028c074dd5002c56600266e1d200a00189919912cc004c054c07cdd50014566002602a603e6ea8c08cc09000e266e24004dd6981198101baa002899b88001375a604660406ea800901d4528203a3021001375a6042603c6ea800cc074dd51810180e9baa00589980580219ba548008cc07cc080c074dd500125eb8101a2034406880d101a2034301b37540028a9980a24812065787065637420536f6d65286f726465725f646174756d29203d20646174756d0016404c809860206ea8020dc3a400100a805402a01480a8c044004c044c048004c034dd5001c5900a0c030004c01cdd5006c5268a99802a491856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001615330034911772656465656d65723a204f7264657252656465656d6572001601" + : + "590882010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400530090024888966002600460126ea800e2653001300e00198071807800cdc3a400091119912cc004c00c0062b3001301037540150028b20228acc004c0200062b3001301037540150028b20228b201c40383300123012301330133013301330133013001911919800800801912cc00400629422b30013375e0066022602a00314a313300200230160014040809a4602460260032232330010010032259800800c528456600266e3cdd7180a800801c528c4cc008008c05800501020269b87480112222259800980318091baa00d8cc00488c96600260120031323259800980e00140122c80c8dd7180d000980b1baa0038acc004c03800626464b3001301c0028024590191bae301a0013016375400716405080a0c050dd50014896600200314bd7044cc05cc050c060004cc008008c064005016488c8cc00400400c88cc00c004c00800a44646600200200644b30010018a6103d87a80008992cc004c010006266e9520003301a0014bd7044cc00c00cc070009016180d000a0309180b980c180c000a44444646466446644b30013011301d375400313259800980b980f1baa0018acc004cdc79bae3022301f37540026eb8c020c07cdd51808980f9baa300f301f3754646600c0022002660066eb0c03cc07cdd500b00e44cc040dd59808980f9baa0163374a9001198109811180f9baa330033758601e603e6ea80580712f5c11640751640746042603c6ea8c084c078dd51807180f1baa3021301e37540031640704464b30013012301e3754003132598009807180f9baa001899198038008800981198101baa0018b203c3008301f3754601e603e6ea8c088c07cdd5000c5901d1980400111980718021bab300f301f3754601e603e6ea8004008cc018dd6180f980e1baa01323375e6040603a6ea80040488966002601e60366ea800a2646644b300130230018992cc004c04cc07cdd5000c4c8c8c8c8c8c8c8c8ca60026058003302c0089816003cc0b001a605800b302c0049816001cdd61816001244444444b3001303500989980c181a00889980c00389980c00309980c00289980c00209980c0018acc004c090c0c0dd500144c8c8c8c8ca60026eb8c0e40066eb8c0e40166eb8c0e40126eb8c0e400e6eb8c0e40092222259800981f80344cc09802c89660020051598009818181e1baa01489919192cc004c11000a26605a6086006264b300130340018992cc004c11800626464b300130370018992cc004c124006266064609000205516411860886ea800a2b3001303c00189919194c004dd69825000cdd69825001cdd698250012444b3001304e004817c5904b0c128004c124004c110dd5001459042208430423754002608a00316410c60826ea800a2b300130390018acc004c104dd5001409a2c82122c81f903f181f9baa0018b208230420013042001303d37540291640ed132598009818981e9baa001899191919912cc004c11c00e264646644b3001304b0038980598258064590481bae3048001375c609000460900026eb0c1180162c8220dd698220009bad304400230440013043001303e37540031640f0608000481f22c81e060720026070002606e002606c00260626ea800a2c817a2c819060580026056002605400260520026050002604e002604c002604a00260406ea80062c80f0c0880062c8100dd718100009810800980e1baa0028b20343006006300100122232598009807800c4c8c96600260440050048b203e375c604000260386ea800e2b300130140018992cc004c0840062660106eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c5660026014003132598009810800c4cc020dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004cdc3a400c0031323322598009811800c4cc028dd61811000912cc00400a00f19800804cc09000a26002604a00480490224590201bad30200013021001301c375400715980099b874802000626464b3001302200280245901f1bad3020001301c375400715980099b874802800626464b3001302200280245901f1bad3020001301c375400715980099b874803000626464b3001302200280245901f1bae3020001301c375400716406880d101a2034406880d101a180d1baa0024566002600c60246ea801e33001301630133754602c60266ea801e6eb0c058c05cc05cc05cc05cc05cc05cc05cc05cc04cdd50054c058c05cc05cc05cc05cc05cc05cc05cc04cdd50054dd5980298099baa00a48888c8cc00400401488c966002601a003133009006375c603a60346ea800a2b30013012001899198008009bac301e301b375400644b30010018a518acc004cc014014c07c006266004004604000314a080d101d45660026010003132330010013758603c60366ea800c896600200314a115980099802802980f800c528c4cc008008c08000501a203a8acc004cdc3a400c003132337126eb4c078004c8cc004004dd6180f9810001112cc0040062900044cc89660026601001000513370000290014400501d1810000998010011810800a03c301a375400515980099b87480200062646644b30013015301c3754005159800980a980e1baa30203021003899b89375a6040603a6ea8008006266e20dd69810180e9baa002001406d14a080d8c078004dd6980f180d9baa003301a3754601460346ea80162b30013370e9005000c4c8cc8966002602a60386ea800a2b30013015301c3754604060420071337120026eb4c080c074dd500144cdc40009bad3020301d375400480da294101b180f0009bad301e301b375400660346ea8c074c068dd5002c4cc02c010cdd2a400466038603a60346ea80092f5c080c10182030406080c1018180c1baa001459011202218069baa00818051baa0038b2010180480098021baa0098a4d13656400801", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_4ProtocolProtocolWithdraw { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "596880010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a66006920142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a4930657870656374206f75747075745f646174756d3a205472656173757279446174756d203d206f75747075745f6461746100168a99801a492e65787065637420696e7075745f646174756d3a205472656173757279446174756d203d20696e7075745f6461746100168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a49666578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d206d61746368696e675f726571756573742e616d6f756e7400168a99801a493865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00168a99801a4938657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492565787065637420646174756d3a204f72646572446174756d203d20646174756d5f6461746100168a99801a493e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f6964782900168a99801a49376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f72657175657374732900168a99801a4939657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a492b657870656374207661756c745f646174756d3a205661756c74446174756d203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a493b657870656374206c6973742e6c656e677468286f75747075745f696e646963657329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a492e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900168a99801a493565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f69647800168a99801a493365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f69647800168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a492a6578706563742073657474696e67733a2053657474696e6773203d2070726f78792e73657474696e677300168a99801a492f72656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d65723e00164888888888888888888888896600264653001302100198109811000cdc3a400930210024888966002600460426ea800e264b3001005899914c004888c966002600c00313259800800c00e264b300100180240120090048992cc004c0c000e00d00540b46eb80050301816800a056302937540091598009802800c4c9660020030038992cc0040060090048024012264b30013030003803401502d1bae00140c0605a0028158c0a4dd50024009026204c3027375400722259800980298139baa0038992cc00400600513259800800c4c9660020030048992cc004006264b3001302d0018acc004cdc4a400860580030068992cc004c0c8012264b3001300c0018acc004c0bcdd5003402601081822b3001300b0018992cc00400601313259800800c02a01500a8992cc004c0d800e01900b40cc6eb400601481b0c0cc00503118179baa0068acc004c03c0062b3001302f375400d0098042060804205840b08160c0b4dd5002c01d02f18049816000a054803205c3754003005802c01600a8188c0b800502c1817001400e007003801a05e302c00140a860506ea800e002812a444b300130053027375400713259800800c00a264b3001001801c00e007003899912cc00400600b13259800800c01a00d0068992cc004c0c800e01100740bc6eb400600c8190c0bc00502d1bae001302e00240bc60580028150c0a0dd5001c0050254888c966002600c00313259800800c00e264b30010018024012009132598009818001c01a00a8168dd6800c0110301816800a056302937540091598009802800c56600260526ea801200700240a900240988130c09cdd5001a44446465300122259800980598169baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc0040062b300130390028cc00401a33001001804c02100e402100b402103640220110088042074303700140d46eb4004c0d800a00a81b8c0d0005032181a001400e007003801a06a303200140c0605c6ea800e002815a444b3001300b302d375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c0fc00e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c11000e02901341046eb80050441820800a07e375c00260800048208c0f800503c40390144039011403903c1bac001806c03503f181e000a074303c002805c02e01700b40f4607400281c0dd6800981c801402103a181b800a06a375a002606c00500540dc60680028190c0d000a007003801c00d0351819000a060302e375400700140ad223233001001003223300300130020024889660026016605a6ea8042264b300100180a44c96600200313259800800c05a264b30010018992cc00400603113259800800c06603313259800981c801c566002602460686ea801a264b300100180dc4c96600200301c80e44cc896600200301e8992cc00400603f01f899912cc00400604313259800800c08a045022899912cc00400604913259800800c09604b025899912cc00400604f13259800800c4c9660020030298992cc0040062b3001304900289980c007112cc00400a26603401a44b30010028cc00401e330010058cc004dc3a400d370e90044dc3a4014911192cc004c0a8c130dd500e44c9660020030338992cc004006264b300100181ac4c966002003159800982a80144cc8966002606000313259800800c0e6264b300100181d40ea264b3001305a003899814800912cc00400a00f13259800800c6600200313002305d00381f205a81f40fa07d03e417860b600482ca07682b8dd6000c0ea07482d0c15c00505518299baa0058acc004c0bc006264b300100181cc4c96600200303a81d44c96600260b40071330290012259800801401e264b30010018cc0040062600460ba00703e40b503e81f40fa07c82f0c16c00905940ed0571bac00181d40e905a182b800a0aa3053375400b1598009819800c4c9660020030398992cc00400607503a8992cc004c16800e26605200244b3001002803c4c96600200319800800c4c008c17400e07c816a07d03e81f40f905e182d80120b281da0ae375800303a81d20b43057001415460a66ea80162b3001300a0018992cc00400607313259800800c0ea07513259800982d001c4cc0a400489660020050078992cc0040063300100189801182e801c0f902d40fa07d03e81f20bc305b002416503b415c6eb000607503a416860ae00282a8c14cdd5002c566002601200313259800800c0e6264b300100181d40ea264b3001305a003899814800912cc00400a00f13259800800c6600200313002305d00381f205c81f40fa07d03e417860b600482ca07682b8dd6000c0ea07482d0c15c00505518299baa0058acc004c020006264b300100181cc4c96600200303a81d44c96600260b40071330290012259800801401e264b30010018cc0040062600460ba00703e40b903e81f40fa07c82f0c16c00905940ed0571bac00181d40e905a182b800a0aa3053375400b0384140828105020a0414082804c966002605e00313259800800c0e2264b30010018acc004c16000a3300100180440e502d40e505540e607303981ca0b23056001415060a46ea800a2b3001302e0018992cc00400607113259800800c56600260b0005159800981898299baa0018992cc00400607513259800800c4c96600200303c8992cc0040062b3001305c0028cc00400e3300100180640f503240f503240f505940f607b03d81ea0ba305a001416060b400503b81dc0ee07682d8c160005056182a1baa00181ca0a281ca0aa81cc0e6073039416460ac00282a0c148dd500140dd04f209e3050375400260a06ea800e06c829206d03681b40d90561829800a0a2305300281a40d2069034415060a20028278c134dd500e40c904a09980f80c112cc00400a330012225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a00641393702900048888c8cc004004014896600200310058992cc00400626600860b000400d133005305800233003003001415860b000282aa6e012001918291829800c8c148c14cc14c0066e95200048888888c8c8c8cc88c96600200313259800981c982d9baa0028992cc00400608713259800800c4c9660020030458992cc004006264b3001001823c4c96600200313259800800c126264b30010018992cc00400609713259800800c4c96600200304d8992cc004006264b3001001827c4c96600200313259800800c146264b3001001829414a26644b300100182a44c96600200315980098398014660020251980080846600201d19800806466002015198008044566002609860dc6ea801a264b300100182b44c96600200305782bc15e0af1332259800800c166264b300100182d416a0b505a899912cc0040060b913259800800c1760bb05d82ec4cc896600200305f8992cc0040060c1060830418226644b300100183144c966002003063831c18e0c713259800984100801c4cc144048896600200519800809466002605c6100026ea818a4610802610a02610a02610a020032232330010010032259800800c52845660026006610e0200314a313300200230880100142040484280a4610802610a02610a02610a02610a02610a02610a02610a02003374a90014dc02400491111119192cc0066002444646644b3001306b0028acc004c1acc23404dd5000c5300103d87a80008a6103d8798000422c051598009837001456600260dc611a026ea80062980103d87a80008a6103d87b8000422c0513322598009836800c530103d87b80008acc004c1b0006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000423804847008dd69849809848009baa0038a6103d8798000423404846808dd69848809847009baa003308d01375400284580908b011845809baa00130020033001003919191919912cc004c1ac00a29422b3001306e0028cc004cdd79848809847009baa0014c103d87b8000a50a51422c0513233225980098370014528c56600260da005133225980098379849009baa3041309301375400d133710004003133712004002848008dd6984a009848809baa0035980098369848009baa303f309101375400f100189806000a11c028a50423804847008c23804dd50009bad309201308f013754008612202611c026ea800508b01211602308b013754002611e02612002006611c026116026ea8004c23404004c22404dd5000cc0d8c22004dd50042444b30013068308a0137540031323300a3758611e026118026ea81ac8cdd79848009846809baa001002308e01308b01375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c24004c23404dd50014c24004c23404dd5000c8c8c96600260d8611e026ea8c24c04c2500400a2003132598009836800c4c034cc24c04dd418061bad309401309101375400497ae08acc004c1b800620051002423804847008c23c04dd5000a11a02309201001308e0137540028029300103d87b8000a50a514228051980099baf9800981d9846809baa002981d9846809baa001919192cc004c1b0c23c04dd5184980984a0080144006264b3001306d0018980699849809ba83040375a6128026122026ea80092f5c11598009837000c400a200484700908e011847809baa001423404612402002611c026ea8005005260103d8798000a50a5142280514a084500908a01211402308e01308b01375400260106116026ea81a908801233001308b01308801375401122232330010010042259800800c40122660066120020026600400461220200284700a44b30010018a40011300533002002308e01001422c0522980099804001119baf308e01308b013754611c026116026ea8c0e4c22c04dd5000980399846809ba90024bd70528528a10e02918329844009baa308c0132330010010022259800800c52f5c303d87a80008101800044c8cc89660033001306a308d0137546122020074a14a284580a2661200330014a14c103d87a8000a60103d8798000422c0466120026e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c24c0400400e29462660040046128020028468090910144cc24006600294298103d87a8000a60103d8798000422c0466120026e9c0092f5c1133090019800a51a60103d87a8000a60103d8798000422c0466120026e9ccc24004dd400080125eb8108b012116023758611e026120020026eb4c23c04008cc008008c23c0400508c01489660020031480022600a66004004611c0200284580a4444653001001802c012006800888896600200710018acc00400a2a6611c029211d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc004012612802007309401002cc004c24c0400e6eb4c24c0400a0028029004212202424405222598008014530103d87a80008acc004c1a00062606e6611a02611c0200497ae08cc00400e611e02005303a001400c84400908c01488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064234051330050053094010044234046eb8c23404004dd5984700800984800800a11c0214bd6f7b63048896600260d06114026ea800e264b300100180144c966002003003801c00e264b3001309201003802c01108f011bad001801a12402308f010014234046116026ea800e00284400a44646600200200644b30010018a5eb8226644b30013375e612202611c026ea8c24404c23804dd5181e1847009baa002300a3309001375200a97ae08998480080119802002000c4cc01001000508b01184780800984800800a11a029184600984680984680984680984680984680800c8c23004c23404c23404c23404c23404c23404c23404006444653001001802400d0011112cc00400a2b30010018a518a50423c05159800800c5284566002660086122020046eb4c24404006330010039849008014c248040050034528211602423c0484780a444b30013068308a01375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c966002612e0200519800803c6600200b132598009838800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c2780400e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c28c0400e02d0154280046eb80050a301185000800a13c02375c002613e02004850008c2740400509b01404109b011bac001807c03d09e01184d80800a13202375a00261340200500c426c0461300200284b008c25004dd5002456600260e000313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b3001309e010038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b300130a30100380b40550a0011bae001428c0461400200284f008dd7000984f80801214002309d01001426c05010426c046eb000601f00f42780461360200284c808dd6800984d00801403109b01184c00800a12c023094013754009159800983a000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c2840400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c2980400e033018428c046eb80050a601185180800a14202375c002614402004851808c2800400509e01404d09e011bac00180940490a101184f00800a13802375a002613a0200500f42780461360200284c808dd6800984d00801403109b01184c00800a12c0230940137540091598009825800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c2780400e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c28c0400e02d0154280046eb80050a301185000800a13c02375c002613e02004850008c2740400509b01404109b011bac001807c03d09e01184d80800a13202375a00261340200500c426c0461300200284b008c25004dd50024566002609400313259800800c02e264b3001001806403201913259800984d80801c03a01a84c008dd6800c03109b01184c00800a12c0230940137540091598009824800c4c96600200300b8992cc00400601900c80644c96600261360200700e806a13002375a00300c426c0461300200284b008c25004dd500240290910121220242440484880909101212202309201375400700941a500940e1009425004612a02002849808c2540400a00f007803c01d09601184980800a12202309301002802c01600b005425004612202002847808c2440400a007003801c00d09201184780800a11a02308b013754007001422005222329800800c01200680088896600200510018cc00400e61240200533004309101002001400c84780a4611802611a02611a02611a02611a020032225980098341845009baa0038992cc00400600513259800800c00e0070038992cc004c2480400e00b004423c046eb4006006849008c23c0400508d011845809baa003800a11002912cc0040062900044c014cc008008c2380400508b01488cdc199b82002375a606e6114026ea8004dd6981c1845009baa0019b88480024466062004466ebcc23804c22c04dd50009ba700292cc004cdc4000a40011303a0018800a10c0248888888888888888888888a6002602a02b2301400198090094c0400424446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803214a02899802802985600802214a02375c614a020026eb4c29804004c2a0040050a601198098020018a400123014001984f009baa0179802802c88c9660026104026142026ea8006264b30010018cc0040062b30013375e60446146026ea800cc29804c28c04dd5002456600266ebcc144c28c04dd50009853009851809baa0038800c260050a001425c050a00142580500d42580612c030960184b00a1500230a50130a201375400309001427c04609c6142026ea8c13cc28404dd50012444444445300122223233001001005223259800984600800c4c94cc2b804cdcb248121436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660b06ea4005220100132598009847009858009baa001899194c004dd7185b00800cdd7185b00985b80800cdd7185b008012444a66168029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e0015330b4013372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660bc6ea400522010015330b4013372c9201187665726966795f65643235353139207061796c6f61643a20003732660bc6ea400922010015330b4013372c92011a7665726966795f65643235353139207369676e61747572653a20003732660bc6ea400d2201001325330b5013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660bf3001001a60103d87a8000a60103d879800042d00491010010019800800c00a006b950c2d804004dd6185a009858809baa0018a998578099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660b26ea400922010014a0857008c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c616c020020091305f330b501374e00297ae0899801801985b808012160023758616a02002859808dd71859009857809baa0028acc004c22c04006264a6615c0266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660b06ea0c0440052201001325330af013372c92010e416c6c4f6620726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b804910100100132330010010022259800800c528c5660026600c00c616a0200313300200230b6010018a5042bc04859808dd61859009857809baa0028acc004c23c04006264a6615c0266e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660b06ea0c0440052201001325330af013372c92010e416e794f6620726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b80491010010013302e0012330050050013758616402615e026ea800a2b3001306600189919912998580099b96490112436865636b696e672041744c656173743a20003732660b46ea00092201001325330b1013372c92011941744c656173742073617469736669656420636f756e743a20003732660b66ea00052201001325330b2013372c92011041744c6561737420726573756c743a20003732660b93001001a60103d87a8000a60103d879800042c4049101001001337120060033001001a400122598009980400400144c0bc00620028588090291bad30b3010013758616602616802002615e026ea800a2b300130650018992998570099b9649111436865636b696e67204265666f72653a20003732660b06ea00052201001325330af013372c92010f4265666f726520726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b80491010010013232598009847009858809baa0018acc004c23804c2c404dd5185a80985b0080144cdc49bad30b50130b20137540020071337106eb4c2d404c2c804dd5000801a15e028a5042bc046168020026160026ea8c178c2c004dd50031bad30b20130af0137540051598009832000c4c94cc2b804cdcb24910436865636b696e672041667465723a20003732660b06ea00052201001325330af013372c92010e416674657220726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b80491010010013232598009847009858809baa0018acc004c23804c2c404dd5185a80985b0080144cdc48019bad30b50130b20137540031337100066eb4c2d404c2c804dd5000a15e028a5042bc046168020026160026ea8c2cc04c2c004dd50031bad30b20130af0137540051325330ae013372c920111436865636b696e67205363726970743a20003732660b06ea40052201001325330af013372c92010f53637269707420726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b80491010010013232330010010072259800800c528456600266ebc00cc2c804c2d8040062946266004004616e020028580090b401181619859009ba90014bd701bae30b20130af0137540048560090ac0121580242b0048560090ac011856809baa0019112cc004c02c00a2b30013370e6014004601800719800801c00a900048896600260080071337000026eb4c170c2b804dd5001c26c050ab01203a84b80a1500284b00a15002912cc004cdc4000a400114c103d87a8000899804001000a14e029112cc004c02c00a2b30013370e6014004601800719800801c00a900048896600260080071337000026eb4c170c2b804dd5001c26c050ab01203a84b80a1500284b00a1500248888ca60024444446644646644b30013370e66e04dd6985d80985c009baa30bb01003375a6176026170026ea8c2ec04010006264b30013370f30013758606c6172026ea80329000488cc89660033001309a01001a50a5142e8051325980099b893302300100598008044dd7186080801cdd7186080986100801a036899b800040018a9985e00a4812d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642ec0466e08004016200685d008dd6185f00985d809baa00232980080552000912cc004cdd79813185f009baa002374e0071337000026eb4c1b0c2f804dd5001440050bb01204a3758617c026176026ea800902219b8100200a8801454cc2dc052413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c7461001642d804b3001301c0098a40031480090b501454cc2d8052415a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e74001642d4046eacc2e404c2e8040056600261260260200071480022b300100385800c4c96600261760200915980099b8f375c616c0200291104555344720089bad30b7010018a9985a80a491d657870656374206e616d65203d3d20636f6e7374616e74732e75736472001642d0050b10142e00461720200685b8090b301185c80800998119bab301b30b301375400a6eb8c184c2cc04dd5180f9859809baa0069800802cdd7185b009859809baa301f30b301375400d003801200e9111192cc004c23c04c2c404dd5000c4c96600266ebcc2d804c2cc04dd5185b009859809baa001302f330b501375200a97ae08acc004c23c0660026eacc184c2cc04dd5000c01691010d7374616b696e675f7661756c7400404113259800984a009859809baa0018992cc0040063300100189985b809ba898009bab306330b5013754007006a4504555344720040486616e02617002616a026ea8004cc2dc0400d2f5c10a40140910a40185200c290061480285d008c2dc04c2d004dd5000c54cc2c8052412d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001642c40460c06166026ea80062a661620292014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001642c00515330b10149141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001642c004616a026164026ea80062a661600292013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001642bc046600e008003222232598009847809858809baa0018992cc004cdd7985b009859809baa30b60130b301375460c26166026ea8004c0bccc2d404dd4802a5eb822b3001308f0198009bab306130b301375460c26166026ea800600b48810d7374616b696e675f7661756c7400404113259800984a009859809baa0018992cc0040063300100189985b809ba898009bab306330b501375460c6616a026ea800e00d48904555344720040486616e02617002616a026ea8004cc2dc0400d2f5c10a40140910a40185200c290061480285d008c2dc04c2d004dd5000c288050b10118301859809baa306130b301375400315330b1014901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001642c00515330b1014914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001642c004616a026164026ea80062a661600292013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001642bc046600e0080029112cc004c2340402e26644b30019800985a809859009baa058815cc0bcc2c804dd504880cdd5980f1859009baa091014029159800998139bac30b50130b2013754122026eb8c0c4c2c804dd5180f1859009baa0588acc0066002660406eb0c2d404c2c804dd5048809bae305f30b2013754603c6164026ea81626eb0c180c2c804dd5000cdd618179859009baa05848896600266e1cc05800cc0580162b300130110028cc00400e005223259800984a80985b809baa001899192cc004c25c04c2e404dd5000c4c8ca60026603e010003375860486178026ea80126eb4c2fc0400922259800984e00985f009baa0038acc004cdc499199119b8330713370066e08004dd698379861009baa003002002375a60dc6180026ea8004dd698371860009baa00830c20130bf0137540073001375660da617e026ea8c1b4c2fc04dd50054dd71861008014dd718610098618080120388acc004cdc38009bad306d30bf01375400f13375e6e9c010c09cc2fc04dd5003c5282178028a5042f00515330bd014914365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f617373657429001642f0043758617c02617e020026174026ea800629410b7011833185c809baa3301200400130bb0130b80137540030aa0142d4046601a00e002810214c0285900a14a02859009159800cc004dd6182f9859009baa091019bac30b50130b2013754003330b401306030b2013754603c6164026ea8160cc2d0053001054455534472004bd702444b30013370e6028004602c00b19800802c00a4464b300130950130b70137540031325980099baf30bc0130b90137540026178026172026ea8c2f004c2e404dd5002456600266ebcc198c2e404dd50009833985c809baa30bc0130b901375400913370f3001375660ce6172026ea80066eb8c2f0040166eb8c19c015016180d9bad306730b901375400914a085b00a29410b601185d80985c009baa00185780a16a023300d00500140810a10142c804899b87980082c42440690004dd6982f9859009baa0019bad303130b2013754003002401530010029bac30b50130b201375400323017375a60c26166026ea8005007454cc2c005241856578706563740a2020202076616c69646174655f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a202020202020757364725f61737365742c0a2020202029001642bc0515330b0014918f6578706563740a2020202076616c69646174655f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001642bc050ad0142bc0515330b0014901856578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6d696e745f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642bc046eb0c2cc04c2c004dd50141859809858009baa092018992cc004c2340403226644b3001980098309859809baa0598164c0c0c2cc04dd504900cdd5980f9859809baa09201402d159800998141bac30b60130b3013754124026eb8c0c8c2cc04dd5180f9859809baa0598acc0066002660426eb0c2d804c2cc04dd5049009bae306030b3013754603e6166026ea81666eb0c184c2cc04dd5000ccc2d404c184c2cc04dd5180f9859809baa059330b5014c1054455534472004bd702444b30013370e602e006602e00b159800980900146600200700291192cc004c25804c2e004dd5000c4c8c966002612e026174026ea800626464b3001337120033001375660d6617a026ea8c1acc2f404dd5003cdd71860008044dd718600098608080420348acc004cdc380098371bad306b30bd01375400913375e618002618202004604a617a026ea801229410ba014528217402375a617e020026176026ea800629410b8011833985d009baa3301300400130bc0130b90137540030ab0142d8046601c00e002810a14e0285980a14c02859809159800cc004dd618301859809baa092018014dd6185b009859809baa0019bac303030b30137540b2801a266e1e60020b309201a4001375a60c06166026ea80066eb4c0c8c2cc04dd5000c0090064c00400a6eb0c2d804c2cc04dd5000c8cdc41bad306230b4013754002900020108a9985880a4819e6578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001642c00515330b101491846578706563740a2020202076616c69646174655f72656465656d5f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202020757364725f61737365742c0a2020202029001642c0050ae0142c00515330b1014901856578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6275726e5f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c0046eb0c2d004c2c404dd5014985a009858809baa093018acc004c2440403226644b3001980098301859809baa0598164c0c0c2cc04dd504900cdd5980f9859809baa09201402d159800998141bac30b60130b3013754124026eb8c0c8c2cc04dd5180f9859809baa0598acc004cc896600266e1cc058008c0580122b300130110018cc00400a003223259800984a80985b809baa001899192cc004c1c4c2e404dd5000c4c96600266e1cdd6985f008009bad306930bb01375400713375e617c02617e0200260466176026ea800e29410b801185d009baa0018a5042dc0460cc6172026ea8cc048010004c2ec04c2e004dd5000c2a8050b50119806803000a04085300a1640285280a16402330213758616c026166026ea824804dd718301859809baa301f30b30137540b26eb0c184c2cc04dd5000c5660033001375860c06166026ea8248060053758616c026166026ea80066eb0c0c0c2cc04dd502ca0068984800cc0041661240398008014dd6185b009859809baa00192cc004c060dd69831185a009baa00189848809bad306130b401375400314a08588090084dd698301859809baa0019bad303230b3013754003002401915330b1014901a26578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001642c00515330b101491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001642c0050ae0142c00515330b1014901896578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e77697468647261775f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c0046eb0c2d004c2c404dd5014985a009858809baa093018992cc004c1a4036330013758616a026164026ea80aa44444b30013370e603000a60300091598009809801c4cdc4800cc0040160074800244464b300130980130ba0137540031332259800984e80985e009baa0018992cc004006330010018acc004cdd7981e985f009baa00330c10130be01375400f15980099baf306c30be013754002618202617c026ea800e264b3001309f0130be013754003132325980099b87375a6188020046eb4c1bcc30404dd5003456600266e1cdd69862008009bad306e30c101375400d15980099baf30c40130c501001302930c101375400d1337000113001375660de6182026ea8c1bcc30404dd50054dd71862008064dd7186200986280806203c8a9985f80a493665787065637420726573657276655f6173736574203d3d206d61746368696e675f726571756573742e726573657276655f6173736574001642f80515330bf0149126657870656374207969656c64203d3d206d61746368696e675f726571756573742e7969656c64001642f80515330bf014912b657870656374207072696e636970616c203d3d206d61746368696e675f726571756573742e616d6f756e74001642f804618802002617e026ea80062a6617a02921184578706563746564204f4465706f73697420616374696f6e001642f00460d6617c026ea80061660285d80a1640285d80a162028142162030b10185880c2c4050c301186000985e809baa00185580a1740230be0130bb01375400260d06176026ea8c1a4c2ec04dd500242b4050b80119808003801205285400a1680285380a16802985a809859009baa094014889660033001303430b50137540b702e9819185a809baa094019bab302130b501375412802806a26644b300159800980d8014528c660026128020034a14a285a0090b40144c966002612a02616e026ea80063300198009bac30bb0130b801375412e03375c606e6170026ea8c090c2e004dd502f4dd71833185c009baa302430b80137540bd375a6176026170026ea80050094dd6985d80985c009baa30bb01980084b80cdd7185d80985c009baa302430b80137540bd375a60ca6170026ea80126eb4c0dcc2e004dd500220189b810029812985c009baa00448888c8c8cc8966002613a02617e026ea8016264b30013370e66e04dd6986200800802802456600266e1cdd698620098628080080145660026020017159800cc004cc0bcdd61862009860809baa0a001375c60dc6182026ea8c0b4c30404dd5033c03e6eb0c1bcc30404dd5006ccc30c04c1bcc30404dd518169860809baa067330c3014c01054455534472004bd7052000403915980099b8900398009bac306e30c1013754140034800244b30013375e618c026186026ea8008c31804c31c04c31c04c31c04c31c04c31c04c31c04c31c04c31c04c30c04dd5034c4cdc0000cc004dd598389861809baa0029bae307130c3013754605e6186026ea81a691010455534472004081100143000481c22b3001323371266e0003403260026eb0c0fcc30804dd5034520009119192cc004c0a8006266e0000ccdc199b82001375a60e8618c026ea8010dd698399863009baa0048801a1860298008024dd7186400800cdd7186400986480800a0443758618e026188026ea800902b1bab30c40130c50130c501980085000cdd71862009860809baa302d30c10137540cf375a60dc6182026ea80366eb4c100c30404dd5006a02a899b879800833c28006600e019375a60dc6182026ea80366eb4c100c30404dd5006c03d014005c54cc2fc052418d6578706563740a20202020202076616c69646174655f726573657276655f64656c74615f666f725f6465706f736974280a202020202020202076616c75655f64656c74612c0a202020202020202073657474696e67732e726573657276655f6173736574732c0a202020202020202072657175697265645f757364725f6261636b696e672c0a20202020202029001642f80515330bf014912b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001642f80515330bf014919f6578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202020757364725f61737365742c0a2020202020202020302c0a20202020202029001642f805159800cc004cc0bcdd61862009860809baa0a001375c60dc6182026ea8c0b4c30404dd5033c03e6eb0c1bcc30404dd5006ccc30c04c1bcc30404dd518169860809baa067330c3014c1054455534472004bd704c1c800d00e44cdc3cc00419e14003300700c9bad306e30c101375401b375a60806182026ea803601e80a002e2a6617e02921b36578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a20202020202029001642f80485f00a2a6617e029213a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265001642f80515330bf014913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001642f8053001375860da6180026ea827c066eb8c0fcc30004dd518161860009baa0669bae306e30c001375460586180026ea819a6eb4c30c04c30004dd5002a02485500a17a023004001375a61820261840200cb30013021004899b833370400e0020091480010ba011bad30bf010044284050b501180f985b809baa0038a9985a80a4812e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001642d00530010039bac30b80130b501375400323005375a60c8616c026ea800500a4c00400e9000488cdc00009bad306430b701375400480f22a6616602921886578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6465706f7369745f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c8048acc004c1a003626644b30019800980e185a009baa05a816cc0c4c2d004dd504980cdd59810185a009baa093014031159800998149bac30b70130b4013754126026eb8c2dc04c2d004dd51810185a009baa05a899912cc004c24c04c2d404dd5000c4c8cc896600260100051598009804000c566002b30013096010018a518980e801216c028992cc004c0780062b30019800998141bac30bd0130ba013754132026eb8c19cc2e804dd51813185d009baa0609bac306830ba01375400f330bc01306830ba013754604c6174026ea8180cc2f005301054455534472004bd702444b30013370e603c006603c017159800980c80146600200700291192cc004c27404c2fc04dd5000c4cc89660026144026182026ea8006264b30010018cc0040062b30013375e60e06186026ea800cc31804c30c04dd5003456600266ebcc1c4c30c04dd50009863009861809baa0038acc004cdc49bad307130c30137540073001375660e26186026ea8c1c4c30c04dd50034dd7186300803cdd71838803a0408992cc004c1e8c30c04dd5000c4cdc39bad30c70130c40137540026eb4c1c8c31004dd50024528218202307030c30137540030b9014300050b8014300050b7014300050b60140b50b60185b00c2d80616c02864008c31404c30804dd5000c2c0050bf011861809860009baa001306d30c001375460dc6180026ea800e1640285e808cc05403400502842b8050ba0142b4050ba0122b300198009bac306730ba013754132033758617a026174026ea801e661780260446174026ea8c098c2e804dd50301985e00a60106457355534472004bd702444b30013370e6038004603c01719800805c00a4464b3001309d0130bf0137540031325980099baf30c40130c10137540026188026182026ea8c31004c30404dd5002456600266ebcc1b8c30404dd500098379860809baa30c40130c101375400913370f3001375660de6182026ea80066eb8c310040166eb8c1bc01501e2cc004c2780402626eb4c1bcc30404dd500244cdc199b82375a60de6182026ea80100240290be014528217c028a5042f8046186026180026ea800616e0285e808cc05401400502842a4050ba012264b300130980130ba0137540031325980099b87375a617e0200266e000140222b30013370e6eb4c2fc04c30004004cdc0002001c56600266e1e60026eacc090c2f004dd504d80cdd71812185e009baa302830bc0137540c54881057355534472004064007130990198009bab302430bc01375413603375c60d46178026ea8c0a0c2f004dd503152201045553447200406515330ba01491246578706563742073757364725f6d696e746564203d3d2073757364725f746f5f6d696e74001642e40515330ba014914a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202b2073757364725f746f5f6d696e74001642e40515330ba0149140657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202b20746f74616c5f757364725f7374616b6564001642e4053001375860d06176026ea8268066eb8c0e8c2ec04dd51813985d809baa0619bae306930bb013754604e6176026ea81866eb4c2f804c2ec04dd5000a01a85280a17002302730ba01375400f15330b801491dd6578706563740a2020202076616c69646174655f7374616b655f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020207374616b655f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a2020202020202873657474696e67732e72656769737472792e73757364722c20636f6e7374616e74732e7375736472292c0a2020202020207661756c745f757364725f6265666f72652c0a20202020202063697263756c6174696e675f73757364725f6265666f72652c0a2020202029001642dc0515330b801491a26578706563740a2020202076616c69646174655f7374616b655f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020207374616b655f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e75736472292c0a2020202029001642dc0515330b801491186578706563742073757364725f746f5f6d696e74203e2030001642dc04b30013096010018802c4cdc199b8200500100242d80515330b7014913d6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c207661756c745f757364725f6265666f7265203e2030001642d80515330b701491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001642d80515330b7014911d657870656374207661756c745f757364725f6265666f7265203e3d2030001642d8046eb4c2e804004dd6985d00985d80800cc004dd6185c80985b009baa095019bae303530b60137546044616c026ea81726eb8c190c2d804dd51811185b009baa05c9bad30b90130b6013754002803a13e0285980a60020053758616e026168026ea8006460326eb4c18cc2d404dd5000a016301c30b401375400309c0142c40515330b201491866578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e7374616b655f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c4046eb0c2d404c2c804dd5015185a809859009baa09401899912cc006600260426168026ea816a05b303130b401375412603375660406168026ea824c0500c4566002660526eb0c2dc04c2d004dd5049809bae30b70130b401375460406168026ea816a26644b300130930130b5013754003132332259800980e8014566002603a00313259800980f000c5660033001330283758617a026174026ea826404dd71833985d009baa302630ba0137540c1375860d06174026ea801e661780260446174026ea8c098c2e804dd50301985e00a6106457355534472004bd702444b30013370e603c006603c017159800980c80146600200700291192cc004c27404c2fc04dd5000c4cc89660026144026182026ea8006264b30010018cc0040062b30013375e60e06186026ea800cc31804c30c04dd5003456600266ebcc1c4c30c04dd50009863009861809baa0038acc004cdc49bad307130c30137540073001375660e26186026ea8c1c4c30c04dd50034dd7186300803cdd71838803a0408992cc004c1e4c30c04dd5000c4cdc39bad30c70130c40137540026eb4c1c8c31004dd50024528218202307030c30137540030b9014300050b8014300050b7014300050b60140b50b60185b00c2d80616c02864008c31404c30804dd5000c2c0050bf011861809860009baa001306d30c001375460dc6180026ea800e1640285e808cc05403400502842b8050ba0142b4050ba0122b30013370f3001375660446174026ea8264066eb8c088c2e804dd51813185d009baa060a44105735553447200405c60d600d13259800984c00985d009baa0018992cc004cdc39bad30bf010013370200a00715980099b87375a617e0261800200266e040100222b300130990198009bab302430bc01375413603375c60d46178026ea8c0a0c2f004dd5031522010455534472004065198009bac306930bc013754136033758617e026178026ea80266617c0260d46178026ea8c0a0c2f004dd50311985f00a61054455534472004bd702444b30013370e603c004604001b19800806c00a4464b3001309f0130c10137540031325980099baf30c60130c3013754002618c026186026ea8c31804c30c04dd5002456600266ebcc1c0c30c04dd500098389861809baa30c60130c301375400913370f3001375660e26186026ea80066eb8c318040166eb8c1c401502019b83337046eb4c1c4c30c04dd5002006005c5282180028a50430004618a026184026ea80061720285f808cc05c01400502a42ac050bc0122a66174029211765787065637420757364725f6d696e746564203d3d2030001642e40515330ba01491536578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e6564001642e40515330ba014913e657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20757364725f746f5f72656c65617365001642e4053001375860d06176026ea8268066eb8c0e8c2ec04dd51813985d809baa0619bae306930bb013754604e6176026ea81866eb4c2f804c2ec04dd5000a01a85280a17002302730ba01375400f15330b8014912a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e6564001642dc0515330b801491a86578706563740a2020202076616c69646174655f756e7374616b655f696e70757473280a2020202020206f726465725f696e707574732c0a202020202020756e7374616b655f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202873657474696e67732e72656769737472792e73757364722c20636f6e7374616e74732e7375736472292c0a2020202029001642dc0515330b8014911a65787065637420757364725f746f5f72656c65617365203e2030001642dc053001007a4001223370000266e0ccdc11bad306930bb01375400400800681122a6616e02921236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001642d80515330b7014911c657870656374207661756c745f757364725f6265666f7265203e2030001642d8046eb4c2e804004dd6985d00985d80800cc004dd6185c80985b009baa095019bae303530b60137546044616c026ea81726eb8c190c2d804dd51811185b009baa05c9bad30b90130b6013754002803a13e0285980a60020053758616e026168026ea8006460326eb4c18cc2d404dd5000a016301c30b401375400309c0142c40515330b201491886578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e756e7374616b655f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c4046eb0c2d404c2c804dd5015185a809859009baa0940142bc04857808dc4a40008570090ae0111112cc004cdc39809801180a801c6600200700291192cc004c25004c2d804dd5000c66002617402616e026ea80066eb0c07cc2dc04dd5001ccc068010dd6180f985b809baa003488966002612e026172026ea80062b30013375e617a026174026ea800cc2f404c2e804dd5185e80985d009baa0068acc004cdd79833985d009baa003306830ba013754617a026174026ea801a266e1e60026eacc1a0c2e804dd5001cdd7185e808014dd7185e80985f00801202e3301f301c375a60d06174026ea8018c2f404c2e804dd5000c528216e028a5042dc0515330b80149015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001642dc0485700a168023300c006001407d0a00142c404856808444464b3001308e0130b00137540031325980099baf30b50130b2013754616a026164026ea8c180c2c804dd500098171985a009ba90054bd704566002611c033001375660c06164026ea8c180c2c804dd5000c016910108747265617375727900403d132598009849809859009baa0018992cc004006330010018992cc004c24804c2d004dd5000c4c96600266ebcc2e404c2d804dd5185c80985b009baa0013032330b801375201297ae08acc004c2480660026eacc190c2d804dd5000c026910108747265617375727900404d13259800984b80985b009baa0018992cc0040063300100189985d008029985d008009985d009ba6329800800cdd59833985c809baa00499198008009bab306830ba01375460d06174026ea8024896600200314bd6f7b63044c8cc2f804cdd8185d808009ba632330010013756617a0200444b30010018a5eb7bdb182264661820266ec0c2f804004dd418381bad30bf010013300300330c30100230c10100142fc0466006006618002004617c0200285e0090011112cc00400a2003132332298008034c30804016646600200200a44b30010018998610099bb037520086e9800d2f5bded8c113298009bae30c0010019bab30c1010019862808012444b3001337200100071330c601337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528218c02880144cc31c04cdd81ba9009374c002004861008ca6002003008801a002222598008014400626466453001006986700802cc8cc00400401489660020031330ce01337606ea4010dd4001a5eb7bdb1822653001375c619802003375a619a0200330d10100248896600266e4002000e2661a40266ec0dd48041ba80070058acc004cdc7804001c4c966002615c0200310028998698099bb037520126ea00040090ce0119b800070028998690099bb037520066ea0008cc0180180050cd01219a02186780800a19a0240186eb8c31c04004dd69864008009865008012190028998630099bb037520066e98008cc0180180050c101218202186180800a1820240186eb8c2ec04004dd5985e00800985f008012178024bd7042c40501f42c406162030b10185880a17a0230ba0130b701375400315330b50149012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001642d00460c6616c026ea80062a6616802920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001642cc0515330b40149143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001642cc04617002616a026ea80062a661660292013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001642c804660146eb0c184c2d004dd5004002c2b00501b42b006158030ac0185600a1720230b60130b301375400315330b10149013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001642c00460be6164026ea8c180c2c804dd5000c54cc2c0052401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001642bc0515330b0014914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001642bc046168026162026ea80062a6615e0292013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001642b8046600c6eb0c2cc04c2c004dd500200108a9984300a4812f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c6629001642140464660020026eb0c0d4c22004dd5035112cc004006297ae0899845809ba732323308d01308e010023308d013038308b0137540026611a026ea4cc894cc22c04cdcb2481165369675374727563747572652e636f6e746578743a200037326606a612002611a026ea8005220100153308b013372c92011d5369675374727563747572652e626f64795f70726f7465637465643a200037326606a6076611a026ea8005220100153308b013372c92011b5369675374727563747572652e65787465726e616c5f6161643a200037326606a6074611a026ea8005220100153308b013372c9201165369675374727563747572652e7061796c6f61643a200037326606a6018611a026ea800522010013253308c013372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326606c6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002423004846008dc68009bae309001308d01375400266e28c008dd7181d9846809baa0013371460046eb8c0e8c23404dd500098011bae300c308d013754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e18005208004002422804845008dc6800981b9984680a610b4a5369676e617475726531003308d01308e01308b013754611c026116026ea8004cc234053010140003308d01375200a97ae04bd701846809847008009bac308c0100133002002308d010014228046e50dd980320cc82ba264b30010018acc004c178c20004dd5000c4c9660020030688992cc0040060d3069899912cc0040060d713259800800c1b20d906c899912cc0040060dd13259800800c1be0df06f8992cc004c2380400e2b300100783844c966002003071838c1c60e31332259800800c1ce264b300100183a41d20e90748992cc004c24c0400e260206126020230754240046eb800509301184800800a11c02375c002611e02010848008c2340401d08b0141c108b011bad001837a11c02308b010014224046eb4004c2280400a0d8845808c22004005086011bac001308701002834c1a508801184280800a10602308101375400306741f9067833c19e0ce843008c20c0400908101419107f1bae00142080460fe00283e8dd7000983f00120fe307c00141e86eb8004c1ec00907c183c800a0ee375c00260f000483c8c1d80050741bae001307500241d860e60028388c1bcdd5003415506c415501441550144155014415501441550144155014415507041560ab05582aa0e8307100141bc6eb0004c1c000a0a505241c460dc0028360c1b800a0a1050828414106f1836000a0d4306c002827413a09d04e41b460d40028340c1a800a09904c826413106b1834000a0cc3068002825412a09504a41a460cc0028320c19800a09104882441210671832000a0c43064002823411a08d046419460c40028300c18800a08904482241110631830000a0bc305c37540050424164444653001001802400d001111192cc004c0fc006264b300100180344c966002003007803c01e00f132598009834801c0160108330dd7000a0d23066001419060c46ea800e2b3001303e0018992cc00400600d13259800800c01e00f132598009834801c4cc0e000489660020050078992cc0040063300100a800c4c008c1b000d00a402e01700b805a0da306a00241a100841986eb000600f00741a460cc0028320c188dd5001c566002608400313259800800c01a264b3001001803c01e264b3001306900389981c000912cc00400a00f13259800800c66002015001898011836001a014805c02e01700b41b460d400483420108330dd6000c01e00e8348c19800506418311baa0038acc004c064006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c96600260d800713303b0012259800801402a264b30010018cc00403600313002306f003403500e807403a01c8380c1b400906b402d0691bac001805402906c1834800a0ce375a00260d000500741a460cc0028320c188dd5001c566002603000313259800800c01a264b3001001803c01e00f132598009834801c0160108330dd6800c01d0691833000a0c830623754007159800980b800c4c9660020030068992cc00400600f007803c4c96600260d200700580420cc375a00300741a460cc0028320c188dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260d200700580420cc375c0028348c19800506418311baa003802a0be417c82f905f20be417c82f8c180dd50014106083041820a0c03008305a3754646644a660b666e5924012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a200037326600a6ea416522010013259800981d982e9baa00189929982e99b9649113666f756e642070726f7879207574786f3a3a200037326600e002910100132598009820182f9baa0018992cc0040062b3001303e3060375400313259800800c126264b3001001825412a09504a899912cc0040060991325980098350014401a09a8338c1a00050661bae001306700241a060ca0028318c184dd5000c12105e412209104882420cc306330603754003153305e49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164174601860be6ea8c034c17cdd50009830982f1baa0018a9982e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016416c660080024646600200260086eacc034c17cdd51806982f9baa0022259800800c528456600266e3cdd7183180082e4528c4cc008008c19000505d20c230010013758601260b66ea80e8896600200314bd7044cc178c16cc17c004cc008008c18000505d1800800911919800800801912cc0040062980103d87a80008992cc004c01000626012660be00297ae0899801801983080120b4305f001417444464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100f20c05980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c82d105a1bac305d002375a60b60026466ec0dd4182d8009ba7305c001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a60c0003337149101023a200098008054c18400600a805100a183180144ca6002015306000199b8a489023a200098008054c184006600e66008008004805100a183180120c23063001418066e29220102207d0000341746eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900c20ba3758007133005375a0060051323371491102682700329800800cc030dc68014cdc52450127000044004444b300133710004900044006264664530010069808802ccdc599b800025980099b88002480522903045206e417c66e2ccdc0000acc004cdc4000a40291481822903720be004401866e0c00520203370c002901019b8e00400241706eb800d0601b8a4881022c20002232330010010032259800981b800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002300b00189980299b8400148050cdc599b803370a002900a240c000682b90571803803a264b300100181a40d2264b300100181ac4c96600200303681b40da06d1332259800800c0e2264b30010018acc004c16000a264b300130323054375400513259800800c0ee264b30010018992cc00400607b13259800800c4c96600200303f8992cc0040060810408204102264b300130600038acc004c0e4c16cdd500344c9660020030428992cc004006087043821c10e26644b3001001822c4c966002003046823411a08d132598009833001c4c966002608000313259800800c126264b3001001825412a09504a8992cc004c1a800e02504b419c6eb800506a1833800a0ca30633754017159800981f800c56600260c66ea802e01f048419104841808300c184dd5005411d0631bae001419860c60028308dd7000983100120c63060001417860b86ea801a08282ca08282e8dd7000a0c0305d001416c60ba00503e81f40fa07c82f0c16c005059182d80140f207903c81e20b83059001415c60aa6ea800a07482904c01cc16002207282aa07303981cc0e5059182b000a0a8375c00260aa00482b0c14c0050511bac00181a40d10541828801209e40b902140b902144c96600200302f817c0be2646006609e0086eb400605e8278c13000904a44c96600200302d816c0b62646006609a0086eb400605a8268c12800904840a904640aa05502a815209430470014114608e00502881440a20508240c1140050431bad0013044002812a08a304200141006eb4004c10400a0448210c0fc00503d1bac001303e00280fc07d03f181e000a0743758002607600501c80e2078303900140dc606a6ea801a034819203481b0dd6000c06603281c8c0d8005034181b001405e02f01780ba06e303400140c8606800501580ac05602a81a8c0c800503018171baa010809a0561112cc004c028c0b0dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981a801466002007132598009807800c56600260646ea800a00f00640cd1598009807000c4c9660020030078992cc0040060110088044022264b3001303900380540250361bae00140e4606c00281a0c0c8dd50014566002602400313259800800c01e264b30013038002804c021035181b000a0683032375400500640bc817902f18181baa001802a010802a064802c01600b00540d860660028188c0cc00a007003801c00d0341818800a05e302d375400700140a8444b30013009302b375400713259800800c00a264b30010018992cc00400600913259800800c566002606800519800801c4c966002601c00313259800800c01e264b30010018acc004c0dc00a264b300130110018992cc00400601513259800800c566002607400519800800c032016808a01681ba01700b805c02d03b181c000a06c303437540051598009808000c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c9660026082007013809207c375a0030114104607c00281e0dd6800981e801403903e181d800a072375a002607400500b40ec607000281b0c0d0dd5001402503120623032375400300840d1008804402201081c0c0d400503318189baa0028acc004c0340062b3001303137540050078032064803205c40b8605e6ea800600a805a00a818a00b005802c0150351819000a0603032002801c00e00700340cc60600028170c0b0dd5001c0050290dc3a40006e1d2002804402201100840a0604a60446ea800e2c80f8604200260386ea808a293454cc06924011856616c696461746f722072657475726e65642066616c7365001365640641" + : + "593595010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007370e90004dc3a4005223233001001003223300300130020024888a60024464b30013006001899192cc004c05c00a0091640506eb8c054004c044dd5001c566002600a0031323259800980b80140122c80a0dd7180a80098089baa0038b201e403c601e6ea800a44b30013005300f3754005132323259800980b80144c8c9660026014003159800980a9baa002803459016456600260120031323259800980d80140222c80c0dd6980c800980a9baa0028acc004c0340062b3001301537540050068b202c8b2026404c8098c04cdd5000980b001c59014192cc004c04c0062b30013371290021809000c5a2600e6024002808a2c80a0dd5180a800980a80098081baa0028b201c912cc004c014c03cdd500144c8c8cc896600260300070058b202a375a602a0026eb8c054008c054004c040dd500145900e488c966002600c0031323259800980b80140122c80a0dd6980a80098089baa0038acc004c0140062b3001301137540070028b20248b201e403c601e6ea8009222232323322598009805980a9baa010899191919912cc004c07c00e264b30013011301b3754003132323232323298009812800cdd61812802cdd698128024dd69812801cc0940092222259800981580344cc068dd61815005912cc00400a26603800c44b300100289980d00289980d0048cc004dc3a400d370e90044dc3a4014911192cc004c090c0b8dd500ac4c8c8c966002606c005132332259800981500144c96600260740031330293758607200244b300100280244cc08cc0ec0084c004c0f0009039459037181a9baa0038acc004c0a400a264b3001303a0018998149bac303900122598008014012266046607600426002607800481ca2c81b8c0d4dd5001c566002605a00513259800981d000c4cc0a4dd6181c800912cc00400a009133023303b00213001303c00240e51640dc606a6ea800e2b3001300a0028992cc004c0e80062660526eb0c0e40048966002005004899811981d80109800981e00120728b206e30353754007159800980480144c96600260740031330293758607200244b300100280244cc090c0ec0084c004c0f0009039459037181a9baa0038acc004c02000a264b3001303a0018998149bac303900122598008014012266048607600426002607800481ca2c81b8c0d4dd5001c59033206640cc8199033206630323754002264b300130290018992cc004c0e400626604a607000200f1640d860686ea800e2b300130280018992cc004c0e4006264b3001302b30353754003132323259800981e80144cc0a8c0f000c4cc0a800402e2c81d0c0ec004c0ec004c0d8dd5000c59034181c000c59036181a1baa0038b206440c860646ea8008c0d400e2c8198c0d0004c0d0004c0bcdd500ac5902d09981080a912cc00400a330012303430350019181a181a981a800cdd2a400122232598009814800c4c8c96600260740050048b206e375c607000260686ea800e2b300130280018992cc004c0e40062660506eb0c0e000489660020050058cc00401e607400513001303b002401c81c22c81b0c0d0dd5001c566002605800313259800981c800c4cc0a0dd6181c000912cc00400a00b19800803cc0e800a2600260760048039038459036181a1baa0038acc004c0240062646644b3001303b0018998151bac303a0012259800801401e33001009981e00144c004c0f400900920748b2070375a6070002607200260686ea800e2b30013008001899192cc004c0e800a0091640dc6eb4c0e0004c0d0dd5001c566002600e0031323259800981d00140122c81b8dd6981c000981a1baa0038acc004cdc3a40180031323259800981d00140122c81b8dd7181c000981a1baa0038b206440c88191032206440c88190c0c8dd500124444646644b3001302c30363754005132323232323232323298009821800cc10c022608600f30430069821802cc10c012608600737586086004911111112cc004c130026266024609602226602400e26602400c26602400a2660240082660240062b3001303d304737540051323232323298009bae30500019bae30500059bae30500049bae30500039bae30500024888896600260ac00d13304500b225980080144cc10805066002604860a86ea813a460b060b260b260b20032232330010010032259800800c5284566002600660b600314a3133002002305c001415882ca460b060b260b260b260b260b260b260b200337009000cdc024005374a9001244444446464b300198009111919912cc004c16000a2b300130583062375400314c0103d87a80008a6103d87980004185159800982d801456600260b660c46ea80062980103d87a80008a6103d87b800041851332259800982d000c530103d87b80008acc004c164006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041908320dd6983418329baa0038a6103d8798000418c8318dd6983318319baa00330623754002830906118301baa00130020033001003919191919912cc004c16000a29422b3001305b0028cc004cdd7983318319baa0014c103d87b8000a50a514185132332259800982d8014528c56600260b40051332259800982e18339baa30383068375400d1337100040031337120040028330dd6983498331baa00359800982d18329baa30363066375400f100189806800a0c88a5041908320c18cdd50009bad30673064375400860cc60c66ea800506120c23060375400260c860ca00660c660c06ea8004c188004c178dd5000cc0b4c174dd5004a444b30013055305f37540031323300b375860c860c26ea81608cdd7983298311baa00100230633060375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c194c188dd50014c194c188dd5000c8c8c96600260b260c86ea8c1a0c1a400a200313259800982d000c4c030cc1a0dd418069bad30693066375400497ae08acc004c16c0062005100241908320c190dd5000a0c63067001306337540028029300103d87b8000a50a5141811980099baf9800981918311baa002981918311baa001919192cc004c164c190dd51834183480144006264b3001305a00189806198341ba8300e375a60d260cc6ea80092f5c1159800982d800c400a2004832106418321baa001418c60ce00260c66ea8005005260103d8798000a50a51418114a0830106020c0306330603754002601260c06ea815d05e2330013060305d375401322232330010010042259800800c401226600660ca0026600400460cc002831a4530013300900223375e60c660c06ea8c18cc180dd5181818301baa001300633062375200497ae0a50a51417523052305d375460c2646600200200444b30010018a5eb8503d87a80008101800044c8cc8966003300130573062375460cc0074a14a2830a2660cb30014a14c103d87a8000a60103d87980004184660ca6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c1a000400e294626600400460d2002831906644cc196600294298103d87a8000a60103d87980004184660ca6e9c0092f5c11330659800a51a60103d87a8000a60103d87980004184660ca6e9ccc194dd400080125eb8106120c2375860c860ca0026eb4c190008cc008008c190005061489660020031480022600c6600400460c6002830244b30010018a40011300633002002306300141812222329800800c01600900340044444b30010038800c66002009306900398348016600260d0007375a60d00050014014802106648896600200514c103d87a80008acc004c1540062605c660c460c600497ae08cc00400e60c80053008001400c82f1061488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a2003006418d1330050053069004418c6eb8c188004dd598318009832800a0c614bd6f7b6304896600260a860bc6ea800a26464b30013065002801c590621bad3063001305f37540051641752232330010010032259800800c52f5c1133225980099baf30663063375460cc60c66ea8c0ccc18cdd50011804998329ba90054bd7044cc194008cc0100100062660080080028308c190004c19400506248c184c188c188c188c188c188006460c260c460c460c460c460c460c4003222329800800c012006800888966002005159800800c528c52820c88acc00400629422b3001330043066002375a60cc00319800801cc19c00a60ce002801a294106120c841912259800982a182f1baa0028991919194c004c19800660cc007306600248896600260d4009133030306900713305300213259800982e000c4c8cc896600260dc003132323322598009839001c0422c8378dd718378009bae306f002306f001375860da0031641ac6eb4c1ac004c1b0004c19cdd5001456600260b60031323322598009837000c4c8c8cc896600260e40070108b20de375c60de0026eb8c1bc008c1bc004dd61836800c5906b1bad306b001306c00130673754005159800982f800c4c8ca60026eb4c1b000660da003375a60d80049112cc004c1c000a264646644b300130740038094590711bae3071001375c60e200460e20026eb0c1bc00a2c836860d800260ce6ea800a2b3001303c00189919912cc004c1b8006264646644b3001307200380845906f1bae306f001375c60de00460de0026eb0c1b40062c8358dd69835800983600098339baa0028acc004c0ec00626464b3001306d002805c5906a1bad306b00130673754005159800981d000c4c8c96600260da00500b8b20d4375a60d600260ce6ea800a2c832906520ca4194832906518329baa0018b20ce183300098328009832000982f9baa0028b20ba911194c0040060090034004444b30010028800c660020073067002998021833001000a0064191230613062306230623062001912cc004c150c178dd500144c8c96600260ca0050038b20c4375a60c600260be6ea800a2c82ea44b30010018a400113006330020023063001418137029000488cdc199b82002375a605c60be6ea8004dd69817982f9baa0019b88480024466056004466ebcc18cc180dd50009ba700248888888888888888888888a60024444646600200200a4464b30013070001899192cc004c1c8c1f0dd5000c4c8ca60026eb8c2080400a6eb8c20804c20c040066eb8c2080400572a308201001375861000260fa6ea8006294107b1919800800804112cc0040062980103d87a80008992cc004cdc79bc8375c6104020020091304d3308101374e00297ae089980180198418080120fa375861020200283f8dd7183f183d9baa0028acc004c1bc006264660020026eb0c1fcc1f0dd5001912cc00400629462b300133005005308001001899801001184080800c52820f641f91598009839800c4cc094dd6183f183d9baa0022330040040018acc004c14000626466e24dd6983f800cc004dd6183f984000800d2000912cc004cc01801800a2604a003100141f080f0c1ecdd50014566002609e0031323322598009839183e9baa0028acc004c1c8c1f4dd5184080984100801c4cdc49bad308101307e37540040031337106eb4c20404c1f8dd5001000a0f88a5041f060fe0026eb4c1fcc1f0dd5001983d9baa304b307b375400b1598009827000c4c8cc896600260e460fa6ea800a2b30013072307d37546102026104020071337120026eb4c20404c1f8dd500144cdc40009bad308101307e375400483e2294107c183f8009bad307f307c375400660f66ea8c1f8c1ecdd5002c4c8c8cc004004018896600200314a115980099baf003307d3081010018a51899801001184100800a0f841fc6042660fa60fc60f66ea80092f5c083c907920f241e483c9079183c9baa0019180a800cc04c04e6024025301001091119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c83da26600a00a61020200883d8dd7183d0009bad307b001307d00141ec660260080062900048c05400660e66ea805e600a00b2232598009837983b1baa001899198068008acc004cdd79811983c1baa003307b3078375400915980099baf30483078375400260f660f06ea800e20031641d91641d860f460ee6ea80062c83a8c114c1d8dd51823183b1baa00292cc004cdc4000a4001130050018800a0e6488888888888c8ca60024444446644646644b30013370e66e04dd69847809846009baa308f01003375a611e026118026ea8c23c04010006264b30013370f30013758606c611a026ea80329000488cc89660033001308601001a50a51423c051325980099b893302100100598008044dd7184a80801cdd7184a80984b00801a032899b800040018b2120023370400200b1003423c046eb0c24804c23c04dd5001194c00402a90004896600266ebcc094c24804dd50011ba7003899b80001375a60c46124026ea800a20028480090241bac309201308f0137540048108cdc08010054400a2c845809660026034013148006290012114028b2114023756611a02611c02002b3001307f300e0038a4001159800984700801c4c96600266e3cdd7184500800a4504555344720089bad308b010018b211202308d010038b211602422004611a02002660446eacc068c21c04dd50029bae30573087013754603c610e026ea801a600200b375c611402610e026ea8c078c21c04dd5003400e004803a444b3001300f0028acc004cdc398070011806801c66002007002a4001222598009802001c4cdc00009bad3057308701375400716421404810a2c84100a2c84100a444b3001300f0028acc004cdc398070011806801c66002007002a4001222598009802001c4cdc00009bad3057308701375400716421404810a2c84100a2c84100a444464b3001307b30850137540031325980099baf308a013087013754611402610e026ea8004c0b4cc22404dd4802a5eb822b3001307b98009bab30573087013754003005a450d7374616b696e675f7661756c74004039132598009840009843809baa00189919811800899845809ba898009bab30593089013754007006a441045553447200404066116026118026112026ea8004cc22c0400d2f5c06116026110026ea80062c843008c158c21c04dd5000c5908501459085011844809843009baa0018b210802330060040019111192cc004c1ecc21404dd5000c4c96600266ebcc22804c21c04dd51845009843809baa30573087013754002605a66112026ea40152f5c1159800983dcc004dd5982b9843809baa30573087013754003005a450d7374616b696e675f7661756c74004039132598009840009843809baa00189919811800899845809ba898009bab3059308901375460b26112026ea800e00d4881045553447200404066116026118026112026ea8004cc22c0400d2f5c06116026110026ea80062c843008c158c21c04dd5182b9843809baa0018b210a028b210a023089013086013754003164210046600c008002911112cc004c1ec02e26644b300198009845809844009baa0538164c0c4c22004dd503fcdd5980f9844009baa07f4051159800998149bac308b0130880137540fe6eb8c0ccc22004dd5180f9844009baa0538acc0066002660426eb0c22c04c22004dd503f9bae30573088013754603e6110026ea814e6eb0c160c22004dd5000cdd618189844009baa05348896600266e1cc05000cc0500162b300130110028cc00400e0052232598009841809846809baa001899192cc004c21404c23c04dd5000c4c8ca60026603e0100033758604a6124026ea80126eb4c2540400922259800984500984a009baa0038acc004cdc499199119b8330403370066e08004dd69833984c009baa003002002375a60cc612c026ea8004dd69833184b009baa00830980130950137540073001375660ca612a026ea8c194c25404dd50054dd7184c008014dd7184c00984c8080120388acc004cdc38009bad3065309501375400f13375e6e9c010c0a0c25404dd5003c5282126028a50424c0516424c043758612802612a020026120026ea8006294108e01182f1847809baa33012004001309101308e013754003164230046601c00e002810a2c84480a2c844809159800cc004dd6182b9844009baa07f9bac308b0130880137540033308a0130583088013754603e6110026ea814ccc228053001054455534472004bd702444b30013370e602a004602800b19800802c00a4464b3001308301308d0137540031325980099baf309201308f013754002612402611e026ea8c24804c23c04dd5002456600266ebcc178c23c04dd5000982f9847809baa309201308f01375400913370f3001375660be611e026ea80066eb8c248040166eb8c17c01501618089bad305f308f01375400914a084680a294108d011848809847009baa0018b2118023300e005001408516422404899b879800829c1fe90004dd6982b9844009baa0019bad30333088013754003002401d30010029bac308b01308801375400323017375a60b26112026ea8005006459086014590860145908601459086011bac3089013086013754052611202610c026ea820006264b3001307b00c899912cc006600260b26112026ea815205b3032308901375410003375660406112026ea8200050154566002660546eb0c23004c22404dd5040009bae3034308901375460406112026ea81522b30019800998111bac308c013089013754100026eb8c160c22404dd518101844809baa0549bac305930890137540033308b013059308901375460406112026ea8150cc22c05301054455534472004bd702444b30013370e602a006602a00b159800980900146600200700291192cc004c21004c23804dd5000c4c8c966002610a026120026ea800626464b3001337120033001375660c66126026ea8c18cc24c04dd5003cdd7184b008044dd7184b00984b8080420348acc004cdc380098119bad3063309301375400913375e612c02612e02004604c6126026ea80122941091014528212202375a612a020026122026ea8006294108f01182f9848009baa33013004001309201308f013754003164234046601e00e00281122c84500a2c845009159800cc004dd6182c1844809baa080018014dd61846009844809baa0019bac303230890137540a8801a266e1e60020a908001a4001375a60b06112026ea80066eb4c0d0c22404dd5000c0090084c00400a6eb0c23004c22404dd5000c8cdc41bad305a308a0137540029000200e8b210e028b210e028b210e028b210e023758611402610e026ea80a8c22804c21c04dd504080c56600260fe0191332259800cc004c160c22404dd502a40b660646112026ea8200066eacc080c22404dd504000a02a8acc004cc0a8dd61846009844809baa08001375c60686112026ea8c080c22404dd502a45660026644b30013370e602800460280091598009808800c6600200500191192cc004c20c04c23404dd5000c4c8c96600260ca611e026ea8006264b30013370e6eb4c25004004dd698309848809baa003899baf3094013095010013024309101375400714a0847808c24004dd5000c528211c02305e308f01375466024008002612202611c026ea80062c846008cc0380180050214590890145908901198111bac308c013089013754100026eb8c160c22404dd518101844809baa054375860b26112026ea80062b300198009bac30583089013754100030029bac308c013089013754003375860646112026ea815100344c1fa60020a908001cc00400a6eb0c23004c22404dd5000c96600260306eb4c168c22804dd5000c4c1fcdd6982c9845009baa0018a50422004803a6eb4c160c22404dd5000cdd6981a1844809baa00180120108b210e028b210e028b210e028b210e023758611402610e026ea80a8c22804c21c04dd504080c4c96600260ba01b198009bac308b013088013754057222225980099b87301600530160048acc004c04c00e266e24006600200b003a400122232598009843009848009baa001899912cc004c22c04c24804dd5000c4c8cc0a400456600266ebcc0fcc25004dd5001984b80984a009baa0078acc004cdd79832184a009baa001309701309401375400713259800984680984a009baa001899192cc004cdc39bad309a01002375a60ce612e026ea801a2b30013370e6eb4c26804004dd69833184b809baa0068acc004cdd7984d00984d808009815184b809baa006899b8000898009bab3067309701375460ce612e026ea802a6eb8c268040326eb8c26804c26c0403101e459095014590950145909501184d00800984a809baa0018b212602306330940137540031642480516424804612c026126026ea80062c848808c25004c24404dd500098301848809baa3061309101375400916423c046602200e00481522c84580a2c84580a6116026110026ea82080522259800cc004c0d8c22c04dd502b40be60686116026ea8208066eacc088c22c04dd504100a02e899912cc00566002603600514a319800984100800d28528a11602422c05132598009841809846809baa0018cc00660026eb0c24404c23804dd504280cdd7181c9847009baa3025308e0137540b3375c60bc611c026ea8c094c23804dd502ccdd69848809847009baa0014025375a612202611c026ea8c24406600210a03375c612202611c026ea8c094c23804dd502ccdd6982e9847009baa0049bad3039308e01375400880726e0400a604c611c026ea8011222232323259800984500984a009baa0048992cc004cdc399b81375a61320200200800715980099b87375a6132026134020026eb4c26404c268040222b3001300f00a8acc00660026605e6eb0c26404c25804dd5046809bae30653096013754605a612c026ea818601d375860cc612c026ea8032661300260cc612c026ea8c0b4c25804dd50309984c00a61054455534472004bd7052000403515980099b8900298009bac3065309601375411a034800244b30013375e6136026130026ea8008c26c04c27004c27004c27004c27004c27004c27004c27004c27004c26004dd5031c4cdc0000cc004dd59834184c009baa0029bae30683098013754605e6130026ea818e9101045553447200407d100142580481c22b3001323371266e0003002e60026eb0c100c25c04dd5031520009119192cc004c0a4006266e0000ccdc199b82001375a60d66136026ea8010dd69835184d809baa0048801a1320298008024dd7184e80800cdd7184e80984f00800a04237586138026132026ea800902b1bab309901309a01309a01980084680cdd7184c80984b009baa302d30960137540c3375a60ca612c026ea80326eb4c104c25804dd5006202c899b879800830c23406600c017375a60ca612c026ea80326eb4c104c25804dd50064039015005459094014590940145909401456600330013302f3758613202612c026ea823404dd71832984b009baa302d30960137540c300e9bac30663096013754019330980130663096013754605a612c026ea8184cc26005301054455534472004bd704c09800900d44cdc3cc00418611a03300600b9bad30653096013754019375a6082612c026ea803201c80a802a2c84a0090940145909401459094014c004dd61832184a809baa08c019bae304030950137546058612a026ea81826eb8c194c25404dd51816184a809baa0609bad3098013095013754008808a2c849808c01000566002604200913370666e0801c00401229000212202375a612a020088b2118023020308d01375400716422c0530010039bac308e01308b01375400323005375a60b86118026ea80050094c00400e9000488cdc00009bad305c308d01375400480fa2c844809159800982e006c4cc89660033001301d308a0137540ab02e98199845009baa081019bab3021308a0137541020280b22b30013302b3758611a026114026ea820404dd71846809845009baa3021308a0137540ab13322598009840809845809baa00189919912cc004c02000a2b300130080018acc0056600261080200314a31301d00242340513259800980f000c56600330013302937586126026120026ea821c04dd7182f9848009baa302730900137540b7375860c06120026ea801e661240260c06120026ea8c09cc24004dd502d9984900a601054455534472004bd702444b30013370e60380066038017159800980c80146600200700291192cc004c22c04c25404dd5000c4cc8966002612002612e026ea80062646605c0022b30013375e60d06132026ea800cc27004c26404dd5003456600266ebcc1a4c26404dd5000984e00984c809baa0038acc004cdc49bad306930990137540073001375660d26132026ea8c1a4c26404dd50034dd7184e00803cdd71834803a0408992cc004c1b8c26404dd5000c4cdc39bad309d01309a0137540026eb4c1a8c26804dd500245282130023068309901375400316425c0516425c0516425c046136026130026ea80062c84b008c26404c25804dd50009832984b009baa30663096013754007164250046602c01a002814a2c84880a2c848809159800cc004dd6182f9848009baa087019bac309301309001375400f330920130233090013754604e6120026ea816ccc2480530106457355534472004bd702444b30013370e603a004603801719800805c00a4464b3001308b0130950137540031325980099baf309a013097013754002613402612e026ea8c26804c25c04dd5002456600266ebcc198c25c04dd50009833984b809baa309a01309701375400913370f3001375660ce612e026ea80066eb8c268040166eb8c19c01501e2cc004c2300402626eb4c19cc25c04dd500244cdc199b82375a60ce612e026ea8010024029095014528212a028a50425404613202612c026ea80062c84a008cc058014005029459091012264b300130860130900137540031325980099b87375a612a0200266e000140222b30013370e6eb4c25404c25804004cdc0002001c56600266e1e60026eacc094c24804dd504480cdd718129849009baa302930920137540bb4881057355534472004064007130870198009bab3025309201375411203375c60c46124026ea8c0a4c24804dd502ed220104555344720040651642400516424005164240053001375860c06122026ea8220066eb8c0f0c24404dd518141848809baa05c9bae3061309101375460506122026ea81726eb4c25004c24404dd5000a01a8b211e023028309001375400f164238051642380516423804b30013084010018802c4cdc199b820050010024234051642340516423405164234046eb4c24004004dd6984800984880800cc004dd61847809846009baa083019bae3037308c01375460466118026ea815e6eb8c170c23004dd518119846009baa0579bad308f01308c013754002803a2c84500a60020053758611a026114026ea8006460326eb4c16cc22c04dd5000a00e301d308a01375400316422005164220046eb0c22c04c22004dd50159845809844009baa08201899912cc006600260446114026ea815605d3033308a01375410203375660426114026ea8204050164566002660566eb0c23404c22804dd5040809bae308d01308a01375460426114026ea815626644b3001308101308b013754003132332259800980e8014566002603a00313259800980f000c56600330013302937586126026120026ea821c04dd7182f9848009baa302730900137540b7375860c06120026ea801e661240260466120026ea8c09cc24004dd502d9984900a60106457355534472004bd702444b30013370e60380066038017159800980c80146600200700291192cc004c22c04c25404dd5000c4cc8966002612002612e026ea80062646605c0022b30013375e60d06132026ea800cc27004c26404dd5003456600266ebcc1a4c26404dd5000984e00984c809baa0038acc004cdc49bad306930990137540073001375660d26132026ea8c1a4c26404dd50034dd7184e00803cdd71834803a0408992cc004c1b4c26404dd5000c4cdc39bad309d01309a0137540026eb4c1a8c26804dd500245282130023068309901375400316425c0516425c0516425c046136026130026ea80062c84b008c26404c25804dd50009832984b009baa30663096013754007164250046602c01a002814a2c84880a2c84880915980099b8798009bab3023309001375410e03375c60466120026ea8c09cc24004dd502dd22105735553447200405c604000d132598009843009848009baa0018992cc004cdc39bad3095010013370200a00715980099b87375a612a02612c0200266e040100222b300130870198009bab3025309201375411203375c60c46124026ea8c0a4c24804dd502ed22010455534472004065198009bac30613092013754112033758612a026124026ea8026661280260c46124026ea8c0a4c24804dd502e9984a00a61054455534472004bd702444b30013370e603e004603c01b19800806c00a4464b3001308d0130970137540031325980099baf309c0130990137540026138026132026ea8c27004c26404dd5002456600266ebcc1a0c26404dd50009834984c809baa309c01309901375400913370f3001375660d26132026ea80066eb8c270040166eb8c1a401502019b83337046eb4c1a4c26404dd5002006005c528212e028a50425c046136026130026ea80062c84b008cc06001400502b4590930122c84800a2c84800a2c84800a60026eb0c180c24404dd504400cdd7181e1848809baa302830910137540b9375c60c26122026ea8c0a0c24404dd502e4dd6984a009848809baa001403516423c0460506120026ea801e2c84700a2c84700a2c84700a600200f480024466e00004cdc199b82375a60c26122026ea800801000d02345908d0145908d011bad309001001375a61200261220200330013758611e026118026ea820c066eb8c0dcc23004dd518119846009baa0579bae305c308c01375460466118026ea815e6eb4c23c04c23004dd5000a00e8b21140298008014dd61846809845009baa0019180c9bad305b308b0137540028038c074c22804dd5000c5908801459088011bac308b0130880137540566116026110026ea82080508601210c0237129000210a024214044444b30013370e6028004602600719800801c00a4464b3001308201308c013754003198009848009846809baa0019bac3020308d0137540073301a00437586040611a026ea800d222598009842809847809baa0018acc004cdd79849809848009baa00330930130900137546126026120026ea801a2b30013375e60be6120026ea800cc180c24004dd51849809848009baa006899b8798009bab30603090013754007375c612602005375c61260261280200480b8cc07cc048dd698301848009baa006309301309001375400314a084700a294108e0145908e0122c845808cc034018005020459088012108021111192cc004c1e8c21004dd5000c4c96600266ebcc22404c21804dd51844809843009baa30563086013754002605866110026ea40152f5c1159800983d4c004dd5982b1843009baa30563086013754003005a4508747265617375727900403513259800983f9843009baa0018991980d0008992cc004c1f8c22004dd5000c4c96600266ebcc23404c22804dd51846809845009baa00130303308c01375201297ae08acc004c1fa60026eacc168c22804dd5000c026911087472656173757279004045132598009841809845009baa0018991980f00089984700802998470080099847009ba6329800800cdd5982e9846809baa00499198008009bab305e308e01375460bc611c026ea8024896600200314bd6f7b63044c8cc24804cdd81847808009ba63233001001375661220200444b30010018a5eb7bdb1822646612a0266ec0c24804004dd418119bad30930100133003003309701002309501001424c04660060066128020046124020028480090011112cc00400a2003132332298008034c25804016646600200200a44b300100189984b0099bb037520086e9800d2f5bded8c113298009bae3094010019bab309501001984c808012444b30013372001000713309a01337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528213402880144cc26c04cdd81ba9009374c00200484b808ca6002003008801a002222598008014400626466453001006985100802cc8cc00400401489660020031330a201337606ea4010dd4001a5eb7bdb1822653001375c614002003375a61420200330a50100248896600266e4002000e26614c0266ec0dd48041ba80070058acc004cdc7804001c4c96600261340200310028998538099bb037520126ea00040090a30119b800070028998530099bb037520066ea0008cc0180180050a201214402185180800a1420240186eb8c26c04004dd6984e00800984f0080121380289984d0099bb037520066e98008cc01801800509601212c02184b80800a12a0240186eb8c23c04004dd59848008009849008012120024bd701847009845809baa0018b2112023059308a01375400316422005164220046118026112026ea80062c843808cc024dd6182b9844009baa008005308a0130870137540031642140460aa610c026ea8c158c21804dd5000c5908401459084011844009842809baa0018b210602330053758610e026108026ea8010008896600266e2000520008a6103d87a8000899804801000a0fe22c82d8c8cc004004dd61816182e9baa0572259800800c52f5c1133060374e6464660c460c6004660c4605e60c06ea8004cc188dd4999119b8a489018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241888310dc68009bae30653062375400266e28c008dd7181918311baa0013371460046eb8c0c4c188dd500098011bae300d30623754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241808300dc68009817198312610b4a5369676e617475726531003306230633060375460c660c06ea8004cc18930101400033062375200a97ae04bd70183118318009bac3061001330020023062001417c6e50dd9803a264b3001304a305437540031323232332259800982f001c4c8c8cc896600260c40071300b306200c8b20be375c60be0026eb8c17c008c17c004dd6182e802c5905b1bad305b001375a60b600460b600260b400260aa6ea80062c8298c15c0090554590530c140004c13c004c138004c134004c120dd50014590464590490c10c004c108004c104004c100004c0fc004c0f8004c0f4004c0f0004c0dcdd50014590351802981a9baa323232598009816981b9baa0018992cc004c0c4c0e0dd5000c4c966002605e60726ea8006264646644b300130420038802c5903f181f8009bae303f002303f001303a37540031640e0607860726ea80062c81b8c01cc0e0dd51804181c1baa303b303837540031640d8660066eb0c01cc0dcdd50171191980080098019bab300930393754601260726ea8008896600200314a115980099b8f375c607a00206f14a3133002002303e00140e081d8c004004896600200314bd7044cc0e4c0d8c0e8004cc008008c0ec0050381801001111919800800801912cc0040062980103d87a80008992cc004c0100062600e6607600297ae0899801801981e801206e303b00140e489919912cc004c0dc00626644b3001302a303437540051323232332259800981f001c4c966002606060746ea8006264646644b300130430038992cc004c0d400626464b300130460028074590431bae30440013040375400f159800981a000c56600260806ea801e0191641051640f881f0c0f8dd50034590401bae3040001375c6080004608000260766ea80062c81c8c0f40162c81d8dd7181d800981d801181d800981d000981a9baa0028b206630360011300430370058b2068375c6068002606a0026eb0c0cc0090312264600460600066eb4c0b800902c44c8c008c0b800cdd6981600120548b205018128009812000981180098110009810800980e1baa0018b2034301e0058b203837586038002603800460380026036002602c6ea80422c80a089660026016602a6ea800a26464646644b3001301f003899804180f00289980580100345901c180e0009bad301c002301c001301b0013016375400516405044b3001300b301537540051323232323298009bac301e0019bad301e0049bad301e003980f00124444b30013023005899806181100489980780089919912cc004c09800e01b16408c6eb8c08c004dd7181180298118024590200c078004c074004c070004c06c004c058dd5001459014112cc004c028c050dd500144c8c8c9660026038005133006301b003132598009807000c56600260326ea800a00b1640691598009806800c4c8c966002603e0050078b2038375c603a00260326ea800a2b30013011001899192cc004c07c00a00f164070603a00260326ea800a2c80b9017202e3017375400316406460340026034002602a6ea800a2c80988966002601260266ea800a2646464b3001301b002899804980d0018992cc004c034006264b3001301d001899192cc004c040006264b30013020001899807180f800804c5901d180d9baa0028acc004c03c00626464653001375a6042003375a6042007375a60420049112cc004c09401201d16408830210013020001301b375400516406480c8c064dd5000980e000c5901a180c1baa0028acc004c0300062b3001301837540050058b20328b202c4058602c6ea80062c80c0c064004c064004c050dd50014590121164020300900130043754013149a26cac80101", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_4ProtocolProtocolElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "596880010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a66006920142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a4930657870656374206f75747075745f646174756d3a205472656173757279446174756d203d206f75747075745f6461746100168a99801a492e65787065637420696e7075745f646174756d3a205472656173757279446174756d203d20696e7075745f6461746100168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a49666578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d206d61746368696e675f726571756573742e616d6f756e7400168a99801a493865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00168a99801a4938657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492565787065637420646174756d3a204f72646572446174756d203d20646174756d5f6461746100168a99801a493e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f6964782900168a99801a49376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f72657175657374732900168a99801a4939657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a492b657870656374207661756c745f646174756d3a205661756c74446174756d203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a493b657870656374206c6973742e6c656e677468286f75747075745f696e646963657329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a492e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900168a99801a493565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f69647800168a99801a493365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f69647800168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a492a6578706563742073657474696e67733a2053657474696e6773203d2070726f78792e73657474696e677300168a99801a492f72656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d65723e00164888888888888888888888896600264653001302100198109811000cdc3a400930210024888966002600460426ea800e264b3001005899914c004888c966002600c00313259800800c00e264b300100180240120090048992cc004c0c000e00d00540b46eb80050301816800a056302937540091598009802800c4c9660020030038992cc0040060090048024012264b30013030003803401502d1bae00140c0605a0028158c0a4dd50024009026204c3027375400722259800980298139baa0038992cc00400600513259800800c4c9660020030048992cc004006264b3001302d0018acc004cdc4a400860580030068992cc004c0c8012264b3001300c0018acc004c0bcdd5003402601081822b3001300b0018992cc00400601313259800800c02a01500a8992cc004c0d800e01900b40cc6eb400601481b0c0cc00503118179baa0068acc004c03c0062b3001302f375400d0098042060804205840b08160c0b4dd5002c01d02f18049816000a054803205c3754003005802c01600a8188c0b800502c1817001400e007003801a05e302c00140a860506ea800e002812a444b300130053027375400713259800800c00a264b3001001801c00e007003899912cc00400600b13259800800c01a00d0068992cc004c0c800e01100740bc6eb400600c8190c0bc00502d1bae001302e00240bc60580028150c0a0dd5001c0050254888c966002600c00313259800800c00e264b30010018024012009132598009818001c01a00a8168dd6800c0110301816800a056302937540091598009802800c56600260526ea801200700240a900240988130c09cdd5001a44446465300122259800980598169baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc0040062b300130390028cc00401a33001001804c02100e402100b402103640220110088042074303700140d46eb4004c0d800a00a81b8c0d0005032181a001400e007003801a06a303200140c0605c6ea800e002815a444b3001300b302d375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c0fc00e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c11000e02901341046eb80050441820800a07e375c00260800048208c0f800503c40390144039011403903c1bac001806c03503f181e000a074303c002805c02e01700b40f4607400281c0dd6800981c801402103a181b800a06a375a002606c00500540dc60680028190c0d000a007003801c00d0351819000a060302e375400700140ad223233001001003223300300130020024889660026016605a6ea8042264b300100180a44c96600200313259800800c05a264b30010018992cc00400603113259800800c06603313259800981c801c566002602460686ea801a264b300100180dc4c96600200301c80e44cc896600200301e8992cc00400603f01f899912cc00400604313259800800c08a045022899912cc00400604913259800800c09604b025899912cc00400604f13259800800c4c9660020030298992cc0040062b3001304900289980c007112cc00400a26603401a44b30010028cc00401e330010058cc004dc3a400d370e90044dc3a4014911192cc004c0a8c130dd500e44c9660020030338992cc004006264b300100181ac4c966002003159800982a80144cc8966002606000313259800800c0e6264b300100181d40ea264b3001305a003899814800912cc00400a00f13259800800c6600200313002305d00381f205a81f40fa07d03e417860b600482ca07682b8dd6000c0ea07482d0c15c00505518299baa0058acc004c0bc006264b300100181cc4c96600200303a81d44c96600260b40071330290012259800801401e264b30010018cc0040062600460ba00703e40b503e81f40fa07c82f0c16c00905940ed0571bac00181d40e905a182b800a0aa3053375400b1598009819800c4c9660020030398992cc00400607503a8992cc004c16800e26605200244b3001002803c4c96600200319800800c4c008c17400e07c816a07d03e81f40f905e182d80120b281da0ae375800303a81d20b43057001415460a66ea80162b3001300a0018992cc00400607313259800800c0ea07513259800982d001c4cc0a400489660020050078992cc0040063300100189801182e801c0f902d40fa07d03e81f20bc305b002416503b415c6eb000607503a416860ae00282a8c14cdd5002c566002601200313259800800c0e6264b300100181d40ea264b3001305a003899814800912cc00400a00f13259800800c6600200313002305d00381f205c81f40fa07d03e417860b600482ca07682b8dd6000c0ea07482d0c15c00505518299baa0058acc004c020006264b300100181cc4c96600200303a81d44c96600260b40071330290012259800801401e264b30010018cc0040062600460ba00703e40b903e81f40fa07c82f0c16c00905940ed0571bac00181d40e905a182b800a0aa3053375400b0384140828105020a0414082804c966002605e00313259800800c0e2264b30010018acc004c16000a3300100180440e502d40e505540e607303981ca0b23056001415060a46ea800a2b3001302e0018992cc00400607113259800800c56600260b0005159800981898299baa0018992cc00400607513259800800c4c96600200303c8992cc0040062b3001305c0028cc00400e3300100180640f503240f503240f505940f607b03d81ea0ba305a001416060b400503b81dc0ee07682d8c160005056182a1baa00181ca0a281ca0aa81cc0e6073039416460ac00282a0c148dd500140dd04f209e3050375400260a06ea800e06c829206d03681b40d90561829800a0a2305300281a40d2069034415060a20028278c134dd500e40c904a09980f80c112cc00400a330012225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a00641393702900048888c8cc004004014896600200310058992cc00400626600860b000400d133005305800233003003001415860b000282aa6e012001918291829800c8c148c14cc14c0066e95200048888888c8c8c8cc88c96600200313259800981c982d9baa0028992cc00400608713259800800c4c9660020030458992cc004006264b3001001823c4c96600200313259800800c126264b30010018992cc00400609713259800800c4c96600200304d8992cc004006264b3001001827c4c96600200313259800800c146264b3001001829414a26644b300100182a44c96600200315980098398014660020251980080846600201d19800806466002015198008044566002609860dc6ea801a264b300100182b44c96600200305782bc15e0af1332259800800c166264b300100182d416a0b505a899912cc0040060b913259800800c1760bb05d82ec4cc896600200305f8992cc0040060c1060830418226644b300100183144c966002003063831c18e0c713259800984100801c4cc144048896600200519800809466002605c6100026ea818a4610802610a02610a02610a020032232330010010032259800800c52845660026006610e0200314a313300200230880100142040484280a4610802610a02610a02610a02610a02610a02610a02610a02003374a90014dc02400491111119192cc0066002444646644b3001306b0028acc004c1acc23404dd5000c5300103d87a80008a6103d8798000422c051598009837001456600260dc611a026ea80062980103d87a80008a6103d87b8000422c0513322598009836800c530103d87b80008acc004c1b0006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000423804847008dd69849809848009baa0038a6103d8798000423404846808dd69848809847009baa003308d01375400284580908b011845809baa00130020033001003919191919912cc004c1ac00a29422b3001306e0028cc004cdd79848809847009baa0014c103d87b8000a50a51422c0513233225980098370014528c56600260da005133225980098379849009baa3041309301375400d133710004003133712004002848008dd6984a009848809baa0035980098369848009baa303f309101375400f100189806000a11c028a50423804847008c23804dd50009bad309201308f013754008612202611c026ea800508b01211602308b013754002611e02612002006611c026116026ea8004c23404004c22404dd5000cc0d8c22004dd50042444b30013068308a0137540031323300a3758611e026118026ea81ac8cdd79848009846809baa001002308e01308b01375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c24004c23404dd50014c24004c23404dd5000c8c8c96600260d8611e026ea8c24c04c2500400a2003132598009836800c4c034cc24c04dd418061bad309401309101375400497ae08acc004c1b800620051002423804847008c23c04dd5000a11a02309201001308e0137540028029300103d87b8000a50a514228051980099baf9800981d9846809baa002981d9846809baa001919192cc004c1b0c23c04dd5184980984a0080144006264b3001306d0018980699849809ba83040375a6128026122026ea80092f5c11598009837000c400a200484700908e011847809baa001423404612402002611c026ea8005005260103d8798000a50a5142280514a084500908a01211402308e01308b01375400260106116026ea81a908801233001308b01308801375401122232330010010042259800800c40122660066120020026600400461220200284700a44b30010018a40011300533002002308e01001422c0522980099804001119baf308e01308b013754611c026116026ea8c0e4c22c04dd5000980399846809ba90024bd70528528a10e02918329844009baa308c0132330010010022259800800c52f5c303d87a80008101800044c8cc89660033001306a308d0137546122020074a14a284580a2661200330014a14c103d87a8000a60103d8798000422c0466120026e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c24c0400400e29462660040046128020028468090910144cc24006600294298103d87a8000a60103d8798000422c0466120026e9c0092f5c1133090019800a51a60103d87a8000a60103d8798000422c0466120026e9ccc24004dd400080125eb8108b012116023758611e026120020026eb4c23c04008cc008008c23c0400508c01489660020031480022600a66004004611c0200284580a4444653001001802c012006800888896600200710018acc00400a2a6611c029211d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc004012612802007309401002cc004c24c0400e6eb4c24c0400a0028029004212202424405222598008014530103d87a80008acc004c1a00062606e6611a02611c0200497ae08cc00400e611e02005303a001400c84400908c01488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064234051330050053094010044234046eb8c23404004dd5984700800984800800a11c0214bd6f7b63048896600260d06114026ea800e264b300100180144c966002003003801c00e264b3001309201003802c01108f011bad001801a12402308f010014234046116026ea800e00284400a44646600200200644b30010018a5eb8226644b30013375e612202611c026ea8c24404c23804dd5181e1847009baa002300a3309001375200a97ae08998480080119802002000c4cc01001000508b01184780800984800800a11a029184600984680984680984680984680984680800c8c23004c23404c23404c23404c23404c23404c23404006444653001001802400d0011112cc00400a2b30010018a518a50423c05159800800c5284566002660086122020046eb4c24404006330010039849008014c248040050034528211602423c0484780a444b30013068308a01375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c966002612e0200519800803c6600200b132598009838800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c2780400e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c28c0400e02d0154280046eb80050a301185000800a13c02375c002613e02004850008c2740400509b01404109b011bac001807c03d09e01184d80800a13202375a00261340200500c426c0461300200284b008c25004dd5002456600260e000313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b3001309e010038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b300130a30100380b40550a0011bae001428c0461400200284f008dd7000984f80801214002309d01001426c05010426c046eb000601f00f42780461360200284c808dd6800984d00801403109b01184c00800a12c023094013754009159800983a000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c2840400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c2980400e033018428c046eb80050a601185180800a14202375c002614402004851808c2800400509e01404d09e011bac00180940490a101184f00800a13802375a002613a0200500f42780461360200284c808dd6800984d00801403109b01184c00800a12c0230940137540091598009825800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c2780400e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c28c0400e02d0154280046eb80050a301185000800a13c02375c002613e02004850008c2740400509b01404109b011bac001807c03d09e01184d80800a13202375a00261340200500c426c0461300200284b008c25004dd50024566002609400313259800800c02e264b3001001806403201913259800984d80801c03a01a84c008dd6800c03109b01184c00800a12c0230940137540091598009824800c4c96600200300b8992cc00400601900c80644c96600261360200700e806a13002375a00300c426c0461300200284b008c25004dd500240290910121220242440484880909101212202309201375400700941a500940e1009425004612a02002849808c2540400a00f007803c01d09601184980800a12202309301002802c01600b005425004612202002847808c2440400a007003801c00d09201184780800a11a02308b013754007001422005222329800800c01200680088896600200510018cc00400e61240200533004309101002001400c84780a4611802611a02611a02611a02611a020032225980098341845009baa0038992cc00400600513259800800c00e0070038992cc004c2480400e00b004423c046eb4006006849008c23c0400508d011845809baa003800a11002912cc0040062900044c014cc008008c2380400508b01488cdc199b82002375a606e6114026ea8004dd6981c1845009baa0019b88480024466062004466ebcc23804c22c04dd50009ba700292cc004cdc4000a40011303a0018800a10c0248888888888888888888888a6002602a02b2301400198090094c0400424446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803214a02899802802985600802214a02375c614a020026eb4c29804004c2a0040050a601198098020018a400123014001984f009baa0179802802c88c9660026104026142026ea8006264b30010018cc0040062b30013375e60446146026ea800cc29804c28c04dd5002456600266ebcc144c28c04dd50009853009851809baa0038800c260050a001425c050a00142580500d42580612c030960184b00a1500230a50130a201375400309001427c04609c6142026ea8c13cc28404dd50012444444445300122223233001001005223259800984600800c4c94cc2b804cdcb248121436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660b06ea4005220100132598009847009858009baa001899194c004dd7185b00800cdd7185b00985b80800cdd7185b008012444a66168029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e0015330b4013372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660bc6ea400522010015330b4013372c9201187665726966795f65643235353139207061796c6f61643a20003732660bc6ea400922010015330b4013372c92011a7665726966795f65643235353139207369676e61747572653a20003732660bc6ea400d2201001325330b5013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660bf3001001a60103d87a8000a60103d879800042d00491010010019800800c00a006b950c2d804004dd6185a009858809baa0018a998578099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660b26ea400922010014a0857008c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c616c020020091305f330b501374e00297ae0899801801985b808012160023758616a02002859808dd71859009857809baa0028acc004c22c04006264a6615c0266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660b06ea0c0440052201001325330af013372c92010e416c6c4f6620726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b804910100100132330010010022259800800c528c5660026600c00c616a0200313300200230b6010018a5042bc04859808dd61859009857809baa0028acc004c23c04006264a6615c0266e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660b06ea0c0440052201001325330af013372c92010e416e794f6620726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b80491010010013302e0012330050050013758616402615e026ea800a2b3001306600189919912998580099b96490112436865636b696e672041744c656173743a20003732660b46ea00092201001325330b1013372c92011941744c656173742073617469736669656420636f756e743a20003732660b66ea00052201001325330b2013372c92011041744c6561737420726573756c743a20003732660b93001001a60103d87a8000a60103d879800042c4049101001001337120060033001001a400122598009980400400144c0bc00620028588090291bad30b3010013758616602616802002615e026ea800a2b300130650018992998570099b9649111436865636b696e67204265666f72653a20003732660b06ea00052201001325330af013372c92010f4265666f726520726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b80491010010013232598009847009858809baa0018acc004c23804c2c404dd5185a80985b0080144cdc49bad30b50130b20137540020071337106eb4c2d404c2c804dd5000801a15e028a5042bc046168020026160026ea8c178c2c004dd50031bad30b20130af0137540051598009832000c4c94cc2b804cdcb24910436865636b696e672041667465723a20003732660b06ea00052201001325330af013372c92010e416674657220726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b80491010010013232598009847009858809baa0018acc004c23804c2c404dd5185a80985b0080144cdc48019bad30b50130b20137540031337100066eb4c2d404c2c804dd5000a15e028a5042bc046168020026160026ea8c2cc04c2c004dd50031bad30b20130af0137540051325330ae013372c920111436865636b696e67205363726970743a20003732660b06ea40052201001325330af013372c92010f53637269707420726573756c743a20003732660b33001001a60103d87a8000a60103d879800042b80491010010013232330010010072259800800c528456600266ebc00cc2c804c2d8040062946266004004616e020028580090b401181619859009ba90014bd701bae30b20130af0137540048560090ac0121580242b0048560090ac011856809baa0019112cc004c02c00a2b30013370e6014004601800719800801c00a900048896600260080071337000026eb4c170c2b804dd5001c26c050ab01203a84b80a1500284b00a15002912cc004cdc4000a400114c103d87a8000899804001000a14e029112cc004c02c00a2b30013370e6014004601800719800801c00a900048896600260080071337000026eb4c170c2b804dd5001c26c050ab01203a84b80a1500284b00a1500248888ca60024444446644646644b30013370e66e04dd6985d80985c009baa30bb01003375a6176026170026ea8c2ec04010006264b30013370f30013758606c6172026ea80329000488cc89660033001309a01001a50a5142e8051325980099b893302300100598008044dd7186080801cdd7186080986100801a036899b800040018a9985e00a4812d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642ec0466e08004016200685d008dd6185f00985d809baa00232980080552000912cc004cdd79813185f009baa002374e0071337000026eb4c1b0c2f804dd5001440050bb01204a3758617c026176026ea800902219b8100200a8801454cc2dc052413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c7461001642d804b3001301c0098a40031480090b501454cc2d8052415a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e74001642d4046eacc2e404c2e8040056600261260260200071480022b300100385800c4c96600261760200915980099b8f375c616c0200291104555344720089bad30b7010018a9985a80a491d657870656374206e616d65203d3d20636f6e7374616e74732e75736472001642d0050b10142e00461720200685b8090b301185c80800998119bab301b30b301375400a6eb8c184c2cc04dd5180f9859809baa0069800802cdd7185b009859809baa301f30b301375400d003801200e9111192cc004c23c04c2c404dd5000c4c96600266ebcc2d804c2cc04dd5185b009859809baa001302f330b501375200a97ae08acc004c23c0660026eacc184c2cc04dd5000c01691010d7374616b696e675f7661756c7400404113259800984a009859809baa0018992cc0040063300100189985b809ba898009bab306330b5013754007006a4504555344720040486616e02617002616a026ea8004cc2dc0400d2f5c10a40140910a40185200c290061480285d008c2dc04c2d004dd5000c54cc2c8052412d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001642c40460c06166026ea80062a661620292014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001642c00515330b10149141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001642c004616a026164026ea80062a661600292013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001642bc046600e008003222232598009847809858809baa0018992cc004cdd7985b009859809baa30b60130b301375460c26166026ea8004c0bccc2d404dd4802a5eb822b3001308f0198009bab306130b301375460c26166026ea800600b48810d7374616b696e675f7661756c7400404113259800984a009859809baa0018992cc0040063300100189985b809ba898009bab306330b501375460c6616a026ea800e00d48904555344720040486616e02617002616a026ea8004cc2dc0400d2f5c10a40140910a40185200c290061480285d008c2dc04c2d004dd5000c288050b10118301859809baa306130b301375400315330b1014901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001642c00515330b1014914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001642c004616a026164026ea80062a661600292013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001642bc046600e0080029112cc004c2340402e26644b30019800985a809859009baa058815cc0bcc2c804dd504880cdd5980f1859009baa091014029159800998139bac30b50130b2013754122026eb8c0c4c2c804dd5180f1859009baa0588acc0066002660406eb0c2d404c2c804dd5048809bae305f30b2013754603c6164026ea81626eb0c180c2c804dd5000cdd618179859009baa05848896600266e1cc05800cc0580162b300130110028cc00400e005223259800984a80985b809baa001899192cc004c25c04c2e404dd5000c4c8ca60026603e010003375860486178026ea80126eb4c2fc0400922259800984e00985f009baa0038acc004cdc499199119b8330713370066e08004dd698379861009baa003002002375a60dc6180026ea8004dd698371860009baa00830c20130bf0137540073001375660da617e026ea8c1b4c2fc04dd50054dd71861008014dd718610098618080120388acc004cdc38009bad306d30bf01375400f13375e6e9c010c09cc2fc04dd5003c5282178028a5042f00515330bd014914365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f617373657429001642f0043758617c02617e020026174026ea800629410b7011833185c809baa3301200400130bb0130b80137540030aa0142d4046601a00e002810214c0285900a14a02859009159800cc004dd6182f9859009baa091019bac30b50130b2013754003330b401306030b2013754603c6164026ea8160cc2d0053001054455534472004bd702444b30013370e6028004602c00b19800802c00a4464b300130950130b70137540031325980099baf30bc0130b90137540026178026172026ea8c2f004c2e404dd5002456600266ebcc198c2e404dd50009833985c809baa30bc0130b901375400913370f3001375660ce6172026ea80066eb8c2f0040166eb8c19c015016180d9bad306730b901375400914a085b00a29410b601185d80985c009baa00185780a16a023300d00500140810a10142c804899b87980082c42440690004dd6982f9859009baa0019bad303130b2013754003002401530010029bac30b50130b201375400323017375a60c26166026ea8005007454cc2c005241856578706563740a2020202076616c69646174655f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a202020202020757364725f61737365742c0a2020202029001642bc0515330b0014918f6578706563740a2020202076616c69646174655f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001642bc050ad0142bc0515330b0014901856578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6d696e745f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642bc046eb0c2cc04c2c004dd50141859809858009baa092018992cc004c2340403226644b3001980098309859809baa0598164c0c0c2cc04dd504900cdd5980f9859809baa09201402d159800998141bac30b60130b3013754124026eb8c0c8c2cc04dd5180f9859809baa0598acc0066002660426eb0c2d804c2cc04dd5049009bae306030b3013754603e6166026ea81666eb0c184c2cc04dd5000ccc2d404c184c2cc04dd5180f9859809baa059330b5014c1054455534472004bd702444b30013370e602e006602e00b159800980900146600200700291192cc004c25804c2e004dd5000c4c8c966002612e026174026ea800626464b3001337120033001375660d6617a026ea8c1acc2f404dd5003cdd71860008044dd718600098608080420348acc004cdc380098371bad306b30bd01375400913375e618002618202004604a617a026ea801229410ba014528217402375a617e020026176026ea800629410b8011833985d009baa3301300400130bc0130b90137540030ab0142d8046601c00e002810a14e0285980a14c02859809159800cc004dd618301859809baa092018014dd6185b009859809baa0019bac303030b30137540b2801a266e1e60020b309201a4001375a60c06166026ea80066eb4c0c8c2cc04dd5000c0090064c00400a6eb0c2d804c2cc04dd5000c8cdc41bad306230b4013754002900020108a9985880a4819e6578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001642c00515330b101491846578706563740a2020202076616c69646174655f72656465656d5f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202020757364725f61737365742c0a2020202029001642c0050ae0142c00515330b1014901856578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6275726e5f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c0046eb0c2d004c2c404dd5014985a009858809baa093018acc004c2440403226644b3001980098301859809baa0598164c0c0c2cc04dd504900cdd5980f9859809baa09201402d159800998141bac30b60130b3013754124026eb8c0c8c2cc04dd5180f9859809baa0598acc004cc896600266e1cc058008c0580122b300130110018cc00400a003223259800984a80985b809baa001899192cc004c1c4c2e404dd5000c4c96600266e1cdd6985f008009bad306930bb01375400713375e617c02617e0200260466176026ea800e29410b801185d009baa0018a5042dc0460cc6172026ea8cc048010004c2ec04c2e004dd5000c2a8050b50119806803000a04085300a1640285280a16402330213758616c026166026ea824804dd718301859809baa301f30b30137540b26eb0c184c2cc04dd5000c5660033001375860c06166026ea8248060053758616c026166026ea80066eb0c0c0c2cc04dd502ca0068984800cc0041661240398008014dd6185b009859809baa00192cc004c060dd69831185a009baa00189848809bad306130b401375400314a08588090084dd698301859809baa0019bad303230b3013754003002401915330b1014901a26578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001642c00515330b101491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001642c0050ae0142c00515330b1014901896578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e77697468647261775f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c0046eb0c2d004c2c404dd5014985a009858809baa093018992cc004c1a4036330013758616a026164026ea80aa44444b30013370e603000a60300091598009809801c4cdc4800cc0040160074800244464b300130980130ba0137540031332259800984e80985e009baa0018992cc004006330010018acc004cdd7981e985f009baa00330c10130be01375400f15980099baf306c30be013754002618202617c026ea800e264b3001309f0130be013754003132325980099b87375a6188020046eb4c1bcc30404dd5003456600266e1cdd69862008009bad306e30c101375400d15980099baf30c40130c501001302930c101375400d1337000113001375660de6182026ea8c1bcc30404dd50054dd71862008064dd7186200986280806203c8a9985f80a493665787065637420726573657276655f6173736574203d3d206d61746368696e675f726571756573742e726573657276655f6173736574001642f80515330bf0149126657870656374207969656c64203d3d206d61746368696e675f726571756573742e7969656c64001642f80515330bf014912b657870656374207072696e636970616c203d3d206d61746368696e675f726571756573742e616d6f756e74001642f804618802002617e026ea80062a6617a02921184578706563746564204f4465706f73697420616374696f6e001642f00460d6617c026ea80061660285d80a1640285d80a162028142162030b10185880c2c4050c301186000985e809baa00185580a1740230be0130bb01375400260d06176026ea8c1a4c2ec04dd500242b4050b80119808003801205285400a1680285380a16802985a809859009baa094014889660033001303430b50137540b702e9819185a809baa094019bab302130b501375412802806a26644b300159800980d8014528c660026128020034a14a285a0090b40144c966002612a02616e026ea80063300198009bac30bb0130b801375412e03375c606e6170026ea8c090c2e004dd502f4dd71833185c009baa302430b80137540bd375a6176026170026ea80050094dd6985d80985c009baa30bb01980084b80cdd7185d80985c009baa302430b80137540bd375a60ca6170026ea80126eb4c0dcc2e004dd500220189b810029812985c009baa00448888c8c8cc8966002613a02617e026ea8016264b30013370e66e04dd6986200800802802456600266e1cdd698620098628080080145660026020017159800cc004cc0bcdd61862009860809baa0a001375c60dc6182026ea8c0b4c30404dd5033c03e6eb0c1bcc30404dd5006ccc30c04c1bcc30404dd518169860809baa067330c3014c01054455534472004bd7052000403915980099b8900398009bac306e30c1013754140034800244b30013375e618c026186026ea8008c31804c31c04c31c04c31c04c31c04c31c04c31c04c31c04c31c04c30c04dd5034c4cdc0000cc004dd598389861809baa0029bae307130c3013754605e6186026ea81a691010455534472004081100143000481c22b3001323371266e0003403260026eb0c0fcc30804dd5034520009119192cc004c0a8006266e0000ccdc199b82001375a60e8618c026ea8010dd698399863009baa0048801a1860298008024dd7186400800cdd7186400986480800a0443758618e026188026ea800902b1bab30c40130c50130c501980085000cdd71862009860809baa302d30c10137540cf375a60dc6182026ea80366eb4c100c30404dd5006a02a899b879800833c28006600e019375a60dc6182026ea80366eb4c100c30404dd5006c03d014005c54cc2fc052418d6578706563740a20202020202076616c69646174655f726573657276655f64656c74615f666f725f6465706f736974280a202020202020202076616c75655f64656c74612c0a202020202020202073657474696e67732e726573657276655f6173736574732c0a202020202020202072657175697265645f757364725f6261636b696e672c0a20202020202029001642f80515330bf014912b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001642f80515330bf014919f6578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202020757364725f61737365742c0a2020202020202020302c0a20202020202029001642f805159800cc004cc0bcdd61862009860809baa0a001375c60dc6182026ea8c0b4c30404dd5033c03e6eb0c1bcc30404dd5006ccc30c04c1bcc30404dd518169860809baa067330c3014c1054455534472004bd704c1c800d00e44cdc3cc00419e14003300700c9bad306e30c101375401b375a60806182026ea803601e80a002e2a6617e02921b36578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a20202020202029001642f80485f00a2a6617e029213a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265001642f80515330bf014913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001642f8053001375860da6180026ea827c066eb8c0fcc30004dd518161860009baa0669bae306e30c001375460586180026ea819a6eb4c30c04c30004dd5002a02485500a17a023004001375a61820261840200cb30013021004899b833370400e0020091480010ba011bad30bf010044284050b501180f985b809baa0038a9985a80a4812e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001642d00530010039bac30b80130b501375400323005375a60c8616c026ea800500a4c00400e9000488cdc00009bad306430b701375400480f22a6616602921886578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e6465706f7369745f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c8048acc004c1a003626644b30019800980e185a009baa05a816cc0c4c2d004dd504980cdd59810185a009baa093014031159800998149bac30b70130b4013754126026eb8c2dc04c2d004dd51810185a009baa05a899912cc004c24c04c2d404dd5000c4c8cc896600260100051598009804000c566002b30013096010018a518980e801216c028992cc004c0780062b30019800998141bac30bd0130ba013754132026eb8c19cc2e804dd51813185d009baa0609bac306830ba01375400f330bc01306830ba013754604c6174026ea8180cc2f005301054455534472004bd702444b30013370e603c006603c017159800980c80146600200700291192cc004c27404c2fc04dd5000c4cc89660026144026182026ea8006264b30010018cc0040062b30013375e60e06186026ea800cc31804c30c04dd5003456600266ebcc1c4c30c04dd50009863009861809baa0038acc004cdc49bad307130c30137540073001375660e26186026ea8c1c4c30c04dd50034dd7186300803cdd71838803a0408992cc004c1e8c30c04dd5000c4cdc39bad30c70130c40137540026eb4c1c8c31004dd50024528218202307030c30137540030b9014300050b8014300050b7014300050b60140b50b60185b00c2d80616c02864008c31404c30804dd5000c2c0050bf011861809860009baa001306d30c001375460dc6180026ea800e1640285e808cc05403400502842b8050ba0142b4050ba0122b300198009bac306730ba013754132033758617a026174026ea801e661780260446174026ea8c098c2e804dd50301985e00a60106457355534472004bd702444b30013370e6038004603c01719800805c00a4464b3001309d0130bf0137540031325980099baf30c40130c10137540026188026182026ea8c31004c30404dd5002456600266ebcc1b8c30404dd500098379860809baa30c40130c101375400913370f3001375660de6182026ea80066eb8c310040166eb8c1bc01501e2cc004c2780402626eb4c1bcc30404dd500244cdc199b82375a60de6182026ea80100240290be014528217c028a5042f8046186026180026ea800616e0285e808cc05401400502842a4050ba012264b300130980130ba0137540031325980099b87375a617e0200266e000140222b30013370e6eb4c2fc04c30004004cdc0002001c56600266e1e60026eacc090c2f004dd504d80cdd71812185e009baa302830bc0137540c54881057355534472004064007130990198009bab302430bc01375413603375c60d46178026ea8c0a0c2f004dd503152201045553447200406515330ba01491246578706563742073757364725f6d696e746564203d3d2073757364725f746f5f6d696e74001642e40515330ba014914a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202b2073757364725f746f5f6d696e74001642e40515330ba0149140657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202b20746f74616c5f757364725f7374616b6564001642e4053001375860d06176026ea8268066eb8c0e8c2ec04dd51813985d809baa0619bae306930bb013754604e6176026ea81866eb4c2f804c2ec04dd5000a01a85280a17002302730ba01375400f15330b801491dd6578706563740a2020202076616c69646174655f7374616b655f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020207374616b655f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a2020202020202873657474696e67732e72656769737472792e73757364722c20636f6e7374616e74732e7375736472292c0a2020202020207661756c745f757364725f6265666f72652c0a20202020202063697263756c6174696e675f73757364725f6265666f72652c0a2020202029001642dc0515330b801491a26578706563740a2020202076616c69646174655f7374616b655f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020207374616b655f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e75736472292c0a2020202029001642dc0515330b801491186578706563742073757364725f746f5f6d696e74203e2030001642dc04b30013096010018802c4cdc199b8200500100242d80515330b7014913d6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c207661756c745f757364725f6265666f7265203e2030001642d80515330b701491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001642d80515330b7014911d657870656374207661756c745f757364725f6265666f7265203e3d2030001642d8046eb4c2e804004dd6985d00985d80800cc004dd6185c80985b009baa095019bae303530b60137546044616c026ea81726eb8c190c2d804dd51811185b009baa05c9bad30b90130b6013754002803a13e0285980a60020053758616e026168026ea8006460326eb4c18cc2d404dd5000a016301c30b401375400309c0142c40515330b201491866578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e7374616b655f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c4046eb0c2d404c2c804dd5015185a809859009baa09401899912cc006600260426168026ea816a05b303130b401375412603375660406168026ea824c0500c4566002660526eb0c2dc04c2d004dd5049809bae30b70130b401375460406168026ea816a26644b300130930130b5013754003132332259800980e8014566002603a00313259800980f000c5660033001330283758617a026174026ea826404dd71833985d009baa302630ba0137540c1375860d06174026ea801e661780260446174026ea8c098c2e804dd50301985e00a6106457355534472004bd702444b30013370e603c006603c017159800980c80146600200700291192cc004c27404c2fc04dd5000c4cc89660026144026182026ea8006264b30010018cc0040062b30013375e60e06186026ea800cc31804c30c04dd5003456600266ebcc1c4c30c04dd50009863009861809baa0038acc004cdc49bad307130c30137540073001375660e26186026ea8c1c4c30c04dd50034dd7186300803cdd71838803a0408992cc004c1e4c30c04dd5000c4cdc39bad30c70130c40137540026eb4c1c8c31004dd50024528218202307030c30137540030b9014300050b8014300050b7014300050b60140b50b60185b00c2d80616c02864008c31404c30804dd5000c2c0050bf011861809860009baa001306d30c001375460dc6180026ea800e1640285e808cc05403400502842b8050ba0142b4050ba0122b30013370f3001375660446174026ea8264066eb8c088c2e804dd51813185d009baa060a44105735553447200405c60d600d13259800984c00985d009baa0018992cc004cdc39bad30bf010013370200a00715980099b87375a617e0261800200266e040100222b300130990198009bab302430bc01375413603375c60d46178026ea8c0a0c2f004dd5031522010455534472004065198009bac306930bc013754136033758617e026178026ea80266617c0260d46178026ea8c0a0c2f004dd50311985f00a61054455534472004bd702444b30013370e603c004604001b19800806c00a4464b3001309f0130c10137540031325980099baf30c60130c3013754002618c026186026ea8c31804c30c04dd5002456600266ebcc1c0c30c04dd500098389861809baa30c60130c301375400913370f3001375660e26186026ea80066eb8c318040166eb8c1c401502019b83337046eb4c1c4c30c04dd5002006005c5282180028a50430004618a026184026ea80061720285f808cc05c01400502a42ac050bc0122a66174029211765787065637420757364725f6d696e746564203d3d2030001642e40515330ba01491536578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e6564001642e40515330ba014913e657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20757364725f746f5f72656c65617365001642e4053001375860d06176026ea8268066eb8c0e8c2ec04dd51813985d809baa0619bae306930bb013754604e6176026ea81866eb4c2f804c2ec04dd5000a01a85280a17002302730ba01375400f15330b8014912a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e6564001642dc0515330b801491a86578706563740a2020202076616c69646174655f756e7374616b655f696e70757473280a2020202020206f726465725f696e707574732c0a202020202020756e7374616b655f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202873657474696e67732e72656769737472792e73757364722c20636f6e7374616e74732e7375736472292c0a2020202029001642dc0515330b8014911a65787065637420757364725f746f5f72656c65617365203e2030001642dc053001007a4001223370000266e0ccdc11bad306930bb01375400400800681122a6616e02921236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001642d80515330b7014911c657870656374207661756c745f757364725f6265666f7265203e2030001642d8046eb4c2e804004dd6985d00985d80800cc004dd6185c80985b009baa095019bae303530b60137546044616c026ea81726eb8c190c2d804dd51811185b009baa05c9bad30b90130b6013754002803a13e0285980a60020053758616e026168026ea8006460326eb4c18cc2d404dd5000a016301c30b401375400309c0142c40515330b201491886578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e756e7374616b655f7065726d697373696f6e2c0a2020202020207369676e6174757265732c0a20202020202074782e76616c69646974795f72616e67652c0a20202020202074782e7769746864726177616c732c0a2020202029001642c4046eb0c2d404c2c804dd5015185a809859009baa0940142bc04857808dc4a40008570090ae0111112cc004cdc39809801180a801c6600200700291192cc004c25004c2d804dd5000c66002617402616e026ea80066eb0c07cc2dc04dd5001ccc068010dd6180f985b809baa003488966002612e026172026ea80062b30013375e617a026174026ea800cc2f404c2e804dd5185e80985d009baa0068acc004cdd79833985d009baa003306830ba013754617a026174026ea801a266e1e60026eacc1a0c2e804dd5001cdd7185e808014dd7185e80985f00801202e3301f301c375a60d06174026ea8018c2f404c2e804dd5000c528216e028a5042dc0515330b80149015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001642dc0485700a168023300c006001407d0a00142c404856808444464b3001308e0130b00137540031325980099baf30b50130b2013754616a026164026ea8c180c2c804dd500098171985a009ba90054bd704566002611c033001375660c06164026ea8c180c2c804dd5000c016910108747265617375727900403d132598009849809859009baa0018992cc004006330010018992cc004c24804c2d004dd5000c4c96600266ebcc2e404c2d804dd5185c80985b009baa0013032330b801375201297ae08acc004c2480660026eacc190c2d804dd5000c026910108747265617375727900404d13259800984b80985b009baa0018992cc0040063300100189985d008029985d008009985d009ba6329800800cdd59833985c809baa00499198008009bab306830ba01375460d06174026ea8024896600200314bd6f7b63044c8cc2f804cdd8185d808009ba632330010013756617a0200444b30010018a5eb7bdb182264661820266ec0c2f804004dd418381bad30bf010013300300330c30100230c10100142fc0466006006618002004617c0200285e0090011112cc00400a2003132332298008034c30804016646600200200a44b30010018998610099bb037520086e9800d2f5bded8c113298009bae30c0010019bab30c1010019862808012444b3001337200100071330c601337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528218c02880144cc31c04cdd81ba9009374c002004861008ca6002003008801a002222598008014400626466453001006986700802cc8cc00400401489660020031330ce01337606ea4010dd4001a5eb7bdb1822653001375c619802003375a619a0200330d10100248896600266e4002000e2661a40266ec0dd48041ba80070058acc004cdc7804001c4c966002615c0200310028998698099bb037520126ea00040090ce0119b800070028998690099bb037520066ea0008cc0180180050cd01219a02186780800a19a0240186eb8c31c04004dd69864008009865008012190028998630099bb037520066e98008cc0180180050c101218202186180800a1820240186eb8c2ec04004dd5985e00800985f008012178024bd7042c40501f42c406162030b10185880a17a0230ba0130b701375400315330b50149012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001642d00460c6616c026ea80062a6616802920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001642cc0515330b40149143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001642cc04617002616a026ea80062a661660292013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001642c804660146eb0c184c2d004dd5004002c2b00501b42b006158030ac0185600a1720230b60130b301375400315330b10149013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001642c00460be6164026ea8c180c2c804dd5000c54cc2c0052401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001642bc0515330b0014914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001642bc046168026162026ea80062a6615e0292013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001642b8046600c6eb0c2cc04c2c004dd500200108a9984300a4812f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c6629001642140464660020026eb0c0d4c22004dd5035112cc004006297ae0899845809ba732323308d01308e010023308d013038308b0137540026611a026ea4cc894cc22c04cdcb2481165369675374727563747572652e636f6e746578743a200037326606a612002611a026ea8005220100153308b013372c92011d5369675374727563747572652e626f64795f70726f7465637465643a200037326606a6076611a026ea8005220100153308b013372c92011b5369675374727563747572652e65787465726e616c5f6161643a200037326606a6074611a026ea8005220100153308b013372c9201165369675374727563747572652e7061796c6f61643a200037326606a6018611a026ea800522010013253308c013372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326606c6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002423004846008dc68009bae309001308d01375400266e28c008dd7181d9846809baa0013371460046eb8c0e8c23404dd500098011bae300c308d013754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e18005208004002422804845008dc6800981b9984680a610b4a5369676e617475726531003308d01308e01308b013754611c026116026ea8004cc234053010140003308d01375200a97ae04bd701846809847008009bac308c0100133002002308d010014228046e50dd980320cc82ba264b30010018acc004c178c20004dd5000c4c9660020030688992cc0040060d3069899912cc0040060d713259800800c1b20d906c899912cc0040060dd13259800800c1be0df06f8992cc004c2380400e2b300100783844c966002003071838c1c60e31332259800800c1ce264b300100183a41d20e90748992cc004c24c0400e260206126020230754240046eb800509301184800800a11c02375c002611e02010848008c2340401d08b0141c108b011bad001837a11c02308b010014224046eb4004c2280400a0d8845808c22004005086011bac001308701002834c1a508801184280800a10602308101375400306741f9067833c19e0ce843008c20c0400908101419107f1bae00142080460fe00283e8dd7000983f00120fe307c00141e86eb8004c1ec00907c183c800a0ee375c00260f000483c8c1d80050741bae001307500241d860e60028388c1bcdd5003415506c415501441550144155014415501441550144155014415507041560ab05582aa0e8307100141bc6eb0004c1c000a0a505241c460dc0028360c1b800a0a1050828414106f1836000a0d4306c002827413a09d04e41b460d40028340c1a800a09904c826413106b1834000a0cc3068002825412a09504a41a460cc0028320c19800a09104882441210671832000a0c43064002823411a08d046419460c40028300c18800a08904482241110631830000a0bc305c37540050424164444653001001802400d001111192cc004c0fc006264b300100180344c966002003007803c01e00f132598009834801c0160108330dd7000a0d23066001419060c46ea800e2b3001303e0018992cc00400600d13259800800c01e00f132598009834801c4cc0e000489660020050078992cc0040063300100a800c4c008c1b000d00a402e01700b805a0da306a00241a100841986eb000600f00741a460cc0028320c188dd5001c566002608400313259800800c01a264b3001001803c01e264b3001306900389981c000912cc00400a00f13259800800c66002015001898011836001a014805c02e01700b41b460d400483420108330dd6000c01e00e8348c19800506418311baa0038acc004c064006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c96600260d800713303b0012259800801402a264b30010018cc00403600313002306f003403500e807403a01c8380c1b400906b402d0691bac001805402906c1834800a0ce375a00260d000500741a460cc0028320c188dd5001c566002603000313259800800c01a264b3001001803c01e00f132598009834801c0160108330dd6800c01d0691833000a0c830623754007159800980b800c4c9660020030068992cc00400600f007803c4c96600260d200700580420cc375a00300741a460cc0028320c188dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260d200700580420cc375c0028348c19800506418311baa003802a0be417c82f905f20be417c82f8c180dd50014106083041820a0c03008305a3754646644a660b666e5924012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a200037326600a6ea416522010013259800981d982e9baa00189929982e99b9649113666f756e642070726f7879207574786f3a3a200037326600e002910100132598009820182f9baa0018992cc0040062b3001303e3060375400313259800800c126264b3001001825412a09504a899912cc0040060991325980098350014401a09a8338c1a00050661bae001306700241a060ca0028318c184dd5000c12105e412209104882420cc306330603754003153305e49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164174601860be6ea8c034c17cdd50009830982f1baa0018a9982e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016416c660080024646600200260086eacc034c17cdd51806982f9baa0022259800800c528456600266e3cdd7183180082e4528c4cc008008c19000505d20c230010013758601260b66ea80e8896600200314bd7044cc178c16cc17c004cc008008c18000505d1800800911919800800801912cc0040062980103d87a80008992cc004c01000626012660be00297ae0899801801983080120b4305f001417444464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100f20c05980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c82d105a1bac305d002375a60b60026466ec0dd4182d8009ba7305c001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a60c0003337149101023a200098008054c18400600a805100a183180144ca6002015306000199b8a489023a200098008054c184006600e66008008004805100a183180120c23063001418066e29220102207d0000341746eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900c20ba3758007133005375a0060051323371491102682700329800800cc030dc68014cdc52450127000044004444b300133710004900044006264664530010069808802ccdc599b800025980099b88002480522903045206e417c66e2ccdc0000acc004cdc4000a40291481822903720be004401866e0c00520203370c002901019b8e00400241706eb800d0601b8a4881022c20002232330010010032259800981b800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002300b00189980299b8400148050cdc599b803370a002900a240c000682b90571803803a264b300100181a40d2264b300100181ac4c96600200303681b40da06d1332259800800c0e2264b30010018acc004c16000a264b300130323054375400513259800800c0ee264b30010018992cc00400607b13259800800c4c96600200303f8992cc0040060810408204102264b300130600038acc004c0e4c16cdd500344c9660020030428992cc004006087043821c10e26644b3001001822c4c966002003046823411a08d132598009833001c4c966002608000313259800800c126264b3001001825412a09504a8992cc004c1a800e02504b419c6eb800506a1833800a0ca30633754017159800981f800c56600260c66ea802e01f048419104841808300c184dd5005411d0631bae001419860c60028308dd7000983100120c63060001417860b86ea801a08282ca08282e8dd7000a0c0305d001416c60ba00503e81f40fa07c82f0c16c005059182d80140f207903c81e20b83059001415c60aa6ea800a07482904c01cc16002207282aa07303981cc0e5059182b000a0a8375c00260aa00482b0c14c0050511bac00181a40d10541828801209e40b902140b902144c96600200302f817c0be2646006609e0086eb400605e8278c13000904a44c96600200302d816c0b62646006609a0086eb400605a8268c12800904840a904640aa05502a815209430470014114608e00502881440a20508240c1140050431bad0013044002812a08a304200141006eb4004c10400a0448210c0fc00503d1bac001303e00280fc07d03f181e000a0743758002607600501c80e2078303900140dc606a6ea801a034819203481b0dd6000c06603281c8c0d8005034181b001405e02f01780ba06e303400140c8606800501580ac05602a81a8c0c800503018171baa010809a0561112cc004c028c0b0dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981a801466002007132598009807800c56600260646ea800a00f00640cd1598009807000c4c9660020030078992cc0040060110088044022264b3001303900380540250361bae00140e4606c00281a0c0c8dd50014566002602400313259800800c01e264b30013038002804c021035181b000a0683032375400500640bc817902f18181baa001802a010802a064802c01600b00540d860660028188c0cc00a007003801c00d0341818800a05e302d375400700140a8444b30013009302b375400713259800800c00a264b30010018992cc00400600913259800800c566002606800519800801c4c966002601c00313259800800c01e264b30010018acc004c0dc00a264b300130110018992cc00400601513259800800c566002607400519800800c032016808a01681ba01700b805c02d03b181c000a06c303437540051598009808000c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c9660026082007013809207c375a0030114104607c00281e0dd6800981e801403903e181d800a072375a002607400500b40ec607000281b0c0d0dd5001402503120623032375400300840d1008804402201081c0c0d400503318189baa0028acc004c0340062b3001303137540050078032064803205c40b8605e6ea800600a805a00a818a00b005802c0150351819000a0603032002801c00e00700340cc60600028170c0b0dd5001c0050290dc3a40006e1d2002804402201100840a0604a60446ea800e2c80f8604200260386ea808a293454cc06924011856616c696461746f722072657475726e65642066616c7365001365640641" + : + "593595010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007370e90004dc3a4005223233001001003223300300130020024888a60024464b30013006001899192cc004c05c00a0091640506eb8c054004c044dd5001c566002600a0031323259800980b80140122c80a0dd7180a80098089baa0038b201e403c601e6ea800a44b30013005300f3754005132323259800980b80144c8c9660026014003159800980a9baa002803459016456600260120031323259800980d80140222c80c0dd6980c800980a9baa0028acc004c0340062b3001301537540050068b202c8b2026404c8098c04cdd5000980b001c59014192cc004c04c0062b30013371290021809000c5a2600e6024002808a2c80a0dd5180a800980a80098081baa0028b201c912cc004c014c03cdd500144c8c8cc896600260300070058b202a375a602a0026eb8c054008c054004c040dd500145900e488c966002600c0031323259800980b80140122c80a0dd6980a80098089baa0038acc004c0140062b3001301137540070028b20248b201e403c601e6ea8009222232323322598009805980a9baa010899191919912cc004c07c00e264b30013011301b3754003132323232323298009812800cdd61812802cdd698128024dd69812801cc0940092222259800981580344cc068dd61815005912cc00400a26603800c44b300100289980d00289980d0048cc004dc3a400d370e90044dc3a4014911192cc004c090c0b8dd500ac4c8c8c966002606c005132332259800981500144c96600260740031330293758607200244b300100280244cc08cc0ec0084c004c0f0009039459037181a9baa0038acc004c0a400a264b3001303a0018998149bac303900122598008014012266046607600426002607800481ca2c81b8c0d4dd5001c566002605a00513259800981d000c4cc0a4dd6181c800912cc00400a009133023303b00213001303c00240e51640dc606a6ea800e2b3001300a0028992cc004c0e80062660526eb0c0e40048966002005004899811981d80109800981e00120728b206e30353754007159800980480144c96600260740031330293758607200244b300100280244cc090c0ec0084c004c0f0009039459037181a9baa0038acc004c02000a264b3001303a0018998149bac303900122598008014012266048607600426002607800481ca2c81b8c0d4dd5001c59033206640cc8199033206630323754002264b300130290018992cc004c0e400626604a607000200f1640d860686ea800e2b300130280018992cc004c0e4006264b3001302b30353754003132323259800981e80144cc0a8c0f000c4cc0a800402e2c81d0c0ec004c0ec004c0d8dd5000c59034181c000c59036181a1baa0038b206440c860646ea8008c0d400e2c8198c0d0004c0d0004c0bcdd500ac5902d09981080a912cc00400a330012303430350019181a181a981a800cdd2a400122232598009814800c4c8c96600260740050048b206e375c607000260686ea800e2b300130280018992cc004c0e40062660506eb0c0e000489660020050058cc00401e607400513001303b002401c81c22c81b0c0d0dd5001c566002605800313259800981c800c4cc0a0dd6181c000912cc00400a00b19800803cc0e800a2600260760048039038459036181a1baa0038acc004c0240062646644b3001303b0018998151bac303a0012259800801401e33001009981e00144c004c0f400900920748b2070375a6070002607200260686ea800e2b30013008001899192cc004c0e800a0091640dc6eb4c0e0004c0d0dd5001c566002600e0031323259800981d00140122c81b8dd6981c000981a1baa0038acc004cdc3a40180031323259800981d00140122c81b8dd7181c000981a1baa0038b206440c88191032206440c88190c0c8dd500124444646644b3001302c30363754005132323232323232323298009821800cc10c022608600f30430069821802cc10c012608600737586086004911111112cc004c130026266024609602226602400e26602400c26602400a2660240082660240062b3001303d304737540051323232323298009bae30500019bae30500059bae30500049bae30500039bae30500024888896600260ac00d13304500b225980080144cc10805066002604860a86ea813a460b060b260b260b20032232330010010032259800800c5284566002600660b600314a3133002002305c001415882ca460b060b260b260b260b260b260b260b200337009000cdc024005374a9001244444446464b300198009111919912cc004c16000a2b300130583062375400314c0103d87a80008a6103d87980004185159800982d801456600260b660c46ea80062980103d87a80008a6103d87b800041851332259800982d000c530103d87b80008acc004c164006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041908320dd6983418329baa0038a6103d8798000418c8318dd6983318319baa00330623754002830906118301baa00130020033001003919191919912cc004c16000a29422b3001305b0028cc004cdd7983318319baa0014c103d87b8000a50a514185132332259800982d8014528c56600260b40051332259800982e18339baa30383068375400d1337100040031337120040028330dd6983498331baa00359800982d18329baa30363066375400f100189806800a0c88a5041908320c18cdd50009bad30673064375400860cc60c66ea800506120c23060375400260c860ca00660c660c06ea8004c188004c178dd5000cc0b4c174dd5004a444b30013055305f37540031323300b375860c860c26ea81608cdd7983298311baa00100230633060375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c194c188dd50014c194c188dd5000c8c8c96600260b260c86ea8c1a0c1a400a200313259800982d000c4c030cc1a0dd418069bad30693066375400497ae08acc004c16c0062005100241908320c190dd5000a0c63067001306337540028029300103d87b8000a50a5141811980099baf9800981918311baa002981918311baa001919192cc004c164c190dd51834183480144006264b3001305a00189806198341ba8300e375a60d260cc6ea80092f5c1159800982d800c400a2004832106418321baa001418c60ce00260c66ea8005005260103d8798000a50a51418114a0830106020c0306330603754002601260c06ea815d05e2330013060305d375401322232330010010042259800800c401226600660ca0026600400460cc002831a4530013300900223375e60c660c06ea8c18cc180dd5181818301baa001300633062375200497ae0a50a51417523052305d375460c2646600200200444b30010018a5eb8503d87a80008101800044c8cc8966003300130573062375460cc0074a14a2830a2660cb30014a14c103d87a8000a60103d87980004184660ca6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c1a000400e294626600400460d2002831906644cc196600294298103d87a8000a60103d87980004184660ca6e9c0092f5c11330659800a51a60103d87a8000a60103d87980004184660ca6e9ccc194dd400080125eb8106120c2375860c860ca0026eb4c190008cc008008c190005061489660020031480022600c6600400460c6002830244b30010018a40011300633002002306300141812222329800800c01600900340044444b30010038800c66002009306900398348016600260d0007375a60d00050014014802106648896600200514c103d87a80008acc004c1540062605c660c460c600497ae08cc00400e60c80053008001400c82f1061488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a2003006418d1330050053069004418c6eb8c188004dd598318009832800a0c614bd6f7b6304896600260a860bc6ea800a26464b30013065002801c590621bad3063001305f37540051641752232330010010032259800800c52f5c1133225980099baf30663063375460cc60c66ea8c0ccc18cdd50011804998329ba90054bd7044cc194008cc0100100062660080080028308c190004c19400506248c184c188c188c188c188c188006460c260c460c460c460c460c460c4003222329800800c012006800888966002005159800800c528c52820c88acc00400629422b3001330043066002375a60cc00319800801cc19c00a60ce002801a294106120c841912259800982a182f1baa0028991919194c004c19800660cc007306600248896600260d4009133030306900713305300213259800982e000c4c8cc896600260dc003132323322598009839001c0422c8378dd718378009bae306f002306f001375860da0031641ac6eb4c1ac004c1b0004c19cdd5001456600260b60031323322598009837000c4c8c8cc896600260e40070108b20de375c60de0026eb8c1bc008c1bc004dd61836800c5906b1bad306b001306c00130673754005159800982f800c4c8ca60026eb4c1b000660da003375a60d80049112cc004c1c000a264646644b300130740038094590711bae3071001375c60e200460e20026eb0c1bc00a2c836860d800260ce6ea800a2b3001303c00189919912cc004c1b8006264646644b3001307200380845906f1bae306f001375c60de00460de0026eb0c1b40062c8358dd69835800983600098339baa0028acc004c0ec00626464b3001306d002805c5906a1bad306b00130673754005159800981d000c4c8c96600260da00500b8b20d4375a60d600260ce6ea800a2c832906520ca4194832906518329baa0018b20ce183300098328009832000982f9baa0028b20ba911194c0040060090034004444b30010028800c660020073067002998021833001000a0064191230613062306230623062001912cc004c150c178dd500144c8c96600260ca0050038b20c4375a60c600260be6ea800a2c82ea44b30010018a400113006330020023063001418137029000488cdc199b82002375a605c60be6ea8004dd69817982f9baa0019b88480024466056004466ebcc18cc180dd50009ba700248888888888888888888888a60024444646600200200a4464b30013070001899192cc004c1c8c1f0dd5000c4c8ca60026eb8c2080400a6eb8c20804c20c040066eb8c2080400572a308201001375861000260fa6ea8006294107b1919800800804112cc0040062980103d87a80008992cc004cdc79bc8375c6104020020091304d3308101374e00297ae089980180198418080120fa375861020200283f8dd7183f183d9baa0028acc004c1bc006264660020026eb0c1fcc1f0dd5001912cc00400629462b300133005005308001001899801001184080800c52820f641f91598009839800c4cc094dd6183f183d9baa0022330040040018acc004c14000626466e24dd6983f800cc004dd6183f984000800d2000912cc004cc01801800a2604a003100141f080f0c1ecdd50014566002609e0031323322598009839183e9baa0028acc004c1c8c1f4dd5184080984100801c4cdc49bad308101307e37540040031337106eb4c20404c1f8dd5001000a0f88a5041f060fe0026eb4c1fcc1f0dd5001983d9baa304b307b375400b1598009827000c4c8cc896600260e460fa6ea800a2b30013072307d37546102026104020071337120026eb4c20404c1f8dd500144cdc40009bad308101307e375400483e2294107c183f8009bad307f307c375400660f66ea8c1f8c1ecdd5002c4c8c8cc004004018896600200314a115980099baf003307d3081010018a51899801001184100800a0f841fc6042660fa60fc60f66ea80092f5c083c907920f241e483c9079183c9baa0019180a800cc04c04e6024025301001091119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c83da26600a00a61020200883d8dd7183d0009bad307b001307d00141ec660260080062900048c05400660e66ea805e600a00b2232598009837983b1baa001899198068008acc004cdd79811983c1baa003307b3078375400915980099baf30483078375400260f660f06ea800e20031641d91641d860f460ee6ea80062c83a8c114c1d8dd51823183b1baa00292cc004cdc4000a4001130050018800a0e6488888888888c8ca60024444446644646644b30013370e66e04dd69847809846009baa308f01003375a611e026118026ea8c23c04010006264b30013370f30013758606c611a026ea80329000488cc89660033001308601001a50a51423c051325980099b893302100100598008044dd7184a80801cdd7184a80984b00801a032899b800040018b2120023370400200b1003423c046eb0c24804c23c04dd5001194c00402a90004896600266ebcc094c24804dd50011ba7003899b80001375a60c46124026ea800a20028480090241bac309201308f0137540048108cdc08010054400a2c845809660026034013148006290012114028b2114023756611a02611c02002b3001307f300e0038a4001159800984700801c4c96600266e3cdd7184500800a4504555344720089bad308b010018b211202308d010038b211602422004611a02002660446eacc068c21c04dd50029bae30573087013754603c610e026ea801a600200b375c611402610e026ea8c078c21c04dd5003400e004803a444b3001300f0028acc004cdc398070011806801c66002007002a4001222598009802001c4cdc00009bad3057308701375400716421404810a2c84100a2c84100a444b3001300f0028acc004cdc398070011806801c66002007002a4001222598009802001c4cdc00009bad3057308701375400716421404810a2c84100a2c84100a444464b3001307b30850137540031325980099baf308a013087013754611402610e026ea8004c0b4cc22404dd4802a5eb822b3001307b98009bab30573087013754003005a450d7374616b696e675f7661756c74004039132598009840009843809baa00189919811800899845809ba898009bab30593089013754007006a441045553447200404066116026118026112026ea8004cc22c0400d2f5c06116026110026ea80062c843008c158c21c04dd5000c5908501459085011844809843009baa0018b210802330060040019111192cc004c1ecc21404dd5000c4c96600266ebcc22804c21c04dd51845009843809baa30573087013754002605a66112026ea40152f5c1159800983dcc004dd5982b9843809baa30573087013754003005a450d7374616b696e675f7661756c74004039132598009840009843809baa00189919811800899845809ba898009bab3059308901375460b26112026ea800e00d4881045553447200404066116026118026112026ea8004cc22c0400d2f5c06116026110026ea80062c843008c158c21c04dd5182b9843809baa0018b210a028b210a023089013086013754003164210046600c008002911112cc004c1ec02e26644b300198009845809844009baa0538164c0c4c22004dd503fcdd5980f9844009baa07f4051159800998149bac308b0130880137540fe6eb8c0ccc22004dd5180f9844009baa0538acc0066002660426eb0c22c04c22004dd503f9bae30573088013754603e6110026ea814e6eb0c160c22004dd5000cdd618189844009baa05348896600266e1cc05000cc0500162b300130110028cc00400e0052232598009841809846809baa001899192cc004c21404c23c04dd5000c4c8ca60026603e0100033758604a6124026ea80126eb4c2540400922259800984500984a009baa0038acc004cdc499199119b8330403370066e08004dd69833984c009baa003002002375a60cc612c026ea8004dd69833184b009baa00830980130950137540073001375660ca612a026ea8c194c25404dd50054dd7184c008014dd7184c00984c8080120388acc004cdc38009bad3065309501375400f13375e6e9c010c0a0c25404dd5003c5282126028a50424c0516424c043758612802612a020026120026ea8006294108e01182f1847809baa33012004001309101308e013754003164230046601c00e002810a2c84480a2c844809159800cc004dd6182b9844009baa07f9bac308b0130880137540033308a0130583088013754603e6110026ea814ccc228053001054455534472004bd702444b30013370e602a004602800b19800802c00a4464b3001308301308d0137540031325980099baf309201308f013754002612402611e026ea8c24804c23c04dd5002456600266ebcc178c23c04dd5000982f9847809baa309201308f01375400913370f3001375660be611e026ea80066eb8c248040166eb8c17c01501618089bad305f308f01375400914a084680a294108d011848809847009baa0018b2118023300e005001408516422404899b879800829c1fe90004dd6982b9844009baa0019bad30333088013754003002401d30010029bac308b01308801375400323017375a60b26112026ea8005006459086014590860145908601459086011bac3089013086013754052611202610c026ea820006264b3001307b00c899912cc006600260b26112026ea815205b3032308901375410003375660406112026ea8200050154566002660546eb0c23004c22404dd5040009bae3034308901375460406112026ea81522b30019800998111bac308c013089013754100026eb8c160c22404dd518101844809baa0549bac305930890137540033308b013059308901375460406112026ea8150cc22c05301054455534472004bd702444b30013370e602a006602a00b159800980900146600200700291192cc004c21004c23804dd5000c4c8c966002610a026120026ea800626464b3001337120033001375660c66126026ea8c18cc24c04dd5003cdd7184b008044dd7184b00984b8080420348acc004cdc380098119bad3063309301375400913375e612c02612e02004604c6126026ea80122941091014528212202375a612a020026122026ea8006294108f01182f9848009baa33013004001309201308f013754003164234046601e00e00281122c84500a2c845009159800cc004dd6182c1844809baa080018014dd61846009844809baa0019bac303230890137540a8801a266e1e60020a908001a4001375a60b06112026ea80066eb4c0d0c22404dd5000c0090084c00400a6eb0c23004c22404dd5000c8cdc41bad305a308a0137540029000200e8b210e028b210e028b210e028b210e023758611402610e026ea80a8c22804c21c04dd504080c56600260fe0191332259800cc004c160c22404dd502a40b660646112026ea8200066eacc080c22404dd504000a02a8acc004cc0a8dd61846009844809baa08001375c60686112026ea8c080c22404dd502a45660026644b30013370e602800460280091598009808800c6600200500191192cc004c20c04c23404dd5000c4c8c96600260ca611e026ea8006264b30013370e6eb4c25004004dd698309848809baa003899baf3094013095010013024309101375400714a0847808c24004dd5000c528211c02305e308f01375466024008002612202611c026ea80062c846008cc0380180050214590890145908901198111bac308c013089013754100026eb8c160c22404dd518101844809baa054375860b26112026ea80062b300198009bac30583089013754100030029bac308c013089013754003375860646112026ea815100344c1fa60020a908001cc00400a6eb0c23004c22404dd5000c96600260306eb4c168c22804dd5000c4c1fcdd6982c9845009baa0018a50422004803a6eb4c160c22404dd5000cdd6981a1844809baa00180120108b210e028b210e028b210e028b210e023758611402610e026ea80a8c22804c21c04dd504080c4c96600260ba01b198009bac308b013088013754057222225980099b87301600530160048acc004c04c00e266e24006600200b003a400122232598009843009848009baa001899912cc004c22c04c24804dd5000c4c8cc0a400456600266ebcc0fcc25004dd5001984b80984a009baa0078acc004cdd79832184a009baa001309701309401375400713259800984680984a009baa001899192cc004cdc39bad309a01002375a60ce612e026ea801a2b30013370e6eb4c26804004dd69833184b809baa0068acc004cdd7984d00984d808009815184b809baa006899b8000898009bab3067309701375460ce612e026ea802a6eb8c268040326eb8c26804c26c0403101e459095014590950145909501184d00800984a809baa0018b212602306330940137540031642480516424804612c026126026ea80062c848808c25004c24404dd500098301848809baa3061309101375400916423c046602200e00481522c84580a2c84580a6116026110026ea82080522259800cc004c0d8c22c04dd502b40be60686116026ea8208066eacc088c22c04dd504100a02e899912cc00566002603600514a319800984100800d28528a11602422c05132598009841809846809baa0018cc00660026eb0c24404c23804dd504280cdd7181c9847009baa3025308e0137540b3375c60bc611c026ea8c094c23804dd502ccdd69848809847009baa0014025375a612202611c026ea8c24406600210a03375c612202611c026ea8c094c23804dd502ccdd6982e9847009baa0049bad3039308e01375400880726e0400a604c611c026ea8011222232323259800984500984a009baa0048992cc004cdc399b81375a61320200200800715980099b87375a6132026134020026eb4c26404c268040222b3001300f00a8acc00660026605e6eb0c26404c25804dd5046809bae30653096013754605a612c026ea818601d375860cc612c026ea8032661300260cc612c026ea8c0b4c25804dd50309984c00a61054455534472004bd7052000403515980099b8900298009bac3065309601375411a034800244b30013375e6136026130026ea8008c26c04c27004c27004c27004c27004c27004c27004c27004c27004c26004dd5031c4cdc0000cc004dd59834184c009baa0029bae30683098013754605e6130026ea818e9101045553447200407d100142580481c22b3001323371266e0003002e60026eb0c100c25c04dd5031520009119192cc004c0a4006266e0000ccdc199b82001375a60d66136026ea8010dd69835184d809baa0048801a1320298008024dd7184e80800cdd7184e80984f00800a04237586138026132026ea800902b1bab309901309a01309a01980084680cdd7184c80984b009baa302d30960137540c3375a60ca612c026ea80326eb4c104c25804dd5006202c899b879800830c23406600c017375a60ca612c026ea80326eb4c104c25804dd50064039015005459094014590940145909401456600330013302f3758613202612c026ea823404dd71832984b009baa302d30960137540c300e9bac30663096013754019330980130663096013754605a612c026ea8184cc26005301054455534472004bd704c09800900d44cdc3cc00418611a03300600b9bad30653096013754019375a6082612c026ea803201c80a802a2c84a0090940145909401459094014c004dd61832184a809baa08c019bae304030950137546058612a026ea81826eb8c194c25404dd51816184a809baa0609bad3098013095013754008808a2c849808c01000566002604200913370666e0801c00401229000212202375a612a020088b2118023020308d01375400716422c0530010039bac308e01308b01375400323005375a60b86118026ea80050094c00400e9000488cdc00009bad305c308d01375400480fa2c844809159800982e006c4cc89660033001301d308a0137540ab02e98199845009baa081019bab3021308a0137541020280b22b30013302b3758611a026114026ea820404dd71846809845009baa3021308a0137540ab13322598009840809845809baa00189919912cc004c02000a2b300130080018acc0056600261080200314a31301d00242340513259800980f000c56600330013302937586126026120026ea821c04dd7182f9848009baa302730900137540b7375860c06120026ea801e661240260c06120026ea8c09cc24004dd502d9984900a601054455534472004bd702444b30013370e60380066038017159800980c80146600200700291192cc004c22c04c25404dd5000c4cc8966002612002612e026ea80062646605c0022b30013375e60d06132026ea800cc27004c26404dd5003456600266ebcc1a4c26404dd5000984e00984c809baa0038acc004cdc49bad306930990137540073001375660d26132026ea8c1a4c26404dd50034dd7184e00803cdd71834803a0408992cc004c1b8c26404dd5000c4cdc39bad309d01309a0137540026eb4c1a8c26804dd500245282130023068309901375400316425c0516425c0516425c046136026130026ea80062c84b008c26404c25804dd50009832984b009baa30663096013754007164250046602c01a002814a2c84880a2c848809159800cc004dd6182f9848009baa087019bac309301309001375400f330920130233090013754604e6120026ea816ccc2480530106457355534472004bd702444b30013370e603a004603801719800805c00a4464b3001308b0130950137540031325980099baf309a013097013754002613402612e026ea8c26804c25c04dd5002456600266ebcc198c25c04dd50009833984b809baa309a01309701375400913370f3001375660ce612e026ea80066eb8c268040166eb8c19c01501e2cc004c2300402626eb4c19cc25c04dd500244cdc199b82375a60ce612e026ea8010024029095014528212a028a50425404613202612c026ea80062c84a008cc058014005029459091012264b300130860130900137540031325980099b87375a612a0200266e000140222b30013370e6eb4c25404c25804004cdc0002001c56600266e1e60026eacc094c24804dd504480cdd718129849009baa302930920137540bb4881057355534472004064007130870198009bab3025309201375411203375c60c46124026ea8c0a4c24804dd502ed220104555344720040651642400516424005164240053001375860c06122026ea8220066eb8c0f0c24404dd518141848809baa05c9bae3061309101375460506122026ea81726eb4c25004c24404dd5000a01a8b211e023028309001375400f164238051642380516423804b30013084010018802c4cdc199b820050010024234051642340516423405164234046eb4c24004004dd6984800984880800cc004dd61847809846009baa083019bae3037308c01375460466118026ea815e6eb8c170c23004dd518119846009baa0579bad308f01308c013754002803a2c84500a60020053758611a026114026ea8006460326eb4c16cc22c04dd5000a00e301d308a01375400316422005164220046eb0c22c04c22004dd50159845809844009baa08201899912cc006600260446114026ea815605d3033308a01375410203375660426114026ea8204050164566002660566eb0c23404c22804dd5040809bae308d01308a01375460426114026ea815626644b3001308101308b013754003132332259800980e8014566002603a00313259800980f000c56600330013302937586126026120026ea821c04dd7182f9848009baa302730900137540b7375860c06120026ea801e661240260466120026ea8c09cc24004dd502d9984900a60106457355534472004bd702444b30013370e60380066038017159800980c80146600200700291192cc004c22c04c25404dd5000c4cc8966002612002612e026ea80062646605c0022b30013375e60d06132026ea800cc27004c26404dd5003456600266ebcc1a4c26404dd5000984e00984c809baa0038acc004cdc49bad306930990137540073001375660d26132026ea8c1a4c26404dd50034dd7184e00803cdd71834803a0408992cc004c1b4c26404dd5000c4cdc39bad309d01309a0137540026eb4c1a8c26804dd500245282130023068309901375400316425c0516425c0516425c046136026130026ea80062c84b008c26404c25804dd50009832984b009baa30663096013754007164250046602c01a002814a2c84880a2c84880915980099b8798009bab3023309001375410e03375c60466120026ea8c09cc24004dd502dd22105735553447200405c604000d132598009843009848009baa0018992cc004cdc39bad3095010013370200a00715980099b87375a612a02612c0200266e040100222b300130870198009bab3025309201375411203375c60c46124026ea8c0a4c24804dd502ed22010455534472004065198009bac30613092013754112033758612a026124026ea8026661280260c46124026ea8c0a4c24804dd502e9984a00a61054455534472004bd702444b30013370e603e004603c01b19800806c00a4464b3001308d0130970137540031325980099baf309c0130990137540026138026132026ea8c27004c26404dd5002456600266ebcc1a0c26404dd50009834984c809baa309c01309901375400913370f3001375660d26132026ea80066eb8c270040166eb8c1a401502019b83337046eb4c1a4c26404dd5002006005c528212e028a50425c046136026130026ea80062c84b008cc06001400502b4590930122c84800a2c84800a2c84800a60026eb0c180c24404dd504400cdd7181e1848809baa302830910137540b9375c60c26122026ea8c0a0c24404dd502e4dd6984a009848809baa001403516423c0460506120026ea801e2c84700a2c84700a2c84700a600200f480024466e00004cdc199b82375a60c26122026ea800801000d02345908d0145908d011bad309001001375a61200261220200330013758611e026118026ea820c066eb8c0dcc23004dd518119846009baa0579bae305c308c01375460466118026ea815e6eb4c23c04c23004dd5000a00e8b21140298008014dd61846809845009baa0019180c9bad305b308b0137540028038c074c22804dd5000c5908801459088011bac308b0130880137540566116026110026ea82080508601210c0237129000210a024214044444b30013370e6028004602600719800801c00a4464b3001308201308c013754003198009848009846809baa0019bac3020308d0137540073301a00437586040611a026ea800d222598009842809847809baa0018acc004cdd79849809848009baa00330930130900137546126026120026ea801a2b30013375e60be6120026ea800cc180c24004dd51849809848009baa006899b8798009bab30603090013754007375c612602005375c61260261280200480b8cc07cc048dd698301848009baa006309301309001375400314a084700a294108e0145908e0122c845808cc034018005020459088012108021111192cc004c1e8c21004dd5000c4c96600266ebcc22404c21804dd51844809843009baa30563086013754002605866110026ea40152f5c1159800983d4c004dd5982b1843009baa30563086013754003005a4508747265617375727900403513259800983f9843009baa0018991980d0008992cc004c1f8c22004dd5000c4c96600266ebcc23404c22804dd51846809845009baa00130303308c01375201297ae08acc004c1fa60026eacc168c22804dd5000c026911087472656173757279004045132598009841809845009baa0018991980f00089984700802998470080099847009ba6329800800cdd5982e9846809baa00499198008009bab305e308e01375460bc611c026ea8024896600200314bd6f7b63044c8cc24804cdd81847808009ba63233001001375661220200444b30010018a5eb7bdb1822646612a0266ec0c24804004dd418119bad30930100133003003309701002309501001424c04660060066128020046124020028480090011112cc00400a2003132332298008034c25804016646600200200a44b300100189984b0099bb037520086e9800d2f5bded8c113298009bae3094010019bab309501001984c808012444b30013372001000713309a01337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528213402880144cc26c04cdd81ba9009374c00200484b808ca6002003008801a002222598008014400626466453001006985100802cc8cc00400401489660020031330a201337606ea4010dd4001a5eb7bdb1822653001375c614002003375a61420200330a50100248896600266e4002000e26614c0266ec0dd48041ba80070058acc004cdc7804001c4c96600261340200310028998538099bb037520126ea00040090a30119b800070028998530099bb037520066ea0008cc0180180050a201214402185180800a1420240186eb8c26c04004dd6984e00800984f0080121380289984d0099bb037520066e98008cc01801800509601212c02184b80800a12a0240186eb8c23c04004dd59848008009849008012120024bd701847009845809baa0018b2112023059308a01375400316422005164220046118026112026ea80062c843808cc024dd6182b9844009baa008005308a0130870137540031642140460aa610c026ea8c158c21804dd5000c5908401459084011844009842809baa0018b210602330053758610e026108026ea8010008896600266e2000520008a6103d87a8000899804801000a0fe22c82d8c8cc004004dd61816182e9baa0572259800800c52f5c1133060374e6464660c460c6004660c4605e60c06ea8004cc188dd4999119b8a489018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241888310dc68009bae30653062375400266e28c008dd7181918311baa0013371460046eb8c0c4c188dd500098011bae300d30623754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241808300dc68009817198312610b4a5369676e617475726531003306230633060375460c660c06ea8004cc18930101400033062375200a97ae04bd70183118318009bac3061001330020023062001417c6e50dd9803a264b3001304a305437540031323232332259800982f001c4c8c8cc896600260c40071300b306200c8b20be375c60be0026eb8c17c008c17c004dd6182e802c5905b1bad305b001375a60b600460b600260b400260aa6ea80062c8298c15c0090554590530c140004c13c004c138004c134004c120dd50014590464590490c10c004c108004c104004c100004c0fc004c0f8004c0f4004c0f0004c0dcdd50014590351802981a9baa323232598009816981b9baa0018992cc004c0c4c0e0dd5000c4c966002605e60726ea8006264646644b300130420038802c5903f181f8009bae303f002303f001303a37540031640e0607860726ea80062c81b8c01cc0e0dd51804181c1baa303b303837540031640d8660066eb0c01cc0dcdd50171191980080098019bab300930393754601260726ea8008896600200314a115980099b8f375c607a00206f14a3133002002303e00140e081d8c004004896600200314bd7044cc0e4c0d8c0e8004cc008008c0ec0050381801001111919800800801912cc0040062980103d87a80008992cc004c0100062600e6607600297ae0899801801981e801206e303b00140e489919912cc004c0dc00626644b3001302a303437540051323232332259800981f001c4c966002606060746ea8006264646644b300130430038992cc004c0d400626464b300130460028074590431bae30440013040375400f159800981a000c56600260806ea801e0191641051640f881f0c0f8dd50034590401bae3040001375c6080004608000260766ea80062c81c8c0f40162c81d8dd7181d800981d801181d800981d000981a9baa0028b206630360011300430370058b2068375c6068002606a0026eb0c0cc0090312264600460600066eb4c0b800902c44c8c008c0b800cdd6981600120548b205018128009812000981180098110009810800980e1baa0018b2034301e0058b203837586038002603800460380026036002602c6ea80422c80a089660026016602a6ea800a26464646644b3001301f003899804180f00289980580100345901c180e0009bad301c002301c001301b0013016375400516405044b3001300b301537540051323232323298009bac301e0019bad301e0049bad301e003980f00124444b30013023005899806181100489980780089919912cc004c09800e01b16408c6eb8c08c004dd7181180298118024590200c078004c074004c070004c06c004c058dd5001459014112cc004c028c050dd500144c8c8c9660026038005133006301b003132598009807000c56600260326ea800a00b1640691598009806800c4c8c966002603e0050078b2038375c603a00260326ea800a2b30013011001899192cc004c07c00a00f164070603a00260326ea800a2c80b9017202e3017375400316406460340026034002602a6ea800a2c80988966002601260266ea800a2646464b3001301b002899804980d0018992cc004c034006264b3001301d001899192cc004c040006264b30013020001899807180f800804c5901d180d9baa0028acc004c03c00626464653001375a6042003375a6042007375a60420049112cc004c09401201d16408830210013020001301b375400516406480c8c064dd5000980e000c5901a180c1baa0028acc004c0300062b3001301837540050058b20328b202c4058602c6ea80062c80c0c064004c064004c050dd50014590121164020300900130043754013149a26cac80101", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_4StakingVaultStakingVaultMint { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5908c40101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c96600266e3cdd7180b8019bae3017001899b87375a602e603000290014528202230173758602c00319800801cc05c00a602e002801a29410102028405114a3153300e491856578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c20285f2c2061637475616c2c20616d742929207b206578706563746564203d3d2061637475616c20262620616d74203d3d2031207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001615330034911f5f72656465656d65723a205374616b696e675661756c7452656465656d6572001601" + : + "5903010101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d159800992cc004cdc79bae3014003375c602800313370e6eb4c050c05400520028a50403c60286eb0c04c00633001003980a0014c0500050034528201c4044808a29462c805a2c8058dd7180798061baa0068acc004cdc3a400400b132332259800980398071baa0048acc004c03cdd500244c8cc88c8c8cc004004dd5980b980c180c180c180c180c180c180a1baa00a2259800800c528456600266ebc00cc050c06000629462660040046032002809901619ba548008cc050c054c048dd5192cc004c02cc048dd5000c4c96600266e1d200430133754003132598009806980a1baa0018991919912cc004c07400e200b16406860340026eb8c068008c068004c054dd5000c59013180b980a1baa0018b202430163017301730133754600460266ea8c058c04cdd5000c59011198049bac3001301237540104646600200260086eacc00cc050dd51801980a1baa0022259800800c528456600266e3cdd7180c0008094528c4cc008008c064005013202c4bd7018008009180a180a800912cc004006297ae08998099808180a00099801001180a800a0248b20208b201a301000130103011001300c375400d164028805060126014002601200260086ea802629344d95900201", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_4StakingVaultStakingVaultSpend { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5908c40101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c96600266e3cdd7180b8019bae3017001899b87375a602e603000290014528202230173758602c00319800801cc05c00a602e002801a29410102028405114a3153300e491856578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c20285f2c2061637475616c2c20616d742929207b206578706563746564203d3d2061637475616c20262620616d74203d3d2031207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001615330034911f5f72656465656d65723a205374616b696e675661756c7452656465656d6572001601" + : + "5903010101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d159800992cc004cdc79bae3014003375c602800313370e6eb4c050c05400520028a50403c60286eb0c04c00633001003980a0014c0500050034528201c4044808a29462c805a2c8058dd7180798061baa0068acc004cdc3a400400b132332259800980398071baa0048acc004c03cdd500244c8cc88c8c8cc004004dd5980b980c180c180c180c180c180c180a1baa00a2259800800c528456600266ebc00cc050c06000629462660040046032002809901619ba548008cc050c054c048dd5192cc004c02cc048dd5000c4c96600266e1d200430133754003132598009806980a1baa0018991919912cc004c07400e200b16406860340026eb8c068008c068004c054dd5000c59013180b980a1baa0018b202430163017301730133754600460266ea8c058c04cdd5000c59011198049bac3001301237540104646600200260086eacc00cc050dd51801980a1baa0022259800800c528456600266e3cdd7180c0008094528c4cc008008c064005013202c4bd7018008009180a180a800912cc004006297ae08998099808180a00099801001180a800a0248b20208b201a301000130103011001300c375400d164028805060126014002601200260086ea802629344d95900201", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V0_4StakingVaultStakingVaultElse { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5908c40101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c96600266e3cdd7180b8019bae3017001899b87375a602e603000290014528202230173758602c00319800801cc05c00a602e002801a29410102028405114a3153300e491856578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c20285f2c2061637475616c2c20616d742929207b206578706563746564203d3d2061637475616c20262620616d74203d3d2031207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001615330034911f5f72656465656d65723a205374616b696e675661756c7452656465656d6572001601" + : + "5903010101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d159800992cc004cdc79bae3014003375c602800313370e6eb4c050c05400520028a50403c60286eb0c04c00633001003980a0014c0500050034528201c4044808a29462c805a2c8058dd7180798061baa0068acc004cdc3a400400b132332259800980398071baa0048acc004c03cdd500244c8cc88c8c8cc004004dd5980b980c180c180c180c180c180c180a1baa00a2259800800c528456600266ebc00cc050c06000629462660040046032002809901619ba548008cc050c054c048dd5192cc004c02cc048dd5000c4c96600266e1d200430133754003132598009806980a1baa0018991919912cc004c07400e200b16406860340026eb8c068008c068004c054dd5000c59013180b980a1baa0018b202430163017301730133754600460266ea8c058c04cdd5000c59011198049bac3001301237540104646600200260086eacc00cc050dd51801980a1baa0022259800800c528456600266e3cdd7180c0008094528c4cc008008c064005013202c4bd7018008009180a180a800912cc004006297ae08998099808180a00099801001180a800a0248b20208b201a301000130103011001300c375400d164028805060126014002601200260086ea802629344d95900201", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} \ No newline at end of file diff --git a/modules/realfi-partner-sdk/src/generated-types/v1_0/index.ts b/modules/realfi-partner-sdk/src/generated-types/v1_0/index.ts new file mode 100644 index 0000000000..383f5d8cdf --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/v1_0/index.ts @@ -0,0 +1,1101 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +type Data = Exact; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +const ScriptHash = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ + Bool: Type.Boolean(), + Tuple_VerificationKey_COSESign1: Type.Tuple([ + Type.String(), + Type.Ref("COSESign1"), + ]), + COSESign1: Type.Object( + { + headers: Type.Ref("Headers"), + payload: Type.Optional(Type.String()), + signature: Type.String(), + }, + { ctor: 0n }, + ), + HeaderMap: Type.String(), + Headers: Type.Object( + { + protected: Type.Ref("HeaderMap"), + unprotected: Type.Ref("HeaderMap"), + }, + { ctor: 0n }, + ), + MultisigScript: Type.Union([ + Type.Object({ + Signature: Type.Object( + { + key_hash: Type.String(), + }, + { ctor: 0n }, + ), + }), + Type.Object({ + AllOf: Type.Object( + { + scripts: Type.Array(Type.Ref("MultisigScript")), + }, + { ctor: 1n }, + ), + }), + Type.Object({ + AnyOf: Type.Object( + { + scripts: Type.Array(Type.Ref("MultisigScript")), + }, + { ctor: 2n }, + ), + }), + Type.Object({ + AtLeast: Type.Object( + { + required: Type.BigInt(), + scripts: Type.Array(Type.Ref("MultisigScript")), + }, + { ctor: 3n }, + ), + }), + Type.Object({ + Before: Type.Object( + { + time: Type.BigInt(), + }, + { ctor: 4n }, + ), + }), + Type.Object({ + After: Type.Object( + { + time: Type.BigInt(), + }, + { ctor: 5n }, + ), + }), + Type.Object({ + Script: Type.Object( + { + script_hash: Type.String(), + }, + { ctor: 6n }, + ), + }), + ]), + Asset: Type.Tuple([Type.String(), Type.String()]), + Destination: Type.Object( + { + address: Type.Object( + { + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([Type.String()], { ctor: 0n }), + }), + Type.Object({ + Script: Type.Tuple([Type.String()], { ctor: 1n }), + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple( + [ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([Type.String()], { + ctor: 0n, + }), + }), + Type.Object({ + Script: Type.Tuple([Type.String()], { ctor: 1n }), + }), + ]), + ], + { ctor: 0n }, + ), + }), + Type.Object({ + Pointer: Type.Object( + { + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, + { ctor: 1n }, + ), + }), + ]), + ), + }, + { ctor: 0n }, + ), + datum: Type.Union([ + Type.Literal("NoDatum", { ctor: 0n }), + Type.Object({ + DatumHash: Type.Tuple([Type.String()], { ctor: 1n }), + }), + Type.Object({ + InlineDatum: Type.Tuple([TPlutusData], { ctor: 2n }), + }), + ]), + }, + { ctor: 0n }, + ), + DirectRequestV1: Type.Object( + { + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + origin: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + }, + { ctor: 0n }, + ), + ExchangeRequestV1: Type.Object( + { + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + min_received: Type.BigInt(), + origin: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 0n }, + ), + ExtraProtocolRedeemerV1: Type.Object( + { + request_to_outputs: Type.Array(Type.BigInt()), + input_to_requests: Type.Array(Type.BigInt()), + treasury_input_idx: Type.BigInt(), + treasury_output_idx: Type.BigInt(), + vault_input_idx: Type.Optional(Type.BigInt()), + vault_output_idx: Type.Optional(Type.BigInt()), + }, + { ctor: 0n }, + ), + Nonce: Type.Union([ + Type.Object({ + UTxO: Type.Tuple( + [ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + ], + { ctor: 0n }, + ), + }), + Type.Object({ + Validity: Type.Tuple( + [ + Type.Object( + { + lower_bound: Type.Object( + { + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([Type.BigInt()], { ctor: 1n }), + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, + { ctor: 0n }, + ), + upper_bound: Type.Object( + { + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([Type.BigInt()], { ctor: 1n }), + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, + { ctor: 0n }, + ), + }, + { ctor: 0n }, + ), + ], + { ctor: 1n }, + ), + }), + ]), + OrderActionV1: Type.Union([ + Type.Object({ + OMint: Type.Object( + { + amount: Type.BigInt(), + min_received: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 0n }, + ), + }), + Type.Object({ + ORedeem: Type.Object( + { + amount: Type.BigInt(), + min_received: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 1n }, + ), + }), + Type.Object({ + ODeposit: Type.Object( + { + principal: Type.BigInt(), + yield: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 2n }, + ), + }), + Type.Object({ + OWithdraw: Type.Object( + { + amount: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 3n }, + ), + }), + Type.Object({ + OStake: Type.Object( + { + amount: Type.BigInt(), + min_received: Type.BigInt(), + }, + { ctor: 4n }, + ), + }), + Type.Object({ + OUnstake: Type.Object( + { + amount: Type.BigInt(), + min_received: Type.BigInt(), + forfeit: Type.BigInt(), + }, + { ctor: 5n }, + ), + }), + Type.Object({ + ODirectMint: Type.Object( + { + amount: Type.BigInt(), + }, + { ctor: 6n }, + ), + }), + Type.Object({ + ODirectBurn: Type.Object( + { + amount: Type.BigInt(), + }, + { ctor: 7n }, + ), + }), + ]), + OrderDatumV1: Type.Object( + { + owner: Type.Ref("MultisigScript"), + destination: Type.Ref("Destination"), + action: Type.Ref("OrderActionV1"), + data: TPlutusData, + }, + { ctor: 0n }, + ), + OrderRedeemerV1: Type.Union([ + Type.Literal("Execute", { ctor: 0n }), + Type.Literal("Cancel", { ctor: 1n }), + Type.Literal("Invalidated", { ctor: 2n }), + ]), + ProtocolRedeemerV1: Type.Union([ + Type.Object({ + Mint: Type.Object( + { + requests: Type.Array(Type.Ref("ExchangeRequestV1")), + }, + { ctor: 0n }, + ), + }), + Type.Object({ + Burn: Type.Object( + { + requests: Type.Array(Type.Ref("ExchangeRequestV1")), + }, + { ctor: 1n }, + ), + }), + Type.Object({ + Withdraw: Type.Object( + { + requests: Type.Array(Type.Ref("TreasuryRequestV1")), + }, + { ctor: 2n }, + ), + }), + Type.Object({ + Deposit: Type.Object( + { + requests: Type.Array(Type.Ref("TreasuryRequestV1")), + }, + { ctor: 3n }, + ), + }), + Type.Object({ + Stake: Type.Object( + { + requests: Type.Array(Type.Ref("StakeRequestV1")), + }, + { ctor: 4n }, + ), + }), + Type.Object({ + Unstake: Type.Object( + { + requests: Type.Array(Type.Ref("StakeRequestV1")), + }, + { ctor: 5n }, + ), + }), + Type.Object({ + DirectMint: Type.Object( + { + requests: Type.Array(Type.Ref("DirectRequestV1")), + }, + { ctor: 6n }, + ), + }), + Type.Object({ + DirectBurn: Type.Object( + { + requests: Type.Array(Type.Ref("DirectRequestV1")), + }, + { ctor: 7n }, + ), + }), + ]), + ProxyDatumV1: Type.Object( + { + logic: Type.String(), + settings: Type.Ref("SettingsV1"), + }, + { ctor: 0n }, + ), + RegistryV1: Type.Object( + { + treasury: Type.String(), + usdr: Type.String(), + order: Type.String(), + staking_vault: Type.String(), + yield_oracle: Type.String(), + }, + { ctor: 0n }, + ), + ReserveAsset: Type.Object( + { + asset: Type.Ref("Asset"), + numerator: Type.BigInt(), + denominator: Type.BigInt(), + }, + { ctor: 0n }, + ), + SettingsV1: Type.Object( + { + mint_permission: Type.Ref("MultisigScript"), + burn_permission: Type.Ref("MultisigScript"), + withdraw_permission: Type.Ref("MultisigScript"), + deposit_permission: Type.Ref("MultisigScript"), + stake_permission: Type.Ref("MultisigScript"), + unstake_permission: Type.Ref("MultisigScript"), + direct_mint_permission: Type.Ref("MultisigScript"), + direct_burn_permission: Type.Ref("MultisigScript"), + yield_oracle_permission: Type.Ref("MultisigScript"), + registry: Type.Ref("RegistryV1"), + reserve_assets: Type.Array(Type.Ref("ReserveAsset")), + unstaked_yield_pot: Type.Object( + { + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([Type.String()], { ctor: 0n }), + }), + Type.Object({ + Script: Type.Tuple([Type.String()], { ctor: 1n }), + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple( + [ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([Type.String()], { + ctor: 0n, + }), + }), + Type.Object({ + Script: Type.Tuple([Type.String()], { ctor: 1n }), + }), + ]), + ], + { ctor: 0n }, + ), + }), + Type.Object({ + Pointer: Type.Object( + { + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, + { ctor: 1n }, + ), + }), + ]), + ), + }, + { ctor: 0n }, + ), + }, + { ctor: 0n }, + ), + SignedPayload_ProtocolRedeemerV1: Type.Object( + { + action: Type.Ref("ProtocolRedeemerV1"), + nonce: Type.Ref("Nonce"), + }, + { ctor: 0n }, + ), + SignedRedeemer_ExtraProtocolRedeemerV1: Type.Object( + { + extra: Type.Ref("ExtraProtocolRedeemerV1"), + payload: Type.Ref("SignedPayload_ProtocolRedeemerV1"), + signatures: Type.Array(Type.Ref("Tuple_VerificationKey_COSESign1")), + }, + { ctor: 0n }, + ), + StakeRequestV1: Type.Object( + { + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + min_received: Type.BigInt(), + origin: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + forfeit: Type.BigInt(), + }, + { ctor: 0n }, + ), + StakingVaultRedeemerV1: Type.Undefined(), + TreasuryDatumV1: Type.Object( + { + circulating_supply: Type.BigInt(), + }, + { ctor: 0n }, + ), + TreasuryRequestV1: Type.Object( + { + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + yield: Type.BigInt(), + origin: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 0n }, + ), + VaultDatumV1: Type.Object( + { + circulating_susdr: Type.BigInt(), + }, + { ctor: 0n }, + ), +}); + +export const Bool = Contracts.Import("Bool"); +export type Bool = Exact; +export const Tuple_VerificationKey_COSESign1 = Contracts.Import( + "Tuple_VerificationKey_COSESign1", +); +export type Tuple_VerificationKey_COSESign1 = Exact< + typeof Tuple_VerificationKey_COSESign1 +>; +export const COSESign1 = Contracts.Import("COSESign1"); +export type COSESign1 = Exact; +export const HeaderMap = Contracts.Import("HeaderMap"); +export type HeaderMap = Exact; +export const Headers = Contracts.Import("Headers"); +export type Headers = Exact; +export const MultisigScript = Contracts.Import("MultisigScript"); +export type MultisigScript = Exact; +export const Asset = Contracts.Import("Asset"); +export type Asset = Exact; +export const Destination = Contracts.Import("Destination"); +export type Destination = Exact; +export const DirectRequestV1 = Contracts.Import("DirectRequestV1"); +export type DirectRequestV1 = Exact; +export const ExchangeRequestV1 = Contracts.Import("ExchangeRequestV1"); +export type ExchangeRequestV1 = Exact; +export const ExtraProtocolRedeemerV1 = Contracts.Import( + "ExtraProtocolRedeemerV1", +); +export type ExtraProtocolRedeemerV1 = Exact; +export const Nonce = Contracts.Import("Nonce"); +export type Nonce = Exact; +export const OrderActionV1 = Contracts.Import("OrderActionV1"); +export type OrderActionV1 = Exact; +export const OrderDatumV1 = Contracts.Import("OrderDatumV1"); +export type OrderDatumV1 = Exact; +export const OrderRedeemerV1 = Contracts.Import("OrderRedeemerV1"); +export type OrderRedeemerV1 = Exact; +export const ProtocolRedeemerV1 = Contracts.Import("ProtocolRedeemerV1"); +export type ProtocolRedeemerV1 = Exact; +export const ProxyDatumV1 = Contracts.Import("ProxyDatumV1"); +export type ProxyDatumV1 = Exact; +export const RegistryV1 = Contracts.Import("RegistryV1"); +export type RegistryV1 = Exact; +export const ReserveAsset = Contracts.Import("ReserveAsset"); +export type ReserveAsset = Exact; +export const SettingsV1 = Contracts.Import("SettingsV1"); +export type SettingsV1 = Exact; +export const SignedPayload_ProtocolRedeemerV1 = Contracts.Import( + "SignedPayload_ProtocolRedeemerV1", +); +export type SignedPayload_ProtocolRedeemerV1 = Exact< + typeof SignedPayload_ProtocolRedeemerV1 +>; +export const SignedRedeemer_ExtraProtocolRedeemerV1 = Contracts.Import( + "SignedRedeemer_ExtraProtocolRedeemerV1", +); +export type SignedRedeemer_ExtraProtocolRedeemerV1 = Exact< + typeof SignedRedeemer_ExtraProtocolRedeemerV1 +>; +export const StakeRequestV1 = Contracts.Import("StakeRequestV1"); +export type StakeRequestV1 = Exact; +export const StakingVaultRedeemerV1 = Contracts.Import( + "StakingVaultRedeemerV1", +); +export type StakingVaultRedeemerV1 = Exact; +export const TreasuryDatumV1 = Contracts.Import("TreasuryDatumV1"); +export type TreasuryDatumV1 = Exact; +export const TreasuryRequestV1 = Contracts.Import("TreasuryRequestV1"); +export type TreasuryRequestV1 = Exact; +export const VaultDatumV1 = Contracts.Import("VaultDatumV1"); +export type VaultDatumV1 = Exact; + +export class V1_0OrderOrderSpend { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + protocolScripthash: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5916b70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0039bae00248888888888a60022a66008921696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a9980224932657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f6372656400168a998022493665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f75742900168a998022492065787065637420536f6d65286f726465725f646174756d29203d20646174756d00168a998022491972656465656d65723a204f7264657252656465656d6572563100164888896600264653001301000198081808800cdc3a400530100024888966002600460206ea800e2646644b30010078999119912cc004c00c0062b30013018375401700280720328acc004c0240062b30013018375401700280720328acc004c0100062b3001301837540170028072032807202a405480a8660026e952000911192cc004c014006264b3001001801c4c9660020030048024012009132598009810801c01a00a80f0dd7000a042301e001407060346ea80122b3001300b0018992cc00400600713259800800c01200900480244c9660026042007006802a03c375c0028108c07800501c180d1baa004801202e405c60306ea800e44b30010018a5eb82266034602e603600266004004603800280ca44646600200200644b30010018a508acc004cdc79bae301d0010038a51899801001180f000a02e406d223233001001003223300300130020029180d180d800c8c068c06cc06c00646034603660366036603660366036603660366036003301537540132301a301b301b301b301b301b301b001911919800800801912cc00400629422b30013375e0066032603a00314a3133002002301e001405c80da6e012001488888888888a600244646600200200644b30010018a60103d87a80008992cc004c010006260226605200297ae0899801801981580120483029001409d300a00a911194c004006009003400444464b300130140018992cc00400600d13259800800c01e00f007803c4c9660026060007005804205a375c0028180c0b400502b18149baa0038acc004c068006264b300100180344c966002003007803c4c96600260600071330120012259800801401e264b30010018cc00402a003130023033003402900b805c02e01681a0c0c400902f402102d1bac001803c01d0301816800a05630293754007159800980a800c4c9660020030068992cc00400600f0078992cc004c0c000e26602400244b3001002803c4c966002003198008054006260046066006805201700b805c02d0341818801205e804205a3758003007803a060302d00140ac60526ea800e2b30013370e9003000c4c9660020030068992cc00400600f007803c4cc89660020030098992cc00400601500a8992cc004c0cc00e26602a00244b300100280544c96600200319800806c00626004606c006806a01d00e8074039037181a0012064805a060375800300a8052066303000140b86eb4004c0bc00a00e8180c0b400502b18149baa0038acc004cdc3a401000313259800800c01a264b3001001803c01e00f132598009818001c0160108168dd6800c01d0301816800a0563029375400715980099b8748028006264b300100180344c966002003007803c01e264b30013030003802c02102d1bad001803a060302d00140ac60526ea800e2b30013370e9006000c4c9660020030068992cc00400600f007803c01e264b30013030003802c02102d1bae00140c0605a0028158c0a4dd5001c015026204c40988131026204c4098604e6ea80092223322598009809004c4cc8966002602860506ea8006264b3001301b3029375400315980099b8f375c605a60546ea8004dd7180718151baa300d302a3754601e60546ea800e330012225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a00640a9222232330010010052259800800c4016264b3001001899802181a00100344cc014c0d0008cc00c00c005032181a000a0629bab300b302a37540353374a9001198161ba90254bd7024444646464a6605e66e592410d63726564656e7469616c3a3a200037333001001802522100400426602200a00844464b30010038991919911980480119b8a48901280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20725980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81990331bac3036002375a60680026466ec0dd4181a0009ba73035001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6072003337149101023a200098008054c0e800600a805100a181e00144ca6002015303900199b8a489023a200098008054c0e8006600e66008008004805100a181e0012074303c00140e466e29220102207d0000340d86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a206c3758007133005375a0060051323371491102682700329800800cc054dc68014cdc52450127000044004444b30013371000490004400626466453001006980d002ccdc599b800025980099b88002480522903045206e40e066e2ccdc0000acc004cdc4000a4029148182290372070004401866e0c00520203370c002901019b8e00400240d46eb800d0391b8a4881022c20002232330010010032259800980f000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000340c08180c010011153302849013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f726465720016409d023409c605860526ea8c0b0c0a4dd5180718149baa302c302937540030214098660026eb0c030c09cdd500b811998011bac302a3027375402e02b159800980c004c5660026024604c6ea805233001302a302737546054604e6ea80526eb0c0a8c0acc0acc0acc0acc0acc0acc0acc0acc09cdd500bcc0a8c0acc0acc0acc0acc0acc0acc0acc09cdd500bcdd5980418139baa01748888c8cc00400401488c9660026032003133015006375c6062605c6ea800a2b3001301f001899198008009bac3032302f375400644b30010018a518acc004cc014014c0cc006266004004606800314a08169031456600260340031323300100137586064605e6ea800c896600200314a1159800998028029819800c528c4cc008008c0d000502d20628acc004cdc3a400c003132337126eb4c0c8004c8cc004004dd61819981a001112cc0040062900044cc896600266010010005133700002900144005030181a00099801001181a800a064302e375400515980099b87480200062646644b3001302230303754005159800981118181baa30343035003899b89375a606860626ea8008006266e20dd6981a18189baa00200140b914a08170c0c8004dd6981918179baa003302e37546026605c6ea80162b30013370e9005000c4c8cc8966002604460606ea800a2b30013022303037546068606a0071337120026eb4c0d0c0c4dd500144cdc40009bad3034303137540048172294102e18190009bad3032302f3754006605c6ea8c0c4c0b8dd5002c4cc038010cdd2a4004660606062605c6ea80092f5c0815902b205640ac815902b18161baa001407902445660026024604c6ea805233001302a302737540293300137586018604e6ea805c08e660046eb0c0a8c09cdd500b80aa444b30013015302937540031323259800980e98159baa0018acc0056600330013371e6eb8c040c0b0dd5180798161baa3011302c37540086eb8c0bcc0b0dd5000d28528a0528a518cc004cdc79bae302f302c375400804f4a14a2814902944c966002603060586ea8006264b30013019302d375400313259800980d18171baa0018992cc004cdd7981998181baa001301a33032301a3303230333030375400897ae0330324c103d87a80004bd704660026eacc054c0c0dd5000cc054c0c0dd5180a98181baa0069119b89337020026eb4c0d4c0d8c0d8c0d8c0c8dd50110012444b30010028a508994c004c966002604060686ea800626eb4c0d4c0e0dd5981c181a9baa0018a40008190c0dc0066ebcc0dcc0e00066eac00d22259800800c566002600400d13300500348002294103444c96600266ebcc0dc0053010140008acc004cc018010dd6981c181d9bab3038001898019ba6303c0028a5040d51598009980300224001130030078a5040d481a8c0e80050380ca6002003004911981c0011981c1ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0d80066eacc0dc00660760069112cc004cdc8a441000038acc004cdc7a4410000389980298121981e1ba60024bd70000c4cc015300103d87a800000640dd19800803c006446600e0046607c66ec0dd48029ba6004001401c81b8607200481ba2942294229410382294102d181918179baa0018a99816a493865787065637420536f6d65286f757470757429203d206c6973742e61742873656c662e6f7574707574732c20696e7075745f696e64657829001640b065300130010019bad3032302f375400537586026605e6ea807d2225980099b8800248002298103d87a8000899801800801205e1112cc00400a298103d87a80008acc004c0700062603666066606800497ae08cc00400e606a0053010001400c8171032454cc0b124014165787065637420536f6d6528696e7075745f696e64657829203d206c6973742e696e6465785f6f662873656c662e696e707574732c2073656c665f696e70757429001640ac6530010019bac3031302e375403d480010011112cc00400a298103d87a80008acc004cdd7981980100344c068cc0c8dd4000a5eb8233001003981a0014cdc0000a4004801902d20628a99815a48131657870656374205369676e6174757265207b206b65795f68617368207d203d206f726465725f646174756d2e6f776e6572001640a8605e60586ea80162a660549201996578706563740a2020202020202020202076315f305f7574696c69746965732e69735f70726f746f636f6c5f7570677261646564280a20202020202020202020202070726f78795f646174756d2c0a20202020202020202020202073656c665f7363726970745f686173682c0a20202020202020202020202070726f746f636f6c5f736372697074686173682c0a2020202020202020202029001640a502540a4605c60566ea8c0b8c0acdd5180818159baa001302d302a3754003022409c80f20484090812088cc0140088cdd7981598141baa001002223259800800c4c966002602860506ea800a264b300100181244c966002003025812c09604b1332259800800c09e264b30010018acc004c0c800a2b30013019302d375400313259800800c0a6264b30010018992cc00400605713259800800c4c96600200302d8992cc004006264b3001001817c4c96600200313259800800c0c6264b30010018992cc00400606713259800800c4c9660020030358992cc004006264b300100181bc4c96600200313259800800c0e6264b30010018992cc00400607713259800800c4c96600200303d8992cc00400607d03e899912cc00400608113259800800c56600260960051980080c46600202d1980080a4660020251980080846600201d198008064660020151980080445660026064608c6ea801a264b300100182144c966002003043821c10e0871332259800800c116264b3001001823411a08d046899912cc00400609113259800800c126093049824c4cc896600200304b8992cc00400609904c826413226644b300100182744c96600200304f827c13e09f13259800982d001c4cc0f004889660020051598009821982b9baa0128992cc0040060a713259800800c4c9660020030558992cc0040062b300130600028cc00400e264b300130480018992cc0040060b113259800800c56600260c6005132598009825800c4c96600200305b8992cc0040062b300130660028cc00400607505c412d05c418d05c82e41720b88338c19000506218301baa0028acc004c144006264b300100182dc4c96600200305c82e417226644b300100182f44c96600200305f82fc17e26644b3001001830c4c966002003062831418a264b3001306d003820c18d06a1bad00183120da306a00141a06eb4004c1a400a0be8350c19c0050651bad001306600282e20ce3064001418860c06ea800a0b482e905d182f1baa00182ca0c082cc1660b3059419060c200282f8c174dd50014566002609c003159800982e9baa00281ac15d05e415d05a20b4305b37540030564115056417505682b415a0ac8308c17800505c182f00141520a905482a20be305c001416860b06ea804a0a482aa264b30010018acc004c110c160dd5000c4c9660020030548992cc0040060ab055899912cc0040060af13259800800c1620b1058899912cc0040060b513259800800c16e0b705b8992cc004c19800e2b300100782e44c96600200305d82ec1760bb1332259800800c17e264b300100183041820c10608992cc004c1ac00e2602060d602306141a06eb800506b1834000a0cc375c00260ce0108340c19401d06341710631bad00182da0cc306300141846eb4004c18800a0b08318c18000505e1bac001305f00282ac155060182e800a0b6305937540030534159053829c14e0a682f0c16c00905941410571bae001416860ae00282a8dd7000982b00120ae305400141486eb8004c14c0090541828800a09e375c00260a00048288c13800504c1bae001304d002413860960028248c11cdd5003410504441050234105023410502341050234105023410502341050234105023410502341050484106083041820a0983049001411c6eb0004c12000a07d03e4124608c0028220c11800a07903c81e40f10471822000a084304400281d40ea07503a411460840028200c10800a07103881c40e10431820000a07c304000281b40da06d0364104607c00281e0c0f800a06903481a40d103f181e000a074303c00281940ca06503240f4607400281c0c0e800a06103081840c103b181c000a06c303800281740ba05d02e40e4606c00281a0c0d800a05902c81640b1037181a000a064303400281540aa05502a40d460640028180c0b8dd5000c0a102b40a102f40a20510288142066303000140b86eb8004c0bc0090301816800a0563029375400502340982003022811408a0448168c9660026026604e6ea8006264b30013015302837540031302c30293754003153302749013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164098601860506ea8c034c0a0dd5181598141baa0018a998132494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640946600a00446601e600a6eacc034c0a0dd5180698141baa0010020c054dd50049b8748010dc3a400100a805402a01480c8c054004c054c058004c044dd5001c5900e0c040004c02cdd5008c5268a99804a491856616c696461746f722072657475726e65642066616c7365001365640201" + : "590c000101002229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae0039bae002488888888896600264653001300a00198051805800cdc3a4005300a0024888966002600460146ea800e33001300b3754007370e90024dc3a4001300a375400891111991192cc004c0140122b3001301237540170018b20268acc004c0240122b3001301237540170018b20268acc004c0180122b3001301237540170018b20268b202040408080660026e95200091192cc004c01c00626464b3001301a0028024590171bae3018001301437540071598009805800c4c8c96600260340050048b202e375c603000260286ea800e2c809101218091baa002912cc004006297ae089980a9809180b00099801001180b800a028911919800800801912cc00400629422b30013371e6eb8c06000400e294626600400460320028099016488c8cc00400400c88cc00c004c00800a4602a602c00323015301630160019180a980b180b180b180b180b180b180b180b180b000cc040dd500548c054c058c058c058c058c058c05800644646600200200644b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c488888888888cc88cc88cc8966002602a01313259800980b18111baa0018992cc004c06cc08cdd5000c56600266e3cdd7181398121baa001375c601a60486ea8c030c090dd5180718121baa330043758601c60486ea80680862660126eacc028c090dd500d19ba548008cc098dd481025eb822c81122c8110c098c08cdd5181318119baa300d30233754604c60466ea80062c8108cc004dd6181298111baa0180138acc004c0640262b300130153021375402519800981298111baa3025302237540253758604a604c604c604c604c604c604c604c604c60446ea8062604a604c604c604c604c604c604c604c60446ea80626eacc020c088dd500c24444646600200200a4464b3001301c00189980a8031bae302c302937540051598009810000c4c8cc004004dd6181698151baa0032259800800c528c5660026600a00a605c003133002002302f0018a5040a481622b3001301d001899198008009bac302d302a375400644b30010018a508acc004cc014014c0b80062946266004004605e002814902c456600266e1d200600189919b89375a605a00264660020026eb0c0b8c0bc008896600200314800226644b300133008008002899b800014800a20028160c0bc004cc008008c0c000502d18149baa0028acc004cdc3a4010003132332259800981198159baa0028acc004c08cc0acdd518179818001c4cdc49bad302f302c37540040031337106eb4c0bcc0b0dd5001000a0548a5040a8605a0026eb4c0b4c0a8dd500198149baa30133029375400b15980099b87480280062646644b30013023302b3754005159800981198159baa302f3030003899b89001375a605e60586ea800a266e20004dd6981798161baa00240a914a08150c0b4004dd6981698151baa00330293754605860526ea801626601c00866e9520023302b302c3029375400497ae0409c8139027204e409c8138c09cdd5000a2c81022b300130153021375402513259800980b18111baa001899192cc004c070c090dd5000c56600264b3001980099b8f375c601e604c6ea8c038c098dd5180818131baa001375c6052604c6ea800a9429450244528c6600266e3cdd7181498131baa001022a50a5140908120cc014dd6180798129baa01b0228992cc004c064c094dd5000c4c9660026034604c6ea8006264b3001301b302737540031325980099baf302c30293754002603066056603066056605860526ea80112f5c06605698103d87a80004bd704660026eacc04cc0a4dd5000cc04cc0a4dd5180998149baa0069119b89337020026eb4c0b8c0bcc0bcc0bcc0acdd50108012444b30010028a508994c004c9660026042605a6ea800626eb4c0b8c0c4dd5981898171baa0018a40008160c0c00066ebcc0c0c0c40066eac00d22259800800c566002600400d13300500348002294102e44c96600266ebcc0c00053010140008acc004cc018010dd69818981a1bab3031001898019ba630350028a5040bd1598009980300224001130030078a5040bc8178c0cc0050310ca60020030049119818801198189ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0bc0066eacc0c000660680069112cc004cdc8a441000038acc004cdc7a4410000389980298111981a9ba60024bd70000c4cc015300103d87a800000640c519800803c006446600e0046606e66ec0dd48029ba6004001401c81886064004818229422942294103122941027181598141baa0018b204c3298009800800cdd6981598141baa0029bac30113028375403c9112cc004cdc40012400114c103d87a800089980180080120521112cc00400a298103d87a80008acc004c0740062603266058605a00497ae08cc00400e605c005337000029000a00640a0815a2c8128ca600200337586054604e6ea807690002002222598008014530103d87a80008acc004cdd7981600100344c060cc0acdd4000a5eb823300100398168014cdc0000a4004801902720548b20483028302537546050604a6ea80562c811a2c8118c09cc090dd5181398121baa300e30243754002604c60466ea80062c8108cc004dd6181298111baa0180138b20404080810088c8c966002602e60466ea800a2646644b3001302b0018992cc004c06cc09cdd5000c4c8c8c8c8c8c8c8c8c8c8c8ca6002606e003303700b981b8054c0dc026606e0113037007981b8034c0dc016606e00930370039bac3037002488888888889660026086019133021304201713302100a1330210091330210081330210071330210061330210051330210041330210031598009819181f1baa002899191919194c004dd71823800cdd71823802cdd718238024dd71823801cdd71823801244444b3001304d00689981a005912cc00400a2b3001303e304a375402f132323259800982900144cc0f0c14400c4c966002608400313259800982a000c4c8c966002608a00313259800982b800c4cc104c1580040c22c82a0c148dd500145660026092003132323298009bad30580019bad30580039bad305800248896600260b80090358b20b2182c000982b80098291baa0028b20a0414060a06ea8004c14c0062c8288c13cdd50014566002608c00315980098279baa00281645905045904d209a304d375400316413c60a000260a000260966ea805e2c824a264b3001303f304b37540031323232332259800982a801c4c8c8cc896600260b20071300b305900c8b20ac375c60ac0026eb8c158008c158004dd6182a002c590521bad3052001375a60a400460a400260a200260986ea80062c8250c13800904c45904a0c11c004c118004c114004c110004c0fcdd500145903d4590400c0dc004c0d8004c0d4004c0d0004c0cc004c0c8004c0c4004c0c0004c0bc004c0b8004c0b4004c0a0dd5000c590261815000c590281bae3028001302900130243754005164088200264b300130163022375400313259800980c18119baa0018981398121baa0018b2044300c30233754601a60466ea8c098c08cdd5000c590211980300111980798021bab300d30233754601a60466ea800400888cc0180088cdd7981318119baa0010023001001300b00b2232330010010032259800800c5300103d87a80008992cc004c010006260206604600297ae08998018019812801203e3023001408444464b30013013001899192cc004c09800a00916408c6eb8c090004c080dd5001c566002602e003132598009812800c4cc030dd61812000912cc00400a00b19800803cc09800a26002604e004803902445902218101baa0038acc004c050006264b300130250018998061bac30240012259800801401633001007981300144c004c09c00900720488b20443020375400715980099b87480180062646644b300130270018998071bac30260012259800801401e33001009981400144c004c0a4009009204c8b2048375a6048002604a00260406ea800e2b30013370e9004000c4c8c966002604c0050048b2046375a604800260406ea800e2b30013370e9005000c4c8c966002604c0050048b2046375a604800260406ea800e2b30013370e9006000c4c8c966002604c0050048b2046375c604800260406ea800e2c80f101e203c407880f101e203c301e37540043012004301230130044590090c028004c014dd5005c52689b2b200601", + Type.Tuple([PolicyId, ScriptHash]), + [proxyPolicyId, protocolScripthash], + ), + "PlutusV3", + ); + } +} +export class V1_0OrderOrderElse { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + protocolScripthash: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5916b70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0039bae00248888888888a60022a66008921696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a9980224932657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f6372656400168a998022493665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f75742900168a998022492065787065637420536f6d65286f726465725f646174756d29203d20646174756d00168a998022491972656465656d65723a204f7264657252656465656d6572563100164888896600264653001301000198081808800cdc3a400530100024888966002600460206ea800e2646644b30010078999119912cc004c00c0062b30013018375401700280720328acc004c0240062b30013018375401700280720328acc004c0100062b3001301837540170028072032807202a405480a8660026e952000911192cc004c014006264b3001001801c4c9660020030048024012009132598009810801c01a00a80f0dd7000a042301e001407060346ea80122b3001300b0018992cc00400600713259800800c01200900480244c9660026042007006802a03c375c0028108c07800501c180d1baa004801202e405c60306ea800e44b30010018a5eb82266034602e603600266004004603800280ca44646600200200644b30010018a508acc004cdc79bae301d0010038a51899801001180f000a02e406d223233001001003223300300130020029180d180d800c8c068c06cc06c00646034603660366036603660366036603660366036003301537540132301a301b301b301b301b301b301b001911919800800801912cc00400629422b30013375e0066032603a00314a3133002002301e001405c80da6e012001488888888888a600244646600200200644b30010018a60103d87a80008992cc004c010006260226605200297ae0899801801981580120483029001409d300a00a911194c004006009003400444464b300130140018992cc00400600d13259800800c01e00f007803c4c9660026060007005804205a375c0028180c0b400502b18149baa0038acc004c068006264b300100180344c966002003007803c4c96600260600071330120012259800801401e264b30010018cc00402a003130023033003402900b805c02e01681a0c0c400902f402102d1bac001803c01d0301816800a05630293754007159800980a800c4c9660020030068992cc00400600f0078992cc004c0c000e26602400244b3001002803c4c966002003198008054006260046066006805201700b805c02d0341818801205e804205a3758003007803a060302d00140ac60526ea800e2b30013370e9003000c4c9660020030068992cc00400600f007803c4cc89660020030098992cc00400601500a8992cc004c0cc00e26602a00244b300100280544c96600200319800806c00626004606c006806a01d00e8074039037181a0012064805a060375800300a8052066303000140b86eb4004c0bc00a00e8180c0b400502b18149baa0038acc004cdc3a401000313259800800c01a264b3001001803c01e00f132598009818001c0160108168dd6800c01d0301816800a0563029375400715980099b8748028006264b300100180344c966002003007803c01e264b30013030003802c02102d1bad001803a060302d00140ac60526ea800e2b30013370e9006000c4c9660020030068992cc00400600f007803c01e264b30013030003802c02102d1bae00140c0605a0028158c0a4dd5001c015026204c40988131026204c4098604e6ea80092223322598009809004c4cc8966002602860506ea8006264b3001301b3029375400315980099b8f375c605a60546ea8004dd7180718151baa300d302a3754601e60546ea800e330012225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a00640a9222232330010010052259800800c4016264b3001001899802181a00100344cc014c0d0008cc00c00c005032181a000a0629bab300b302a37540353374a9001198161ba90254bd7024444646464a6605e66e592410d63726564656e7469616c3a3a200037333001001802522100400426602200a00844464b30010038991919911980480119b8a48901280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20725980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81990331bac3036002375a60680026466ec0dd4181a0009ba73035001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6072003337149101023a200098008054c0e800600a805100a181e00144ca6002015303900199b8a489023a200098008054c0e8006600e66008008004805100a181e0012074303c00140e466e29220102207d0000340d86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a206c3758007133005375a0060051323371491102682700329800800cc054dc68014cdc52450127000044004444b30013371000490004400626466453001006980d002ccdc599b800025980099b88002480522903045206e40e066e2ccdc0000acc004cdc4000a4029148182290372070004401866e0c00520203370c002901019b8e00400240d46eb800d0391b8a4881022c20002232330010010032259800980f000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000340c08180c010011153302849013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f726465720016409d023409c605860526ea8c0b0c0a4dd5180718149baa302c302937540030214098660026eb0c030c09cdd500b811998011bac302a3027375402e02b159800980c004c5660026024604c6ea805233001302a302737546054604e6ea80526eb0c0a8c0acc0acc0acc0acc0acc0acc0acc0acc09cdd500bcc0a8c0acc0acc0acc0acc0acc0acc0acc09cdd500bcdd5980418139baa01748888c8cc00400401488c9660026032003133015006375c6062605c6ea800a2b3001301f001899198008009bac3032302f375400644b30010018a518acc004cc014014c0cc006266004004606800314a08169031456600260340031323300100137586064605e6ea800c896600200314a1159800998028029819800c528c4cc008008c0d000502d20628acc004cdc3a400c003132337126eb4c0c8004c8cc004004dd61819981a001112cc0040062900044cc896600266010010005133700002900144005030181a00099801001181a800a064302e375400515980099b87480200062646644b3001302230303754005159800981118181baa30343035003899b89375a606860626ea8008006266e20dd6981a18189baa00200140b914a08170c0c8004dd6981918179baa003302e37546026605c6ea80162b30013370e9005000c4c8cc8966002604460606ea800a2b30013022303037546068606a0071337120026eb4c0d0c0c4dd500144cdc40009bad3034303137540048172294102e18190009bad3032302f3754006605c6ea8c0c4c0b8dd5002c4cc038010cdd2a4004660606062605c6ea80092f5c0815902b205640ac815902b18161baa001407902445660026024604c6ea805233001302a302737540293300137586018604e6ea805c08e660046eb0c0a8c09cdd500b80aa444b30013015302937540031323259800980e98159baa0018acc0056600330013371e6eb8c040c0b0dd5180798161baa3011302c37540086eb8c0bcc0b0dd5000d28528a0528a518cc004cdc79bae302f302c375400804f4a14a2814902944c966002603060586ea8006264b30013019302d375400313259800980d18171baa0018992cc004cdd7981998181baa001301a33032301a3303230333030375400897ae0330324c103d87a80004bd704660026eacc054c0c0dd5000cc054c0c0dd5180a98181baa0069119b89337020026eb4c0d4c0d8c0d8c0d8c0c8dd50110012444b30010028a508994c004c966002604060686ea800626eb4c0d4c0e0dd5981c181a9baa0018a40008190c0dc0066ebcc0dcc0e00066eac00d22259800800c566002600400d13300500348002294103444c96600266ebcc0dc0053010140008acc004cc018010dd6981c181d9bab3038001898019ba6303c0028a5040d51598009980300224001130030078a5040d481a8c0e80050380ca6002003004911981c0011981c1ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0d80066eacc0dc00660760069112cc004cdc8a441000038acc004cdc7a4410000389980298121981e1ba60024bd70000c4cc015300103d87a800000640dd19800803c006446600e0046607c66ec0dd48029ba6004001401c81b8607200481ba2942294229410382294102d181918179baa0018a99816a493865787065637420536f6d65286f757470757429203d206c6973742e61742873656c662e6f7574707574732c20696e7075745f696e64657829001640b065300130010019bad3032302f375400537586026605e6ea807d2225980099b8800248002298103d87a8000899801800801205e1112cc00400a298103d87a80008acc004c0700062603666066606800497ae08cc00400e606a0053010001400c8171032454cc0b124014165787065637420536f6d6528696e7075745f696e64657829203d206c6973742e696e6465785f6f662873656c662e696e707574732c2073656c665f696e70757429001640ac6530010019bac3031302e375403d480010011112cc00400a298103d87a80008acc004cdd7981980100344c068cc0c8dd4000a5eb8233001003981a0014cdc0000a4004801902d20628a99815a48131657870656374205369676e6174757265207b206b65795f68617368207d203d206f726465725f646174756d2e6f776e6572001640a8605e60586ea80162a660549201996578706563740a2020202020202020202076315f305f7574696c69746965732e69735f70726f746f636f6c5f7570677261646564280a20202020202020202020202070726f78795f646174756d2c0a20202020202020202020202073656c665f7363726970745f686173682c0a20202020202020202020202070726f746f636f6c5f736372697074686173682c0a2020202020202020202029001640a502540a4605c60566ea8c0b8c0acdd5180818159baa001302d302a3754003022409c80f20484090812088cc0140088cdd7981598141baa001002223259800800c4c966002602860506ea800a264b300100181244c966002003025812c09604b1332259800800c09e264b30010018acc004c0c800a2b30013019302d375400313259800800c0a6264b30010018992cc00400605713259800800c4c96600200302d8992cc004006264b3001001817c4c96600200313259800800c0c6264b30010018992cc00400606713259800800c4c9660020030358992cc004006264b300100181bc4c96600200313259800800c0e6264b30010018992cc00400607713259800800c4c96600200303d8992cc00400607d03e899912cc00400608113259800800c56600260960051980080c46600202d1980080a4660020251980080846600201d198008064660020151980080445660026064608c6ea801a264b300100182144c966002003043821c10e0871332259800800c116264b3001001823411a08d046899912cc00400609113259800800c126093049824c4cc896600200304b8992cc00400609904c826413226644b300100182744c96600200304f827c13e09f13259800982d001c4cc0f004889660020051598009821982b9baa0128992cc0040060a713259800800c4c9660020030558992cc0040062b300130600028cc00400e264b300130480018992cc0040060b113259800800c56600260c6005132598009825800c4c96600200305b8992cc0040062b300130660028cc00400607505c412d05c418d05c82e41720b88338c19000506218301baa0028acc004c144006264b300100182dc4c96600200305c82e417226644b300100182f44c96600200305f82fc17e26644b3001001830c4c966002003062831418a264b3001306d003820c18d06a1bad00183120da306a00141a06eb4004c1a400a0be8350c19c0050651bad001306600282e20ce3064001418860c06ea800a0b482e905d182f1baa00182ca0c082cc1660b3059419060c200282f8c174dd50014566002609c003159800982e9baa00281ac15d05e415d05a20b4305b37540030564115056417505682b415a0ac8308c17800505c182f00141520a905482a20be305c001416860b06ea804a0a482aa264b30010018acc004c110c160dd5000c4c9660020030548992cc0040060ab055899912cc0040060af13259800800c1620b1058899912cc0040060b513259800800c16e0b705b8992cc004c19800e2b300100782e44c96600200305d82ec1760bb1332259800800c17e264b300100183041820c10608992cc004c1ac00e2602060d602306141a06eb800506b1834000a0cc375c00260ce0108340c19401d06341710631bad00182da0cc306300141846eb4004c18800a0b08318c18000505e1bac001305f00282ac155060182e800a0b6305937540030534159053829c14e0a682f0c16c00905941410571bae001416860ae00282a8dd7000982b00120ae305400141486eb8004c14c0090541828800a09e375c00260a00048288c13800504c1bae001304d002413860960028248c11cdd5003410504441050234105023410502341050234105023410502341050234105023410502341050484106083041820a0983049001411c6eb0004c12000a07d03e4124608c0028220c11800a07903c81e40f10471822000a084304400281d40ea07503a411460840028200c10800a07103881c40e10431820000a07c304000281b40da06d0364104607c00281e0c0f800a06903481a40d103f181e000a074303c00281940ca06503240f4607400281c0c0e800a06103081840c103b181c000a06c303800281740ba05d02e40e4606c00281a0c0d800a05902c81640b1037181a000a064303400281540aa05502a40d460640028180c0b8dd5000c0a102b40a102f40a20510288142066303000140b86eb8004c0bc0090301816800a0563029375400502340982003022811408a0448168c9660026026604e6ea8006264b30013015302837540031302c30293754003153302749013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164098601860506ea8c034c0a0dd5181598141baa0018a998132494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640946600a00446601e600a6eacc034c0a0dd5180698141baa0010020c054dd50049b8748010dc3a400100a805402a01480c8c054004c054c058004c044dd5001c5900e0c040004c02cdd5008c5268a99804a491856616c696461746f722072657475726e65642066616c7365001365640201" + : "590c000101002229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae0039bae002488888888896600264653001300a00198051805800cdc3a4005300a0024888966002600460146ea800e33001300b3754007370e90024dc3a4001300a375400891111991192cc004c0140122b3001301237540170018b20268acc004c0240122b3001301237540170018b20268acc004c0180122b3001301237540170018b20268b202040408080660026e95200091192cc004c01c00626464b3001301a0028024590171bae3018001301437540071598009805800c4c8c96600260340050048b202e375c603000260286ea800e2c809101218091baa002912cc004006297ae089980a9809180b00099801001180b800a028911919800800801912cc00400629422b30013371e6eb8c06000400e294626600400460320028099016488c8cc00400400c88cc00c004c00800a4602a602c00323015301630160019180a980b180b180b180b180b180b180b180b180b000cc040dd500548c054c058c058c058c058c058c05800644646600200200644b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c488888888888cc88cc88cc8966002602a01313259800980b18111baa0018992cc004c06cc08cdd5000c56600266e3cdd7181398121baa001375c601a60486ea8c030c090dd5180718121baa330043758601c60486ea80680862660126eacc028c090dd500d19ba548008cc098dd481025eb822c81122c8110c098c08cdd5181318119baa300d30233754604c60466ea80062c8108cc004dd6181298111baa0180138acc004c0640262b300130153021375402519800981298111baa3025302237540253758604a604c604c604c604c604c604c604c604c60446ea8062604a604c604c604c604c604c604c604c60446ea80626eacc020c088dd500c24444646600200200a4464b3001301c00189980a8031bae302c302937540051598009810000c4c8cc004004dd6181698151baa0032259800800c528c5660026600a00a605c003133002002302f0018a5040a481622b3001301d001899198008009bac302d302a375400644b30010018a508acc004cc014014c0b80062946266004004605e002814902c456600266e1d200600189919b89375a605a00264660020026eb0c0b8c0bc008896600200314800226644b300133008008002899b800014800a20028160c0bc004cc008008c0c000502d18149baa0028acc004cdc3a4010003132332259800981198159baa0028acc004c08cc0acdd518179818001c4cdc49bad302f302c37540040031337106eb4c0bcc0b0dd5001000a0548a5040a8605a0026eb4c0b4c0a8dd500198149baa30133029375400b15980099b87480280062646644b30013023302b3754005159800981198159baa302f3030003899b89001375a605e60586ea800a266e20004dd6981798161baa00240a914a08150c0b4004dd6981698151baa00330293754605860526ea801626601c00866e9520023302b302c3029375400497ae0409c8139027204e409c8138c09cdd5000a2c81022b300130153021375402513259800980b18111baa001899192cc004c070c090dd5000c56600264b3001980099b8f375c601e604c6ea8c038c098dd5180818131baa001375c6052604c6ea800a9429450244528c6600266e3cdd7181498131baa001022a50a5140908120cc014dd6180798129baa01b0228992cc004c064c094dd5000c4c9660026034604c6ea8006264b3001301b302737540031325980099baf302c30293754002603066056603066056605860526ea80112f5c06605698103d87a80004bd704660026eacc04cc0a4dd5000cc04cc0a4dd5180998149baa0069119b89337020026eb4c0b8c0bcc0bcc0bcc0acdd50108012444b30010028a508994c004c9660026042605a6ea800626eb4c0b8c0c4dd5981898171baa0018a40008160c0c00066ebcc0c0c0c40066eac00d22259800800c566002600400d13300500348002294102e44c96600266ebcc0c00053010140008acc004cc018010dd69818981a1bab3031001898019ba630350028a5040bd1598009980300224001130030078a5040bc8178c0cc0050310ca60020030049119818801198189ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0bc0066eacc0c000660680069112cc004cdc8a441000038acc004cdc7a4410000389980298111981a9ba60024bd70000c4cc015300103d87a800000640c519800803c006446600e0046606e66ec0dd48029ba6004001401c81886064004818229422942294103122941027181598141baa0018b204c3298009800800cdd6981598141baa0029bac30113028375403c9112cc004cdc40012400114c103d87a800089980180080120521112cc00400a298103d87a80008acc004c0740062603266058605a00497ae08cc00400e605c005337000029000a00640a0815a2c8128ca600200337586054604e6ea807690002002222598008014530103d87a80008acc004cdd7981600100344c060cc0acdd4000a5eb823300100398168014cdc0000a4004801902720548b20483028302537546050604a6ea80562c811a2c8118c09cc090dd5181398121baa300e30243754002604c60466ea80062c8108cc004dd6181298111baa0180138b20404080810088c8c966002602e60466ea800a2646644b3001302b0018992cc004c06cc09cdd5000c4c8c8c8c8c8c8c8c8c8c8c8ca6002606e003303700b981b8054c0dc026606e0113037007981b8034c0dc016606e00930370039bac3037002488888888889660026086019133021304201713302100a1330210091330210081330210071330210061330210051330210041330210031598009819181f1baa002899191919194c004dd71823800cdd71823802cdd718238024dd71823801cdd71823801244444b3001304d00689981a005912cc00400a2b3001303e304a375402f132323259800982900144cc0f0c14400c4c966002608400313259800982a000c4c8c966002608a00313259800982b800c4cc104c1580040c22c82a0c148dd500145660026092003132323298009bad30580019bad30580039bad305800248896600260b80090358b20b2182c000982b80098291baa0028b20a0414060a06ea8004c14c0062c8288c13cdd50014566002608c00315980098279baa00281645905045904d209a304d375400316413c60a000260a000260966ea805e2c824a264b3001303f304b37540031323232332259800982a801c4c8c8cc896600260b20071300b305900c8b20ac375c60ac0026eb8c158008c158004dd6182a002c590521bad3052001375a60a400460a400260a200260986ea80062c8250c13800904c45904a0c11c004c118004c114004c110004c0fcdd500145903d4590400c0dc004c0d8004c0d4004c0d0004c0cc004c0c8004c0c4004c0c0004c0bc004c0b8004c0b4004c0a0dd5000c590261815000c590281bae3028001302900130243754005164088200264b300130163022375400313259800980c18119baa0018981398121baa0018b2044300c30233754601a60466ea8c098c08cdd5000c590211980300111980798021bab300d30233754601a60466ea800400888cc0180088cdd7981318119baa0010023001001300b00b2232330010010032259800800c5300103d87a80008992cc004c010006260206604600297ae08998018019812801203e3023001408444464b30013013001899192cc004c09800a00916408c6eb8c090004c080dd5001c566002602e003132598009812800c4cc030dd61812000912cc00400a00b19800803cc09800a26002604e004803902445902218101baa0038acc004c050006264b300130250018998061bac30240012259800801401633001007981300144c004c09c00900720488b20443020375400715980099b87480180062646644b300130270018998071bac30260012259800801401e33001009981400144c004c0a4009009204c8b2048375a6048002604a00260406ea800e2b30013370e9004000c4c8c966002604c0050048b2046375a604800260406ea800e2b30013370e9005000c4c8c966002604c0050048b2046375a604800260406ea800e2b30013370e9006000c4c8c966002604c0050048b2046375c604800260406ea800e2c80f101e203c407880f101e203c301e37540043012004301230130044590090c028004c014dd5005c52689b2b200601", + Type.Tuple([PolicyId, ScriptHash]), + [proxyPolicyId, protocolScripthash], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolManagementProtocolManagementWithdraw { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594382010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a4912657870656374205b5d203d206c6973745f6200168a99801a491d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a4926657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a49d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d6572001648888888888888966003300130133754033370e90034dc3a4001370e9002244446465300130183754003301c006980e0012444b300130060038cc004c07cc070dd50024dd2a4001223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c918101810800c8c080c084c08400646040604260426042604260426042604260426042003374a900124444444444465300122259800980b18151baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130330028cc00400e264b3001301b0018992cc00400600f13259800800c566002606c00513259800980f000c4c96600200300a8992cc0040062b300130390028cc00400601900b403900b40d900b805c02e01681d0c0dc00503518199baa0028acc004c050006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013040003809c04903d1bad001808a080303d00140ec6eb4004c0f000a01c81e8c0e80050381bad0013039002805a074303700140d460666ea800a012818103018189baa0018042066804402201100840dc60680028190c0c0dd50014566002602200315980098181baa002803c019031401902d205a302e3754003005402100540c1005802c01600a81a0c0c400502f1818801400e007003801a064302f00140b460566ea800e0028142444653001001802400d001111192cc004c068006264b300100180344c966002003007803c01e00f13259800981b001c0160108198dd7000a06c303300140c4605e6ea800e2b300130100018992cc00400600d13259800800c01e00f13259800981b001c4cc05000489660020050078992cc0040063300100a800c4c008c0e400d00a402e01700b805a074303700240d500840cc6eb000600f00740d860660028188c0bcdd5001c566002603200313259800800c01a264b3001001803c01e264b3001303600389980a000912cc00400a00f13259800800c6600201500189801181c801a014805c02e01700b40e8606e00481aa0108198dd6000c01e00e81b0c0cc00503118179baa0038acc004c06c006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c96600260720071330170012259800801402a264b30010018cc00403600313002303c003403500e807403a01c81e8c0e8009038402d0361bac0018054029039181b000a068375a002606a00500740d860660028188c0bcdd5001c566002601e00313259800800c01a264b3001001803c01e00f13259800981b001c0160108198dd6800c01d0361819800a062302f37540071598009807000c4c9660020030068992cc00400600f007803c4c966002606c0070058042066375a00300740d860660028188c0bcdd5001c566002601a00313259800800c01a264b3001001803c01e00f0078992cc004c0d800e00b00840cc6eb80050361819800a062302f375400700540b0816102c205840b0816102c18169baa002911919800800801912cc0040062980103d87a80008992cc004c010006260206605e00297ae089980180198188012054302f00140b491119192cc0040063300122259800980d98179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b300130200018acc004c0d4dd5001401e00c81b22b300130160018992cc00400600f13259800800c02201100880444c966002607800700a804a072375c00281e0c0e4005037181a9baa0028acc004c07c006264b3001001803c4c96600260760050098042070303900140dc606a6ea800a00c8191032206430333754003005403100540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444b3001301b302f375400713259800800c00a264b30010018992cc00400600913259800800c4c966002606a00315980099b8948010c0d000600d13259800981d00244c9660026044003159800981b9baa006804c0210384566002603000313259800800c026264b3001001805402a01513259800981f001c03201681d8dd6800c02903e181d800a0723037375400d1598009810800c566002606e6ea801a01300840e100840d081a1034181a9baa005803a06e3016303400140c900640d86ea800600b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4889660026036605e6ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981d001c02200e81b8dd6800c01903a181b800a06a375c002606c00481b8c0d000503218181baa003800a05a911192cc004c070006264b3001001801c4c9660020030048024012264b3001303800380340150351bad0018022070303500140cc60626ea80122b300130120018acc004c0c4dd5002400e0048192004817102e18179baa0034888a6002444b3001301f3033375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c566002607e005198008034660020030098042018804201c804207880440220110084100607a00281d8dd6800981e001401503d181d000a070303a002801c00e00700340ec607000281b0c0d0dd5001c005031488966002603e60666ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b00d8992cc004c11400e3300100c8cc00401201f00e404900e405100e41086eb400601a8228c1080050401821001402e01700b805a086304000140f86eb4004c0fc00a0108200c0f400503b1bad001303c002802a07a303a00140e06074005003801c00e00681d8c0e0005036181a1baa003800a0629112cc004c07cc0ccdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b300130450038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001304a00380a404d0471bae0014128608e0028228dd70009823001208e3044001410900e404900e405100e41086eb000601b00d411460840028200c10800a01700b805c02d0431820000a07c375a002607e0050084100607a00281d8dd6800981e001401503d181d000a070303a002801c00e00700340ec607000281b0c0d0dd5001c005031488966002603e60666ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009822801c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009825001c0520268238dd7000a094304700141146eb8004c1180090471822000a084807202480720288072084375800300d806a08a30420014100608400500b805c02e0168218c10000503e1bad001303f0028042080303d00140ec6eb4004c0f000a00a81e8c0e8005038181d001400e007003801a076303800140d860686ea800e00281892222598009810181a1baa0098992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c966002003029814c4c96600260800071598009813981d9baa0068992cc00400605713259800800c0b20591332259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281940ca26644b300100181a44c96600200303581ac0d626644b300100181bc4c96600200313259800800c0e6264b30010018acc004c14000a26605c01c44b3001002899818006912cc00400a330010078cc004016264b3001303c3050375403313259800800c102264b30010018992cc00400608513259800800c56600260b200513322598009821000c4c9660020030468992cc00400608f0478992cc004c17800e26607800244b3001002803c4c96600200319800800c4c008c18400e096814a09704b825c12d062182f80120ba82420b63758003047823a0bc305b001416460ae6ea80162b300130380018992cc00400608d13259800800c11e08f13259800982f001c4cc0f000489660020050078992cc00400633001001898011830801c12d029412e09704b825a0c4305f0024175048416c6eb000608f047417860b600282c8c15cdd5002c566002608200313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a054825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa0058acc004c10c006264b300100182344c966002003047823c4c96600260bc00713303c0012259800801401e264b30010018cc0040062600460c200704b40a904b825c12e0968310c17c00905d412105b1bac001823c11d05e182d800a0b23057375400b159800981b800c4c9660020030468992cc00400608f0478992cc004c17800e26607800244b3001002803c4c96600200319800800c4c008c18400e096815a09704b825c12d062182f80120ba82420b63758003047823a0bc305b001416460ae6ea80162b300130360018992cc00400608d13259800800c11e08f13259800982f001c4cc0f000489660020050078992cc00400633001001898011830801c12d02b412e09704b825a0c4305f0024175048416c6eb000608f047417860b600282c8c15cdd5002c566002606a00313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a058825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa0058acc004cdc3a401c00313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a058825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa005822a0a8415082a105420a8415082a10540992cc004c104006264b3001001822c4c966002003159800982e001466002003008823205282320b2823411a08d046417460b400282c0c158dd50014566002606e00313259800800c116264b30010018acc004c17000a2b300130433057375400313259800800c11e264b30010018992cc00400609313259800800c56600260c000519800801c6600200300c825205c825205c82520ba825412a09504a418460bc00282e0c17800a091048824412105f182e000a0b43058375400304641550464165046823411a08c82e8c168005058182b1baa00282220a6414c60a86ea8004c150dd5001c10d056410e087043821a0b43057001415460ae005041820c10608282c0c15400505318289baa01981fa09c133032015225980080146600260aa60a46ea809a60aa60a46ea8c0bcc148dd501348896600200514c0103d87a80008acc004c10000626070660ae60b000497ae08cc00400e60b2005337000029000a006414882b24606860a46ea8c158c8cc004004008896600200314bd708103d87a80008101800044c8cc8966003300130393057375460b60074a14a282aa2660b530014a14c103d87a8000a60103d87980004154660b46e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c17400400e294626600400460bc00282b905b44cc16a600294298103d87a8000a60103d87980004154660b46e9c0092f5c113305a9800a51a60103d87a8000a60103d87980004154660b46e9ccc168dd400080125eb8105520aa375860b260b40026eb4c164008cc008008c164005056488c8cc00400400c896600200314bd7044cc896600266ebcc16cc160dd5182d982c1baa3035305837540046064660b46ea40152f5c113305a00233004004001899802002000a0aa3059001305a001415d2259800800c52000899b8048008cc008008c160005055488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a2003006415d133005005305e004415c6eb8c15c004dd5982c000982d000a0b014bd6f7b630488966002608060a86ea800e264b300100180144c966002003003801c00e264b3001305c003802c0110591bad001801a0b83059001415c60aa6ea800e0028292460ac60ae60ae60ae00337029000488c8cc00400400c896600200314bd7044cc160dd39801982c80099801001182d000a0ae9182b182b982b982b982b982b982b982b982b982b982b800c888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd7182e000cdd6982e800ccc00c00cc184009009182f800a0ba375660b40066eb8c15c004cc00c00cc170008c168005058488c8cc00400400c896600200314a115980099baf3059001374e00714a3133002002305a001414c82ba444b300130403054375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c96600260c200519800803c6600200b132598009824800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e3754009159800981f800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e37540091598009824000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e37540091598009825000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c1a000e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1b400e02d01541a86eb800506d1835000a0d0375c00260d20048350c19c00506540410651bac001807c03d0681832800a0c6375a00260c800500c419460c40028300c178dd50024566002607c00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009834001c0460208328dd6800c03d0681832800a0c6375a00260c800500c419460c40028300c178dd50024566002607a00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a025132598009835801c0520268340dd6800c04906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e3754009159800981e000c4c96600200300b8992cc00400601900c80644c96600260ca00700e806a0c4375a00300c419460c40028300c178dd5002456600266e1d200e0018992cc00400601713259800800c03201900c8992cc004c19400e01d00d41886eb40060188328c188005060182f1baa00480520b6416c82d905b20b6416c82d905b182e1baa003804a060804a068804a0bc305f001417460be005007803c01e00e8300c17400505b182e801401600b005802a0bc305b001416460b6005003801c00e00682e0c164005057182a9baa003800a0a49182b182b982b982b982b800c888ca6002003004801a002222598008014400633001003982e0014cc010c16c00800500320b29b89480026e2120004888888888888888888a600260c86ea804a602202322259800980980144ca6002003004801d200040044444b30010038acc00400a200306641b51598008014196330010049838001cc1c000a6644b30013007002899b80003375a609660dc6ea800a2a660d89211a6578706563742076616c69646174696f6e287265717565737429001641ac60de0066eb4c1bc00900420da41b5153306649012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900164195300e00e91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c835a26600a00a60e40088358dd718358009bad306c001306e00141b06602200800629000244444646644b300130590088cc0048896600260b660de6ea800e264b300100180144c966002003003801c00e264b30013077003802c0110741bad001801a0ee307400141c860e06ea800e002836a444466e24004ca60020030058025200040044444b30010038acc00400a200306f41d915980080141ba33001004983c801cc1e400a646644b300130623077375400513259800800c6600200315980099baf301f3079375400460f860f26ea80122b30013375e60ac60f26ea8004c1f0c1e4dd500144c96600260c860f26ea800626464b30013370e6eb4c1fc008dd6982c983e1baa0058acc004cdc39bad307f001375a60b060f86ea80162b30013375e60fe610002002603660f86ea8016266e0002260026eacc164c1f0dd5182c983e1baa0079bae307f00d9bae307f30800100d404d153307a49012d65787065637420726573657276655f6173736574203d3d20726571756573742e726573657276655f6173736574001641e5153307a4911d657870656374207969656c64203d3d20726571756573742e7969656c64001641e5153307a49122657870656374207072696e636970616c203d3d20726571756573742e616d6f756e74001641e460fe00260f46ea80062a660f0921184578706563746564204f4465706f73697420616374696f6e001641dc60aa60f26ea80062a660ee92012f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e001641d915330774912f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641d90714065071838c1c60e283f0c1ecc1e0dd500141bd0751829183b1baa30533076375400260f200660f0006802107620ec91111119192cc004cdc380080244c8c8c96600266e1ccdc09bad307b3078375460f60046eb4c1ecc1e0dd5183d80180244c9660033001002a5191112cc0040062b30013371e008911008a5189980f0029983f9ba90043307f375200697ae041e914a083d101b44cdc4803cc004dd6180e183c9baa00ca400122323259800cc004c1a000694294507a4566002603200313370000666e0ccdc10009bad305a307d37540086eb4c164c1f4dd5002454cc1ed2401176578706563742061637475616c5f64656c7461203e2030001641e9100341e930010059bae307f0019bae307f308001001404c6eb0c1f8c1ecdd5001202e835a0ec3301c3758603660f06ea802c8dd6183e183c9baa001835a0ea375660f460f600260f400330010079bae30783075375460a060ea6ea802200d0054025153307349123657870656374206d696e745f616d6f756e74203d3d2065787065637465645f6d696e74001641c8b3001305f300c0018a4001159800800c192264b300130790028992cc004cdc79bae307500248810455534472008800c19d0731bad3075001832a0ec307700141d48388cc06cdd5980918399baa005375c60a060e66ea8c138c1ccdd50034cc008dd6183818369baa01a3758609460da6ea806e609460da6ea810922222332259800acc004c04000a294633001305f001a50a5141c4838a264b30013060307437540031323322323322598009833183d1baa0018992cc004cdc399b81375a60fe00200c00915980099b87375a60fe6100020026eb4c1fcc2000401e2b300130190098acc00660026604c6eb0c1fcc1f0dd50311bae3058307c375460ae60f86ea802e0193307e3059307c375460ae60f86ea802ccc1f93001054455534472004bd7052000403915980099b890033233001001375860b260fa6ea818c896600200314800226644b30013375e6106026100026ea8008c20c04c21004c21004c21004c21004c21004c21004c21004c21004c21004c21004c21004c20004dd5007c4cdc0000cc004dd5982e9840009baa0029bae305d308001375460b66100026ea803e9101045553447200405d100141f46102020026600400461040200283fa3300100b8314dd6982c183e1baa02a9bad3022307c3754055009805201a8a9983d24812b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001641e5153307a491536578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473286f726465725f696e707574732c206465706f7369745f72657175657374732c20757364725f61737365742c203029001641e5159800cc004cc098dd6183f983e1baa062375c60b060f86ea8c15cc1f0dd5005c032660fc60b260f86ea8c15cc1f0dd50059983f2601054455534472004bd704c08400d00e4660020170629bad3058307c3754055375a604460f86ea80aa01300a4035153307a491906578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a20202020202029001641e483ca2a660f49213a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265001641e5153307a4913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001641e465300133012001375a60fe60f86ea800a6eb8c164c1f0dd5182b983e1baa00b9bae3022307c375460ae60f86ea802d222598009835183f1baa0038992cc004cdd79841809840009baa308301308001375400260b466104026ea40092f5c11598009830cc004dd5982e9840009baa00180152210d7374616b696e675f7661756c7400405d1325980098359840009baa0018992cc004006330010018acc004cdd798141841009baa0034c103d87a8000899842009ba898009bab305f3082013754007005a44104555344720040646610802610a026104026ea8004cc2100400d2f5c107841fd07d405507d83ec1f60fa843808c21004c20404dd5000c54cc1fd24012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001641f860b86100026ea80062a660fc92014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641f5153307e49141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641f461040260fe6ea800e2a660fa92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641f0375860ae60f66ea81862a660f292013565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f696478001641e066e04018004c1f0c1f4c1f4c1f4c1f4c1f4c1e4dd5013acc004c050006266e10cdc1002801000c5200041d46eb4c1e4004dd6983c983b1baa3079980082e4dd7183c983b1baa30513076375400b375a60a460ec6ea80926eb4c070c1d8dd50122014329800998060009bad307930763754005375c60a660ec6ea8c144c1d8dd5002cdd7180e183b1baa30513076375400a9112cc004c190c1e0dd5001c4c96600266ebcc1f4c1e8dd5183e983d1baa3057307a375400260a8660f86ea40092f5c1159800982dcc004dd5982b983d1baa3057307a3754003002a4410d7374616b696e675f7661756c74004045132598009832983d1baa0018992cc0040063300100189983f1ba898009bab3059307c375460b260f86ea800e00b489045553447200404c660fc60fe60f86ea8004cc1f800d2f5c1077403d07783bc1de0ee840808c1f8c1ecdd5000c1c9078182b183d1baa3057307a375400315330784901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd15330784914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea800e2a660ee92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641d8375860f060ea6ea816e2a660e692013365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f696478001641c8602660e86ea808a2a660e492012e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001641c530010029bac30753072375404123010375a60a060e66ea800500b4c00400a9000488cdc00009bad3050307437540048081159800982b80446600244b30010018a40011337009001198010011839800a0e0911194c0040060090034004444b30010028acc00400629462941074456600200314a115980099802183b0011bad30760018cc00400e60ee0053077001400d14a0838107420e89119b83337040046eb4c12cc1bcdd50009bad304c306f375400333002375860e060da6ea8068dd6182518369baa01b982518369baa042488888c9660026645300132330010010032259800800c528456600266ebcc1e8c1dcdd5183d183b9baa30543077375460f400260a2660f26ea400d2f5c114a3133002002307b00141d083c29429450721bac3076307337540b26eb8c064c1ccdd5182718399baa0028acc004cc896600266e1cc00c008c00c0162b300130200018cc00400a0032232598009831983b9baa001899192cc004c198c1e4dd5000c4c96600266e1cdd6983f0009bad3058307b375400713375e60fc60fe002603460f66ea800e2941078183d1baa0018a5041dc60aa60f26ea8c96600260c860f26ea8006264b30010018cc0040062b30013375e604260f66ea800cc1f8c1ecdd5003456600266ebcc160c1ecdd5000983f183d9baa0038800c54cc1e52413865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e001641e1153307949138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641e1073406d073839c1ce0e6840008c1f4c1e8dd5000c1c5077182a983c9baa30563079375400860f660f06ea80062a660ec92013e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f69647829001641d46601a00e002803a2a660e69201376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f726571756573747329001641c9153307349139657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e67746828726571756573747329001641c86603a6eb0c1d8c1ccdd502c9bae304f30733754609c60e66ea8008dd6182818399baa0218acc00660026eb0c13cc1ccdd502ccdd6183b18399baa0219bac3016307337540049114c00401a0052232598009832183c1baa0018cc004c1f0c1e4dd5000cdd6180c183c9baa0039919828002919baf307e307b37540026e9c008dd6180c183c9baa00348896600260ce60f66ea80062b30013375e60fe60f86ea800cc1fcc1f0dd5183f983e1baa0068acc004cdd7982c183e1baa0033059307c375460fe60f86ea801a266e1e60026eacc164c1f0dd5001cdd7183f8014dd7183f98400080120263300d325980099b880014800226044003100141e86eb4c164c1f0dd5003183f983e1baa0018a5041e514a083ca2a660f492015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001641e48a9983ba493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f69647829001641d86601c00a00280411305e9800cc00400e6eb0c1d8c1ccdd5010c96600260206eb4c144c1d0dd5000c4c17cdd69828183a1baa0018a5041c48062660366eacc048c1ccdd502c9bae305030733754609c60e66ea800b30010599bae307630733754609c60e66ea800a6eb4c13cc1ccdd5010cdd6980c98399baa021401d330173758602c60e66ea80088dd6183b983a1baa00148888ca600260f6003375660f660f8003307b003acc004c18cc0400122900045660020090688992cc004c1f4016264b30013371e6eb8c1e400922010455534472008800c1ad0771bad3079001834a0f4307b00441e483a9222259800cc00400e9464444b30010018acc004cdc78022441008a5189981080519841009ba90043308201375200697ae041f514a083e901e456600266e1ccdc09bad307f307c37540086eb4c1fcc1f0dd5001000c4c96600266e1e60026eb0c080c1f4dd500652000911919912cc006600260da0034a14a283fa264b3001337126602800200c00713370000a0031533081014912d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642000466e0800401a2b3001301f0028802454cc200052401186578706563742061637475616c5f64656c7461203e3d2030001641fc83fa600200f375c610602003375c61060261080200280b8ca60020234800244b30013375e60446106026ea8008dd3801c4cdc00009bad30603083013754005100142000480f8dd61841809840009baa003375861040260fe6ea800901b19b8100200a8801454cc1ed2413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c7461001641e8b300130180098a400314800907941bd07941b90790c1ec00915330714901a26578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641c11533071491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001641c1153307149142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c7429001641c0600a00a8a5041a8835088c8cc004004008896600200314bd7044cc1c4c96600260b660de6ea8006260e660e06ea80062a660dc92013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641b46600a0086eb4c1c8004cc008008c1cc0050701111192cc004c16cc1bcdd5000c4c96600266ebcc1d0c1c4dd5183a18389baa304e307137540026096660e66ea40152f5c115980098294c004dd5982718389baa304e30713754003005a44108747265617375727900402113259800982e18389baa0018992cc004006330010018992cc004c17cc1ccdd5000c4c96600266ebcc1e0c1d4dd5183c183a9baa001304f33077375201297ae08acc004c15a60026eacc148c1d4dd5000c0269101087472656173757279004031132598009830183a9baa0018992cc004006330010018acc004cdd7980e983b9baa0034c103d87a800089983c8029983c8009983c9ba6329800800cdd5982a983c1baa00499198008009bab30563079375460ac60f26ea8024896600200314bd6f7b63044c8cc1f4cdd8183d0009ba63233001001375660f800444b30010018a5eb7bdb182264661000266ec0c1f4004dd418119bad307e0013300300330820100230800100141f86600600660fe00460fa00283d90011112cc00400a2003132332298008034c20404016646600200200a44b30010018998408099bb037520086e9800d2f5bded8c113298009bae307f0019bab3080010019842008012444b30013372001000713308501337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528210a02880144cc21804cdd81ba9009374c002004840808ca6002003008801a002222598008014400626466453001006984680802cc8cc004004014896600200313308d01337606ea4010dd4001a5eb7bdb1822653001375c611602003375a61180200330900100248896600266e4002000e2661220266ec0dd48041ba80070058acc004cdc7804001c4c96600260f600310028998490099bb037520126ea000400908d0119b800070028998488099bb037520066ea0008cc01801800508c01211802184700800a1180240186eb8c21804004dd6984380800984480801210e028998428099bb037520066e98008cc01801800508001210002184100800a1000240186eb8c1e8004dd5983d800983e80120f64bd7041b507441b101e41b20d906c83620f8307930763754003153307449012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001641cc60a260ea6ea80062a660e6920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641c9153307349143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641c860ee60e86ea80062a660e492013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001641c4660126eb0c13cc1ccdd5004002c19d01a419e0cf067833a0f0307530723754003153307049013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001641bc609a60e26ea8c138c1c4dd5000c54cc1bd2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641b9153306f4914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641b860e660e06ea80062a660dc92013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641b46600a6eb0c1c8c1bcdd5002001112cc004cdc4000a400114c103d87a8000899803001000a0d22264b3001001820c106264b300100182144c966002003043821c10e0871332259800800c116264b30010018acc004c17000a264b300130443058375400513259800800c122264b30010018992cc00400609513259800800c4c96600200304c8992cc00400609b04d826c136264b300130640038acc004c12cc17cdd500344c96600200304f8992cc0040060a1050828414226644b300100182944c966002003053829c14e0a7132598009835001c4c96600260a400313259800800c15a264b300100182bc15e0af0578992cc004c1b800e02505841ac6eb800506e1835800a0d2306737540171598009824000c56600260ce6ea802e01f05541a105541908320c194dd500541510671bae00141a860ce0028328dd7000983300120ce3064001418860c06ea801a09c82ea09c8308dd7000a0c83061001417c60c200504b825c12e0968310c17c00505d182f8014126093049824a0c0305d001416c60b26ea800a08e82b04c01cc17002208c82ca08d046823411905d182d000a0b0375c00260b200482d0c15c0050551bac001820c105058182a80120a681f204081f20408992cc00400607f03f81fc4c8c00cc158010dd6800c0fd056182980120a28992cc00400607b03d81ec4c8c00cc150010dd6800c0f50541828801209e81d209a81d40ea07503a4144609c0028260c13800a07103881c40e104f1826000a094375a0026096005035413060920028238dd6800982400140c90491823000a0883758002608a00502f817a08c304300141046eb0004c10800a05902c410c608000281f0c0f0dd500340a903940a903d1bac001814c0a5040181e800a076303d002813c09e04f02740f8607600281c8c0ec00a04b025812c09503c181c800a06e3035375401302340c8406e03701b80da06433223259800980d18171baa001898179919bb030330013033303400137586064605e6ea80062a6605a92018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc02ccc0ccdd480225eb812f5c11301433033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756600e60586ea8048dd7181798161baa00132323259800800c5660026032605a6ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0dc00a2b3001301e3032375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006071038899912cc00400607513259800800c56600260a00051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606e60966ea801a264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c12609313259800982f801c4cc0f4048896600200519800809440c209881aa264b30010018acc004c124c174dd5000c4c96600200304e8992cc00400609f04f899912cc0040060a313259800800c14a0a5052899912cc0040060a913259800800c1560ab0558992cc004c1ac00e2b300100782b44c96600200305782bc15e0af1332259800800c166264b300100182d416a0b505a8992cc004c1c000e2602060e002305b41b46eb80050701836800a0d6375c00260d80108368c1a801d06841590681bad00182aa0d6306800141986eb4004c19c00a0a48340c1940050631bac0013064002827c13d0651831000a0c0305e375400304d416d04d826c13609a8318c18000905e412905c1bae001417c60b800282d0dd7000982d80120b83059001415c6eb8004c160009059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270c130dd500340ed04940ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed04d40ee07703b81da0a2304e00141306eb0004c13400a071038413860960028248c12c00a06d03681b40d904c1824800a08e304900281a40d20690344128608e0028228c11c00a06503281940c90481822800a086304500281840c2061030411860860028208c10c00a05d02e81740b90441820800a07e304100281640b205902c4108607e00281e8c0fc00a05502a81540a9040181e800a076303d00281440a205102840f8607600281c8c0ec00a04d026813409903c181c800a06e3039002812409204902440e8606e00281a8c0ccdd5000c0890304089034408a0450228112070303500140cc6eb8004c0d00090351819000a060302e375400301d40ad01d80ec07603a8198c9660026032605a6ea8006264b30013019302e375400313032302f3754003153302d4913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06014605c6ea8c02cc0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac660066eb0c028c0b4dd50099191980080098019bab300c302f37546018605e6ea8008896600200314a115980099b8f375c606600205914a3133002002303400140b48188c004004896600200314bd7044cc0bcc0b0c0c0004cc008008c0c400502e0888c966002602c00313259800800c00e264b300100180240120090048992cc004c0c800e00d00540bc6eb80050321817800a05a302b37540091598009806000c4c9660020030038992cc0040060090048024012264b30013032003803401502f1bae00140c8605e0028168c0acdd500240090282050302937540068acc004c02000e26464b30013009301d37546042604400514a314a080d8dd69810000980e1baa0048b20324064301b301c001301b00445268a99808a491856616c696461746f722072657475726e65642066616c7365001365640401" + : "59230b010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd50024dd2a4001223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c918089809000c8c044c048c04800646022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911919800800801912cc0040062980103d87a80008992cc004c010006260206604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300d0018992cc004c08800626601e6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc03cdd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998089bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300c001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260160031323259800981180140122c8100dd69810800980e9baa0038acc004c02800626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009806000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a180d1baa002912cc004c054c068dd500144c8c8c96600260440051323259800980d000c56600260406ea800a00d1640851598009808000c4c8c966002604c0050088b2046375a604800260406ea800a2b300130190018acc004c080dd5001401a2c810a2c80f101e203c301e3754002604200716407c64b3001301e0018acc004cdc4a4008603a0031689807180e800a0388b203e37546040002604000260366ea800a2c80ca4464b30013016001899192cc004c08800a00916407c6eb4c080004c070dd5001c5660026018003159800980e1baa00380145901d45901a2034301a375400491111199119914c004cc88c966002603e60486ea80062604a6466ec0c0a4004c0a4c0a8004dd6181418129baa0018b204632330010010032259800800c5300103d87a80008992cc004cdd7981300099ba548010cc0a4c040cc0a4dd480225eb812f5c11301933029374e66052604c00266052604e00297ae04bd7044cc00c00cc0ac0090251814800a04e3756601860446ea805cdd7181298111baa002912cc004c078c08cdd500144c8c8c8cc8966002605a007133008302c0051330110020068b2054302a001375a60540046054002605200260486ea800a2c811244b3001301e302337540051323232323298009bad302c0019bad302c0049bad302c003981600124444b30013031005899806181800489980a80080545902e0c0b0004c0ac004c0a8004c0a4004c090dd500145902248966002603c60466ea800a26464646465300137586058003375a6058009375a6058007302c0024888966002606200b13300c3030009133015001132332259800981a001c0362c8188dd718188009bae303100530310048b205c181600098158009815000981480098121baa0028b2044912cc004c078c08cdd500144c8c8c8c8ca60026eb0c0b00066eb4c0b00126eb4c0b000e605800491112cc004c0c4016266018606001226602a0022646644b30013034003806c590311bae3031001375c606200a60620091640b8302c001302b001302a001302900130243754005164088911112cc004c084c098dd5002c4c8c8c8cc8966002606000713259800981398161baa00189919191919194c004c0d80066eb0c0d80166eb4c0d80126eb4c0d800e606c004911112cc004c0f001a2660526eb0c0ec02c896600200513302b006225980080144cc07c0144cc07c0244c966002606e60786ea804a2646464b3001304400289919912cc004c0f400a264b3001304800189981a9bac3047001225980080140122660406092004260026094004823a2c8228c10cdd5001c5660026066005132598009824000c4cc0d4dd61823800912cc00400a009133020304900213001304a002411d16411460866ea800e2b3001303c0028992cc004c12000626606a6eb0c11c00489660020050048998109824801098009825001208e8b208a30433754007159800981f00144c96600260900031330353758608e00244b300100280244cc084c1240084c004c12800904745904518219baa0038acc004c0c800a264b3001304800189981a9bac3047001225980080140122660446092004260026094004823a2c8228c10cdd5001c5660026062005132598009824000c4cc0d4dd61823800912cc00400a009133022304900213001304a002411d16411460866ea800e2b300130300028992cc004c12000626606a6eb0c11c00489660020050048998119824801098009825001208e8b208a3043375400715980099b874803800a264b3001304800189981a9bac3047001225980080140122660466092004260026094004823a2c8228c10cdd5001c59041208241048209041208241048208c100dd50008992cc004c0f0006264b300130470018998159823000803c5904418211baa0038acc004c0c8006264b300130470018992cc004c0f8c10cdd5000c4c8c8c966002609600513302b304a00313302b00100b8b20903049001304900130443754003164108608c00316411060846ea800e2c820104018201baa00230430038b208230420013042001303d37540251640ec26605a02444b30010028cc004c104c0f8dd500e4c104c0f8dd51815181f1baa01c9112cc00400a2980103d87a80008acc004c0ec0062606666086608800497ae08cc00400e608a005337000029000a00640fc82124605e607c6ea8c108c8cc004004008896600200314bd708103d87a80008101800044c8cc89660033001303430433754608e0074a14a2821226608d30014a14c103d87a8000a60103d879800041086608c6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12400400e29462660040046094002822104744cc11a600294298103d87a8000a60103d879800041086608c6e9c0092f5c11330469800a51a60103d87a8000a60103d879800041086608c6e9ccc118dd400080125eb8104220843758608a608c0026eb4c114008cc008008c114005042488c8cc00400400c896600200314bd7044cc896600266ebcc11cc110dd5182398221baa303030443754004605a6608c6ea40152f5c113304600233004004001899802002000a08430450013046001410d2259800800c52000899b8048008cc008008c110005041488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064111133005005304a00441106eb8c10c004dd598220009823000a08814bd6f7b630489660026074607e6ea800a26464b30013046002801c590431bad3044001304037540051640f9230423043304330430019b814800244646600200200644b30010018a5eb822660886e9cc00cc114004cc008008c11800504348c108c10cc10cc10cc10cc10cc10cc10cc10cc10cc10c006444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c1200066eb4c12400666006006609a0048048c12c0050491bab3046003375c6086002660060066090004608c002822244646600200200644b30010018a508acc004cdd798228009ba70038a518998010011823000a080410d2259800981d181f9baa0028991919194c004c11c006608e00730470024889660026096009133029304a007133026002132598009821000c4c8ca60026eb4c134006609c003375a609a0049112cc004c14400a264646644b300130550038094590521bae3052001375c60a400460a40026eb0c14000a2c8270609a00260906ea800a2b30013038001899194c004dd69826800cc1380066eb4c13400922259800982880144c8c8cc896600260aa0070128b20a4375c60a40026eb8c148008c148004dd6182800145904e0c134004c120dd5001456600260820031323298009bad304d0019827000cdd698268012444b300130510028991919912cc004c15400e0251641486eb8c148004dd7182900118290009bac30500028b209c182680098241baa0028acc004c10c0062646644b3001304f0018991919912cc004c14c00e0211641406eb8c140004dd7182800118280009bac304e0018b2098375a6098002609a00260906ea800a2b300130370018991919912cc004c14000e01b1641346eb4c134004dd69826801182680098241baa0028acc004c0d800626464653001375a609c003375a609c007375a609c0049112cc004c14801201f16413c304e001304d00130483754005159800981a800c4c8c966002609c00500b8b2096375a609800260906ea800a2b30013370e9007000c4c8c966002609c00500b8b2096375a609800260906ea800a2c8231046208c41188231046208c4118608c6ea80062c8240608e002608c002608a00260806ea800a2c81f2460846086608660866086003222329800800c01200680088896600200510018cc00400e6090005330043047002001400c822a6e2520009b88480012222222222222222222980098281baa0129808808c8896600260260051329800800c0120074800100111112cc00400e2b30010028800c59059466002009305c003982e0014cc8966002600e0051337000066eb4c118c168dd5001459058182d8019bad305b002401082ca2c8292601c01d222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01905844cc014014c1780110581bae3057001375a60b000260b400282c0cc04401000c52000488888c8cc896600260a801119800912cc004c154c168dd500144c8c96600260c20050038b20bc375a60be00260b66ea800a2c82ca444466e24004ca60020030058025200040044444b30010038acc00400a2003164189198008024c19400e60ca00532332259800982e98319baa0028991980c8008acc004cdd7980f98329baa00230683065375400915980099baf30513065375400260d060ca6ea800a264b3001305f30653754003132325980099b87375a60d60046eb4c150c1a0dd5002c56600266e1cdd698358009bad30533068375400b15980099baf306b306c001301b3068375400b1337000113001375660a860d06ea8c150c1a0dd5003cdd71835806cdd718359836006a0268b20cc8b20cc8b20cc306b0013066375400316419060a060ca6ea80062c831a2c8318c19cc190dd5001459062182698311baa304e3062375400260ca00660c800680210624888888c8c96600266e1c0040122646464b30013370e66e04dd6983398321baa3067002375a60ce60c86ea8c19c00c012264b30019800801528c88896600200315980099b8f004489008a5189980f002998359ba90043306b375200697ae0419d14a0833901b44cdc4803cc004dd6180e18329baa00ca400122323259800cc004c18c0069429450674566002603200313370000666e0ccdc10009bad3055306937540086eb4c150c1a4dd50024590674400d0674c0040166eb8c1ac0066eb8c1acc1b00050131bac306a3067375400480ba2c8318cc070dd6180d98321baa00b2375860d060ca6ea80062c8310dd5983318338009833000cc00401e6eb8c190c184dd5182598309baa008803401500945905f2cc004c168c03000629000456600260c80031325980099b8f375c60c0002910104555344720089bad30610018b20be30630018b20c24178660366eacc048c17cdd50029bae304b305f3754609260be6ea801a660046eb0c170c164dd500d1bac3045305937540373045305937540729111119912cc00566002602000514a319800982d000d28528a0bc417913259800982d98301baa00189919911919912cc004c184c198dd5000c4c96600266e1ccdc09bad306b0010060048acc004cdc39bad306b306c001375a60d660d800f159800980c804c566003300133026375860d660d06ea8174dd7182998341baa30523068375401700c99835182a18341baa305230683754016660d4981054455534472004bd7052000403915980099b890033233001001375860a860d26ea8178896600200314800226644b30013375e60de60d86ea8008c1bcc1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1b0dd5007c4cdc0000cc004dd5982c18361baa0029bae3058306c375460ac60d86ea803e9101045553447200405d100141a860da0026600400460dc002835a3300100b82ecdd6982998341baa02a9bad302230683754055009805201a8b20cc8b20cc8acc00660026604c6eb0c1acc1a0dd502e9bae30533068375460a460d06ea802e0193306a30543068375460a460d06ea802ccc1a93001054455534472004bd704c08400d00e46600201705d9bad305330683754055375a604460d06ea80aa01300a403516419883322c83322c8330ca6002660240026eb4c1acc1a0dd50014dd7182a18341baa305230683754017375c604460d06ea8c148c1a0dd5005a444b30013065306a37540071325980099baf306f306c375460de60d86ea8004c154cc1b8dd480125eb822b3001305c98009bab3058306c3754003002a4410d7374616b696e675f7661756c7400405d13259800983318361baa0018991980a8008acc004cdd7981418371baa0034c0103d87a80008998381ba898009bab305a306e3754007005a4410455534472004064660e060e260dc6ea8004cc1c000d2f5c11641b060e060da6ea80062c8358c15cc1b0dd5000c5906a45906a183718359baa0038b20d21bac3052306737540b916419466e04018004c1a0c1a4c1a4c1a4c1a4c1a4c194dd5013acc004c050006266e10cdc1002801000c5200041886eb4c194004dd6983298311baa3065980082bcdd7183298311baa304c3062375400b375a609a60c46ea80926eb4c070c188dd50122014329800998060009bad306530623754005375c609c60c46ea8c130c188dd5002cdd7180e18311baa304c3062375400a9112cc004c17cc190dd5001c4c96600266ebcc1a4c198dd5183498331baa305230663754002609e660d06ea40092f5c1159800982b4c004dd5982918331baa305230663754003002a4410d7374616b696e675f7661756c7400404513259800983018331baa001899198078008998351ba898009bab30543068375460a860d06ea800e00b4881045553447200404c660d460d660d06ea8004cc1a800d2f5c060d460ce6ea80062c8328c144c198dd5182918331baa0018b20c88b20c830683065375400716418c375860c860c26ea815a2c82f8c04cc180dd501145905e4c00400a6eb0c184c178dd501048c040dd69825982f9baa001402d3001002a400122337000026eb4c12cc180dd50012020456600260a401119800912cc0040062900044cdc0240046600400460be00282e2444653001001802400d0011112cc00400a2b30010018a518a504181159800800c52845660026600860c40046eb4c1880063300100398318014c18c005003452820ba418083024466e0ccdc10011bad3046305b37540026eb4c11cc16cdd5000ccc008dd6182e182c9baa01a3758608a60b26ea806e608a60b26ea80e522222325980099914c004c8cc00400400c896600200314a115980099baf30663063375460cc60c66ea8c13cc18cdd518330009826198329ba90034bd704528c4cc008008c19c00506120c8a50a51417c6eb0c188c17cdd502a1bae3019305f3754609260be6ea800a2b300133225980099b87300300230030058acc004c08000633001002800c88c96600260bc60c66ea800626464b30013061306537540031325980099b87375a60d40026eb4c14cc19cdd5001c4cdd798351835800980d18339baa0038a50419460cc6ea80062941064182818329baa3259800982f98329baa0018991980d8008acc004cdd7981098339baa003306a3067375400d15980099baf30533067375400260d460ce6ea800e200316419516419460d260cc6ea80062c8320c140c194dd5182898329baa0043067306437540031641886601a00e002803a2c82fa2c82f8cc074dd61831182f9baa054375c609460be6ea8c124c17cdd50011bac304b305f3754043159800cc004dd61825182f9baa0549bac3062305f37540433758602c60be6ea80092229800803400a4464b3001305f3064375400319800983418329baa0019bac301830653754007323304d00523375e60d460ce6ea8004dd38011bac3018306537540069112cc004c188c19cdd5000c56600266ebcc1acc1a0dd5001983598341baa306b3068375400d15980099baf30533068375400660a860d06ea8c1acc1a0dd500344cdc3cc004dd5982a18341baa0039bae306b0029bae306b306c002404c6601a64b300133710002900044c08800620028338dd6982a18341baa006306b3068375400314a08332294106645906622c8318cc0380140050082260b330019800801cdd61831182f9baa02192cc004c040dd6982618301baa0018982d1bad304b3060375400314a082f100c4cc06cdd59809182f9baa054375c609660be6ea8c124c17cdd5001660020a9375c60c460be6ea8c124c17cdd50014dd69825182f9baa0219bad3019305f3754042803a6602e6eb0c058c17cdd500111bac30633060375400291111919912cc00660020054a3222259800800c56600266e3c011221008a5189980f804198361ba90043306c375200697ae041a114a0834101c456600266e1ccdc09bad30693066375460d20066eb4c1a4c198dd51834802800c4c96600266e1e60026eb0c078c19cdd500552000911919912cc006600260cc0034a14a28352264b3001337126602400200c00713370000a0031641ac66e0800401a2b3001301d002880245906a20d498008034dd71836800cdd718369837000a02a329800807d2000912cc004cdd7981018369baa002374e0071337000026eb4c164c1b4dd50014400506b203a375860da60d46ea800cdd6183618349baa002406466e040080222005164194b300130160078a40031480090644590644590641bab3067306800159800982f18080024520008acc004c1a0012264b30013371e6eb8c190005220104555344720089bad30650018b20c630670048b20ca418860ce0048b20ba8b20ba8b20ba3005005452820ae415c44646600200200444b30010018a5eb822660ba64b30013056305b37540031305f305c37540031641686600a0086eb4c178004cc008008c17c00505c1111192cc004c158c16cdd5000c4c96600266ebcc180c174dd51830182e9baa3049305d3754002608c660be6ea40152f5c11598009826cc004dd59824982e9baa3049305d3754003005a4508747265617375727900402113259800982b982e9baa0018991980d0008992cc004c168c17cdd5000c4c96600266ebcc190c184dd5183218309baa001304a33063375201297ae08acc004c14660026eacc134c184dd5000c02691108747265617375727900403113259800982d98309baa0018991980f0008acc004cdd7980e98319baa0034c0103d87a800089983280299832800998329ba6329800800cdd5982818321baa00499198008009bab30513065375460a260ca6ea8024896600200314bd6f7b63044c8cc1a4cdd818330009ba63233001001375660d000444b30010018a5eb7bdb182264660d866ec0c1a4004dd418119bad306a00133003003306e002306c00141a86600600660d600460d200283390011112cc00400a2003132332298008034c1b4016646600200200a44b300100189983699bb037520086e9800d2f5bded8c113298009bae306b0019bab306c00198380012444b300133720010007133071337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820e2880144cc1c8cdd81ba9009374c0020048370ca6002003008801a002222598008014400626466453001006983c802cc8cc0040040148966002003133079337606ea4010dd4001a5eb7bdb1822653001375c60ee003375a60f0003307c00248896600266e4002000e2660fa66ec0dd48041ba80070058acc004cdc7804001c4c96600260ec003100289983f19bb037520126ea000400907a19b8000700289983e99bb037520066ea0008cc01801800507920f2183d000a0f040186eb8c1c8004dd69839800983a80120e689983899bb037520066e98008cc01801800506d20da1837000a0d840186eb8c198004dd59833800983480120ce4bd70459061183298311baa0018b20c0304c3061375400316417d16417c60c660c06ea80062c82f0cc024dd61825182f9baa0080053061305e3754003164170609060ba6ea8c124c174dd5000c5905b45905b182f982e1baa0018b20b433005375860bc60b66ea8010008896600266e2000520008a6103d87a8000899803001000a0ac22646644b30013045001899912cc004c0f4c108dd500144c8c8c8cc8966002609800713259800982198241baa0018991919912cc004c14400e264b30013048001899192cc004c15000a01d1641446eb8c148004c138dd5003c566002607c00315980098271baa00780645904f45904c2098304c375400d1641386eb8c138004dd71827001182700098249baa0018b208e304b0058b2092375c609200260920046092002609000260866ea800a2c8208c1100044c010c1140162c8210dd7182100098218009bac304100240fd13230023041003375a607e00481ea2646004607e0066eb4c0f400903b4590390c0d8004c0d4004c0d0004c0cc004c0c8004c0b4dd5000c5902b1817802c5902d1bac302d001302d002302d001302c0013027375400b16409432323259800980e98111baa00189919912cc004c0a8006264b300130213026375400313232323232323232323232329800981b000cc0d802e606c0153036009981b0044c0d801e606c00d3036005981b0024c0d800e6eb0c0d80092222222222259800982100644cc080c10405c4cc0800284cc0800244cc0800204cc08001c4cc0800184cc0800144cc0800104cc08000c5660026070607a6ea800a264646464653001375c608c003375c608c00b375c608c009375c608c007375c608c004911112cc004c13001a26607201644b300100289981580b881444c966002608a60946ea800626464646644b300130540038991919912cc004c16000e2601660b00191641546eb8c154004dd7182a801182a8009bac30530058b20a2375a60a20026eb4c144008c144004c140004c12cdd5000c59049182680120968b20921823000982280098220009821800981f1baa0028b20788b207e181b000981a800981a0009819800981900098188009818000981780098170009816800981600098139baa0018b204a30290018b204e375c604e002605000260466ea80062c8108c966002603a60446ea8006264b3001301d302337540031302730243754003164088601c60466ea8c03cc08cdd5181318119baa0018b2042330093758601c60446ea805c8c8cc004004c00cdd5980818121baa30103024375400444b30010018a508acc004cdc79bae30280010228a518998010011814800a0464098600200244b30010018a5eb822660486042604a00266004004604c00281188966002603860426ea800a2646464b3001302900289980318140018992cc004c0800062b3001302637540050058b204e8acc004c05800626464b3001302c002803c590291bae302a00130263754005159800980f800c4c8c96600260580050078b2052302a00130263754005164090812102418121baa0018b204c3027001302700130223754005164080600800844b3001301a301f3754005132323259800981380144cc020c09800c4c966002603c003132598009814800c4c8c9660026042003132598009816000c4cc034c0ac0040262c8148c09cdd50014566002602e003132323298009bad302d0019bad302d0039bad302d002488966002606200900e8b205c1816800981600098139baa0028b204a4094604a6ea8004c0a00062c8130c090dd50014566002602800315980098121baa002802c59025459022204430223754003164090604a002604a00260406ea800a2c80f08acc004c02000e26464b30013009300e37546024602600514a314a08068dd6980880098069baa0048b2016402c300c300d001300c004452689b2b200401", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolManagementProtocolManagementPublish { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594382010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a4912657870656374205b5d203d206c6973745f6200168a99801a491d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a4926657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a49d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d6572001648888888888888966003300130133754033370e90034dc3a4001370e9002244446465300130183754003301c006980e0012444b300130060038cc004c07cc070dd50024dd2a4001223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c918101810800c8c080c084c08400646040604260426042604260426042604260426042003374a900124444444444465300122259800980b18151baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130330028cc00400e264b3001301b0018992cc00400600f13259800800c566002606c00513259800980f000c4c96600200300a8992cc0040062b300130390028cc00400601900b403900b40d900b805c02e01681d0c0dc00503518199baa0028acc004c050006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013040003809c04903d1bad001808a080303d00140ec6eb4004c0f000a01c81e8c0e80050381bad0013039002805a074303700140d460666ea800a012818103018189baa0018042066804402201100840dc60680028190c0c0dd50014566002602200315980098181baa002803c019031401902d205a302e3754003005402100540c1005802c01600a81a0c0c400502f1818801400e007003801a064302f00140b460566ea800e0028142444653001001802400d001111192cc004c068006264b300100180344c966002003007803c01e00f13259800981b001c0160108198dd7000a06c303300140c4605e6ea800e2b300130100018992cc00400600d13259800800c01e00f13259800981b001c4cc05000489660020050078992cc0040063300100a800c4c008c0e400d00a402e01700b805a074303700240d500840cc6eb000600f00740d860660028188c0bcdd5001c566002603200313259800800c01a264b3001001803c01e264b3001303600389980a000912cc00400a00f13259800800c6600201500189801181c801a014805c02e01700b40e8606e00481aa0108198dd6000c01e00e81b0c0cc00503118179baa0038acc004c06c006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c96600260720071330170012259800801402a264b30010018cc00403600313002303c003403500e807403a01c81e8c0e8009038402d0361bac0018054029039181b000a068375a002606a00500740d860660028188c0bcdd5001c566002601e00313259800800c01a264b3001001803c01e00f13259800981b001c0160108198dd6800c01d0361819800a062302f37540071598009807000c4c9660020030068992cc00400600f007803c4c966002606c0070058042066375a00300740d860660028188c0bcdd5001c566002601a00313259800800c01a264b3001001803c01e00f0078992cc004c0d800e00b00840cc6eb80050361819800a062302f375400700540b0816102c205840b0816102c18169baa002911919800800801912cc0040062980103d87a80008992cc004c010006260206605e00297ae089980180198188012054302f00140b491119192cc0040063300122259800980d98179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b300130200018acc004c0d4dd5001401e00c81b22b300130160018992cc00400600f13259800800c02201100880444c966002607800700a804a072375c00281e0c0e4005037181a9baa0028acc004c07c006264b3001001803c4c96600260760050098042070303900140dc606a6ea800a00c8191032206430333754003005403100540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444b3001301b302f375400713259800800c00a264b30010018992cc00400600913259800800c4c966002606a00315980099b8948010c0d000600d13259800981d00244c9660026044003159800981b9baa006804c0210384566002603000313259800800c026264b3001001805402a01513259800981f001c03201681d8dd6800c02903e181d800a0723037375400d1598009810800c566002606e6ea801a01300840e100840d081a1034181a9baa005803a06e3016303400140c900640d86ea800600b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4889660026036605e6ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981d001c02200e81b8dd6800c01903a181b800a06a375c002606c00481b8c0d000503218181baa003800a05a911192cc004c070006264b3001001801c4c9660020030048024012264b3001303800380340150351bad0018022070303500140cc60626ea80122b300130120018acc004c0c4dd5002400e0048192004817102e18179baa0034888a6002444b3001301f3033375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c566002607e005198008034660020030098042018804201c804207880440220110084100607a00281d8dd6800981e001401503d181d000a070303a002801c00e00700340ec607000281b0c0d0dd5001c005031488966002603e60666ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b00d8992cc004c11400e3300100c8cc00401201f00e404900e405100e41086eb400601a8228c1080050401821001402e01700b805a086304000140f86eb4004c0fc00a0108200c0f400503b1bad001303c002802a07a303a00140e06074005003801c00e00681d8c0e0005036181a1baa003800a0629112cc004c07cc0ccdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b300130450038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001304a00380a404d0471bae0014128608e0028228dd70009823001208e3044001410900e404900e405100e41086eb000601b00d411460840028200c10800a01700b805c02d0431820000a07c375a002607e0050084100607a00281d8dd6800981e001401503d181d000a070303a002801c00e00700340ec607000281b0c0d0dd5001c005031488966002603e60666ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009822801c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009825001c0520268238dd7000a094304700141146eb8004c1180090471822000a084807202480720288072084375800300d806a08a30420014100608400500b805c02e0168218c10000503e1bad001303f0028042080303d00140ec6eb4004c0f000a00a81e8c0e8005038181d001400e007003801a076303800140d860686ea800e00281892222598009810181a1baa0098992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c966002003029814c4c96600260800071598009813981d9baa0068992cc00400605713259800800c0b20591332259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281940ca26644b300100181a44c96600200303581ac0d626644b300100181bc4c96600200313259800800c0e6264b30010018acc004c14000a26605c01c44b3001002899818006912cc00400a330010078cc004016264b3001303c3050375403313259800800c102264b30010018992cc00400608513259800800c56600260b200513322598009821000c4c9660020030468992cc00400608f0478992cc004c17800e26607800244b3001002803c4c96600200319800800c4c008c18400e096814a09704b825c12d062182f80120ba82420b63758003047823a0bc305b001416460ae6ea80162b300130380018992cc00400608d13259800800c11e08f13259800982f001c4cc0f000489660020050078992cc00400633001001898011830801c12d029412e09704b825a0c4305f0024175048416c6eb000608f047417860b600282c8c15cdd5002c566002608200313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a054825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa0058acc004c10c006264b300100182344c966002003047823c4c96600260bc00713303c0012259800801401e264b30010018cc0040062600460c200704b40a904b825c12e0968310c17c00905d412105b1bac001823c11d05e182d800a0b23057375400b159800981b800c4c9660020030468992cc00400608f0478992cc004c17800e26607800244b3001002803c4c96600200319800800c4c008c18400e096815a09704b825c12d062182f80120ba82420b63758003047823a0bc305b001416460ae6ea80162b300130360018992cc00400608d13259800800c11e08f13259800982f001c4cc0f000489660020050078992cc00400633001001898011830801c12d02b412e09704b825a0c4305f0024175048416c6eb000608f047417860b600282c8c15cdd5002c566002606a00313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a058825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa0058acc004cdc3a401c00313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a058825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa005822a0a8415082a105420a8415082a10540992cc004c104006264b3001001822c4c966002003159800982e001466002003008823205282320b2823411a08d046417460b400282c0c158dd50014566002606e00313259800800c116264b30010018acc004c17000a2b300130433057375400313259800800c11e264b30010018992cc00400609313259800800c56600260c000519800801c6600200300c825205c825205c82520ba825412a09504a418460bc00282e0c17800a091048824412105f182e000a0b43058375400304641550464165046823411a08c82e8c168005058182b1baa00282220a6414c60a86ea8004c150dd5001c10d056410e087043821a0b43057001415460ae005041820c10608282c0c15400505318289baa01981fa09c133032015225980080146600260aa60a46ea809a60aa60a46ea8c0bcc148dd501348896600200514c0103d87a80008acc004c10000626070660ae60b000497ae08cc00400e60b2005337000029000a006414882b24606860a46ea8c158c8cc004004008896600200314bd708103d87a80008101800044c8cc8966003300130393057375460b60074a14a282aa2660b530014a14c103d87a8000a60103d87980004154660b46e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c17400400e294626600400460bc00282b905b44cc16a600294298103d87a8000a60103d87980004154660b46e9c0092f5c113305a9800a51a60103d87a8000a60103d87980004154660b46e9ccc168dd400080125eb8105520aa375860b260b40026eb4c164008cc008008c164005056488c8cc00400400c896600200314bd7044cc896600266ebcc16cc160dd5182d982c1baa3035305837540046064660b46ea40152f5c113305a00233004004001899802002000a0aa3059001305a001415d2259800800c52000899b8048008cc008008c160005055488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a2003006415d133005005305e004415c6eb8c15c004dd5982c000982d000a0b014bd6f7b630488966002608060a86ea800e264b300100180144c966002003003801c00e264b3001305c003802c0110591bad001801a0b83059001415c60aa6ea800e0028292460ac60ae60ae60ae00337029000488c8cc00400400c896600200314bd7044cc160dd39801982c80099801001182d000a0ae9182b182b982b982b982b982b982b982b982b982b982b800c888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd7182e000cdd6982e800ccc00c00cc184009009182f800a0ba375660b40066eb8c15c004cc00c00cc170008c168005058488c8cc00400400c896600200314a115980099baf3059001374e00714a3133002002305a001414c82ba444b300130403054375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c96600260c200519800803c6600200b132598009824800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e3754009159800981f800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e37540091598009824000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e37540091598009825000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c1a000e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1b400e02d01541a86eb800506d1835000a0d0375c00260d20048350c19c00506540410651bac001807c03d0681832800a0c6375a00260c800500c419460c40028300c178dd50024566002607c00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009834001c0460208328dd6800c03d0681832800a0c6375a00260c800500c419460c40028300c178dd50024566002607a00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a025132598009835801c0520268340dd6800c04906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e3754009159800981e000c4c96600200300b8992cc00400601900c80644c96600260ca00700e806a0c4375a00300c419460c40028300c178dd5002456600266e1d200e0018992cc00400601713259800800c03201900c8992cc004c19400e01d00d41886eb40060188328c188005060182f1baa00480520b6416c82d905b20b6416c82d905b182e1baa003804a060804a068804a0bc305f001417460be005007803c01e00e8300c17400505b182e801401600b005802a0bc305b001416460b6005003801c00e00682e0c164005057182a9baa003800a0a49182b182b982b982b982b800c888ca6002003004801a002222598008014400633001003982e0014cc010c16c00800500320b29b89480026e2120004888888888888888888a600260c86ea804a602202322259800980980144ca6002003004801d200040044444b30010038acc00400a200306641b51598008014196330010049838001cc1c000a6644b30013007002899b80003375a609660dc6ea800a2a660d89211a6578706563742076616c69646174696f6e287265717565737429001641ac60de0066eb4c1bc00900420da41b5153306649012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900164195300e00e91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c835a26600a00a60e40088358dd718358009bad306c001306e00141b06602200800629000244444646644b300130590088cc0048896600260b660de6ea800e264b300100180144c966002003003801c00e264b30013077003802c0110741bad001801a0ee307400141c860e06ea800e002836a444466e24004ca60020030058025200040044444b30010038acc00400a200306f41d915980080141ba33001004983c801cc1e400a646644b300130623077375400513259800800c6600200315980099baf301f3079375400460f860f26ea80122b30013375e60ac60f26ea8004c1f0c1e4dd500144c96600260c860f26ea800626464b30013370e6eb4c1fc008dd6982c983e1baa0058acc004cdc39bad307f001375a60b060f86ea80162b30013375e60fe610002002603660f86ea8016266e0002260026eacc164c1f0dd5182c983e1baa0079bae307f00d9bae307f30800100d404d153307a49012d65787065637420726573657276655f6173736574203d3d20726571756573742e726573657276655f6173736574001641e5153307a4911d657870656374207969656c64203d3d20726571756573742e7969656c64001641e5153307a49122657870656374207072696e636970616c203d3d20726571756573742e616d6f756e74001641e460fe00260f46ea80062a660f0921184578706563746564204f4465706f73697420616374696f6e001641dc60aa60f26ea80062a660ee92012f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e001641d915330774912f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641d90714065071838c1c60e283f0c1ecc1e0dd500141bd0751829183b1baa30533076375400260f200660f0006802107620ec91111119192cc004cdc380080244c8c8c96600266e1ccdc09bad307b3078375460f60046eb4c1ecc1e0dd5183d80180244c9660033001002a5191112cc0040062b30013371e008911008a5189980f0029983f9ba90043307f375200697ae041e914a083d101b44cdc4803cc004dd6180e183c9baa00ca400122323259800cc004c1a000694294507a4566002603200313370000666e0ccdc10009bad305a307d37540086eb4c164c1f4dd5002454cc1ed2401176578706563742061637475616c5f64656c7461203e2030001641e9100341e930010059bae307f0019bae307f308001001404c6eb0c1f8c1ecdd5001202e835a0ec3301c3758603660f06ea802c8dd6183e183c9baa001835a0ea375660f460f600260f400330010079bae30783075375460a060ea6ea802200d0054025153307349123657870656374206d696e745f616d6f756e74203d3d2065787065637465645f6d696e74001641c8b3001305f300c0018a4001159800800c192264b300130790028992cc004cdc79bae307500248810455534472008800c19d0731bad3075001832a0ec307700141d48388cc06cdd5980918399baa005375c60a060e66ea8c138c1ccdd50034cc008dd6183818369baa01a3758609460da6ea806e609460da6ea810922222332259800acc004c04000a294633001305f001a50a5141c4838a264b30013060307437540031323322323322598009833183d1baa0018992cc004cdc399b81375a60fe00200c00915980099b87375a60fe6100020026eb4c1fcc2000401e2b300130190098acc00660026604c6eb0c1fcc1f0dd50311bae3058307c375460ae60f86ea802e0193307e3059307c375460ae60f86ea802ccc1f93001054455534472004bd7052000403915980099b890033233001001375860b260fa6ea818c896600200314800226644b30013375e6106026100026ea8008c20c04c21004c21004c21004c21004c21004c21004c21004c21004c21004c21004c21004c20004dd5007c4cdc0000cc004dd5982e9840009baa0029bae305d308001375460b66100026ea803e9101045553447200405d100141f46102020026600400461040200283fa3300100b8314dd6982c183e1baa02a9bad3022307c3754055009805201a8a9983d24812b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001641e5153307a491536578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473286f726465725f696e707574732c206465706f7369745f72657175657374732c20757364725f61737365742c203029001641e5159800cc004cc098dd6183f983e1baa062375c60b060f86ea8c15cc1f0dd5005c032660fc60b260f86ea8c15cc1f0dd50059983f2601054455534472004bd704c08400d00e4660020170629bad3058307c3754055375a604460f86ea80aa01300a4035153307a491906578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a20202020202029001641e483ca2a660f49213a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265001641e5153307a4913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001641e465300133012001375a60fe60f86ea800a6eb8c164c1f0dd5182b983e1baa00b9bae3022307c375460ae60f86ea802d222598009835183f1baa0038992cc004cdd79841809840009baa308301308001375400260b466104026ea40092f5c11598009830cc004dd5982e9840009baa00180152210d7374616b696e675f7661756c7400405d1325980098359840009baa0018992cc004006330010018acc004cdd798141841009baa0034c103d87a8000899842009ba898009bab305f3082013754007005a44104555344720040646610802610a026104026ea8004cc2100400d2f5c107841fd07d405507d83ec1f60fa843808c21004c20404dd5000c54cc1fd24012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001641f860b86100026ea80062a660fc92014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641f5153307e49141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641f461040260fe6ea800e2a660fa92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641f0375860ae60f66ea81862a660f292013565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f696478001641e066e04018004c1f0c1f4c1f4c1f4c1f4c1f4c1e4dd5013acc004c050006266e10cdc1002801000c5200041d46eb4c1e4004dd6983c983b1baa3079980082e4dd7183c983b1baa30513076375400b375a60a460ec6ea80926eb4c070c1d8dd50122014329800998060009bad307930763754005375c60a660ec6ea8c144c1d8dd5002cdd7180e183b1baa30513076375400a9112cc004c190c1e0dd5001c4c96600266ebcc1f4c1e8dd5183e983d1baa3057307a375400260a8660f86ea40092f5c1159800982dcc004dd5982b983d1baa3057307a3754003002a4410d7374616b696e675f7661756c74004045132598009832983d1baa0018992cc0040063300100189983f1ba898009bab3059307c375460b260f86ea800e00b489045553447200404c660fc60fe60f86ea8004cc1f800d2f5c1077403d07783bc1de0ee840808c1f8c1ecdd5000c1c9078182b183d1baa3057307a375400315330784901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd15330784914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea800e2a660ee92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641d8375860f060ea6ea816e2a660e692013365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f696478001641c8602660e86ea808a2a660e492012e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001641c530010029bac30753072375404123010375a60a060e66ea800500b4c00400a9000488cdc00009bad3050307437540048081159800982b80446600244b30010018a40011337009001198010011839800a0e0911194c0040060090034004444b30010028acc00400629462941074456600200314a115980099802183b0011bad30760018cc00400e60ee0053077001400d14a0838107420e89119b83337040046eb4c12cc1bcdd50009bad304c306f375400333002375860e060da6ea8068dd6182518369baa01b982518369baa042488888c9660026645300132330010010032259800800c528456600266ebcc1e8c1dcdd5183d183b9baa30543077375460f400260a2660f26ea400d2f5c114a3133002002307b00141d083c29429450721bac3076307337540b26eb8c064c1ccdd5182718399baa0028acc004cc896600266e1cc00c008c00c0162b300130200018cc00400a0032232598009831983b9baa001899192cc004c198c1e4dd5000c4c96600266e1cdd6983f0009bad3058307b375400713375e60fc60fe002603460f66ea800e2941078183d1baa0018a5041dc60aa60f26ea8c96600260c860f26ea8006264b30010018cc0040062b30013375e604260f66ea800cc1f8c1ecdd5003456600266ebcc160c1ecdd5000983f183d9baa0038800c54cc1e52413865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e001641e1153307949138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641e1073406d073839c1ce0e6840008c1f4c1e8dd5000c1c5077182a983c9baa30563079375400860f660f06ea80062a660ec92013e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f69647829001641d46601a00e002803a2a660e69201376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f726571756573747329001641c9153307349139657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e67746828726571756573747329001641c86603a6eb0c1d8c1ccdd502c9bae304f30733754609c60e66ea8008dd6182818399baa0218acc00660026eb0c13cc1ccdd502ccdd6183b18399baa0219bac3016307337540049114c00401a0052232598009832183c1baa0018cc004c1f0c1e4dd5000cdd6180c183c9baa0039919828002919baf307e307b37540026e9c008dd6180c183c9baa00348896600260ce60f66ea80062b30013375e60fe60f86ea800cc1fcc1f0dd5183f983e1baa0068acc004cdd7982c183e1baa0033059307c375460fe60f86ea801a266e1e60026eacc164c1f0dd5001cdd7183f8014dd7183f98400080120263300d325980099b880014800226044003100141e86eb4c164c1f0dd5003183f983e1baa0018a5041e514a083ca2a660f492015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001641e48a9983ba493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f69647829001641d86601c00a00280411305e9800cc00400e6eb0c1d8c1ccdd5010c96600260206eb4c144c1d0dd5000c4c17cdd69828183a1baa0018a5041c48062660366eacc048c1ccdd502c9bae305030733754609c60e66ea800b30010599bae307630733754609c60e66ea800a6eb4c13cc1ccdd5010cdd6980c98399baa021401d330173758602c60e66ea80088dd6183b983a1baa00148888ca600260f6003375660f660f8003307b003acc004c18cc0400122900045660020090688992cc004c1f4016264b30013371e6eb8c1e400922010455534472008800c1ad0771bad3079001834a0f4307b00441e483a9222259800cc00400e9464444b30010018acc004cdc78022441008a5189981080519841009ba90043308201375200697ae041f514a083e901e456600266e1ccdc09bad307f307c37540086eb4c1fcc1f0dd5001000c4c96600266e1e60026eb0c080c1f4dd500652000911919912cc006600260da0034a14a283fa264b3001337126602800200c00713370000a0031533081014912d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642000466e0800401a2b3001301f0028802454cc200052401186578706563742061637475616c5f64656c7461203e3d2030001641fc83fa600200f375c610602003375c61060261080200280b8ca60020234800244b30013375e60446106026ea8008dd3801c4cdc00009bad30603083013754005100142000480f8dd61841809840009baa003375861040260fe6ea800901b19b8100200a8801454cc1ed2413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c7461001641e8b300130180098a400314800907941bd07941b90790c1ec00915330714901a26578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641c11533071491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001641c1153307149142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c7429001641c0600a00a8a5041a8835088c8cc004004008896600200314bd7044cc1c4c96600260b660de6ea8006260e660e06ea80062a660dc92013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641b46600a0086eb4c1c8004cc008008c1cc0050701111192cc004c16cc1bcdd5000c4c96600266ebcc1d0c1c4dd5183a18389baa304e307137540026096660e66ea40152f5c115980098294c004dd5982718389baa304e30713754003005a44108747265617375727900402113259800982e18389baa0018992cc004006330010018992cc004c17cc1ccdd5000c4c96600266ebcc1e0c1d4dd5183c183a9baa001304f33077375201297ae08acc004c15a60026eacc148c1d4dd5000c0269101087472656173757279004031132598009830183a9baa0018992cc004006330010018acc004cdd7980e983b9baa0034c103d87a800089983c8029983c8009983c9ba6329800800cdd5982a983c1baa00499198008009bab30563079375460ac60f26ea8024896600200314bd6f7b63044c8cc1f4cdd8183d0009ba63233001001375660f800444b30010018a5eb7bdb182264661000266ec0c1f4004dd418119bad307e0013300300330820100230800100141f86600600660fe00460fa00283d90011112cc00400a2003132332298008034c20404016646600200200a44b30010018998408099bb037520086e9800d2f5bded8c113298009bae307f0019bab3080010019842008012444b30013372001000713308501337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528210a02880144cc21804cdd81ba9009374c002004840808ca6002003008801a002222598008014400626466453001006984680802cc8cc004004014896600200313308d01337606ea4010dd4001a5eb7bdb1822653001375c611602003375a61180200330900100248896600266e4002000e2661220266ec0dd48041ba80070058acc004cdc7804001c4c96600260f600310028998490099bb037520126ea000400908d0119b800070028998488099bb037520066ea0008cc01801800508c01211802184700800a1180240186eb8c21804004dd6984380800984480801210e028998428099bb037520066e98008cc01801800508001210002184100800a1000240186eb8c1e8004dd5983d800983e80120f64bd7041b507441b101e41b20d906c83620f8307930763754003153307449012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001641cc60a260ea6ea80062a660e6920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641c9153307349143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641c860ee60e86ea80062a660e492013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001641c4660126eb0c13cc1ccdd5004002c19d01a419e0cf067833a0f0307530723754003153307049013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001641bc609a60e26ea8c138c1c4dd5000c54cc1bd2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641b9153306f4914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641b860e660e06ea80062a660dc92013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641b46600a6eb0c1c8c1bcdd5002001112cc004cdc4000a400114c103d87a8000899803001000a0d22264b3001001820c106264b300100182144c966002003043821c10e0871332259800800c116264b30010018acc004c17000a264b300130443058375400513259800800c122264b30010018992cc00400609513259800800c4c96600200304c8992cc00400609b04d826c136264b300130640038acc004c12cc17cdd500344c96600200304f8992cc0040060a1050828414226644b300100182944c966002003053829c14e0a7132598009835001c4c96600260a400313259800800c15a264b300100182bc15e0af0578992cc004c1b800e02505841ac6eb800506e1835800a0d2306737540171598009824000c56600260ce6ea802e01f05541a105541908320c194dd500541510671bae00141a860ce0028328dd7000983300120ce3064001418860c06ea801a09c82ea09c8308dd7000a0c83061001417c60c200504b825c12e0968310c17c00505d182f8014126093049824a0c0305d001416c60b26ea800a08e82b04c01cc17002208c82ca08d046823411905d182d000a0b0375c00260b200482d0c15c0050551bac001820c105058182a80120a681f204081f20408992cc00400607f03f81fc4c8c00cc158010dd6800c0fd056182980120a28992cc00400607b03d81ec4c8c00cc150010dd6800c0f50541828801209e81d209a81d40ea07503a4144609c0028260c13800a07103881c40e104f1826000a094375a0026096005035413060920028238dd6800982400140c90491823000a0883758002608a00502f817a08c304300141046eb0004c10800a05902c410c608000281f0c0f0dd500340a903940a903d1bac001814c0a5040181e800a076303d002813c09e04f02740f8607600281c8c0ec00a04b025812c09503c181c800a06e3035375401302340c8406e03701b80da06433223259800980d18171baa001898179919bb030330013033303400137586064605e6ea80062a6605a92018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc02ccc0ccdd480225eb812f5c11301433033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756600e60586ea8048dd7181798161baa00132323259800800c5660026032605a6ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0dc00a2b3001301e3032375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006071038899912cc00400607513259800800c56600260a00051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606e60966ea801a264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c12609313259800982f801c4cc0f4048896600200519800809440c209881aa264b30010018acc004c124c174dd5000c4c96600200304e8992cc00400609f04f899912cc0040060a313259800800c14a0a5052899912cc0040060a913259800800c1560ab0558992cc004c1ac00e2b300100782b44c96600200305782bc15e0af1332259800800c166264b300100182d416a0b505a8992cc004c1c000e2602060e002305b41b46eb80050701836800a0d6375c00260d80108368c1a801d06841590681bad00182aa0d6306800141986eb4004c19c00a0a48340c1940050631bac0013064002827c13d0651831000a0c0305e375400304d416d04d826c13609a8318c18000905e412905c1bae001417c60b800282d0dd7000982d80120b83059001415c6eb8004c160009059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270c130dd500340ed04940ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed04d40ee07703b81da0a2304e00141306eb0004c13400a071038413860960028248c12c00a06d03681b40d904c1824800a08e304900281a40d20690344128608e0028228c11c00a06503281940c90481822800a086304500281840c2061030411860860028208c10c00a05d02e81740b90441820800a07e304100281640b205902c4108607e00281e8c0fc00a05502a81540a9040181e800a076303d00281440a205102840f8607600281c8c0ec00a04d026813409903c181c800a06e3039002812409204902440e8606e00281a8c0ccdd5000c0890304089034408a0450228112070303500140cc6eb8004c0d00090351819000a060302e375400301d40ad01d80ec07603a8198c9660026032605a6ea8006264b30013019302e375400313032302f3754003153302d4913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06014605c6ea8c02cc0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac660066eb0c028c0b4dd50099191980080098019bab300c302f37546018605e6ea8008896600200314a115980099b8f375c606600205914a3133002002303400140b48188c004004896600200314bd7044cc0bcc0b0c0c0004cc008008c0c400502e0888c966002602c00313259800800c00e264b300100180240120090048992cc004c0c800e00d00540bc6eb80050321817800a05a302b37540091598009806000c4c9660020030038992cc0040060090048024012264b30013032003803401502f1bae00140c8605e0028168c0acdd500240090282050302937540068acc004c02000e26464b30013009301d37546042604400514a314a080d8dd69810000980e1baa0048b20324064301b301c001301b00445268a99808a491856616c696461746f722072657475726e65642066616c7365001365640401" + : "59230b010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd50024dd2a4001223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c918089809000c8c044c048c04800646022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911919800800801912cc0040062980103d87a80008992cc004c010006260206604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300d0018992cc004c08800626601e6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc03cdd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998089bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300c001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260160031323259800981180140122c8100dd69810800980e9baa0038acc004c02800626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009806000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a180d1baa002912cc004c054c068dd500144c8c8c96600260440051323259800980d000c56600260406ea800a00d1640851598009808000c4c8c966002604c0050088b2046375a604800260406ea800a2b300130190018acc004c080dd5001401a2c810a2c80f101e203c301e3754002604200716407c64b3001301e0018acc004cdc4a4008603a0031689807180e800a0388b203e37546040002604000260366ea800a2c80ca4464b30013016001899192cc004c08800a00916407c6eb4c080004c070dd5001c5660026018003159800980e1baa00380145901d45901a2034301a375400491111199119914c004cc88c966002603e60486ea80062604a6466ec0c0a4004c0a4c0a8004dd6181418129baa0018b204632330010010032259800800c5300103d87a80008992cc004cdd7981300099ba548010cc0a4c040cc0a4dd480225eb812f5c11301933029374e66052604c00266052604e00297ae04bd7044cc00c00cc0ac0090251814800a04e3756601860446ea805cdd7181298111baa002912cc004c078c08cdd500144c8c8c8cc8966002605a007133008302c0051330110020068b2054302a001375a60540046054002605200260486ea800a2c811244b3001301e302337540051323232323298009bad302c0019bad302c0049bad302c003981600124444b30013031005899806181800489980a80080545902e0c0b0004c0ac004c0a8004c0a4004c090dd500145902248966002603c60466ea800a26464646465300137586058003375a6058009375a6058007302c0024888966002606200b13300c3030009133015001132332259800981a001c0362c8188dd718188009bae303100530310048b205c181600098158009815000981480098121baa0028b2044912cc004c078c08cdd500144c8c8c8c8ca60026eb0c0b00066eb4c0b00126eb4c0b000e605800491112cc004c0c4016266018606001226602a0022646644b30013034003806c590311bae3031001375c606200a60620091640b8302c001302b001302a001302900130243754005164088911112cc004c084c098dd5002c4c8c8c8cc8966002606000713259800981398161baa00189919191919194c004c0d80066eb0c0d80166eb4c0d80126eb4c0d800e606c004911112cc004c0f001a2660526eb0c0ec02c896600200513302b006225980080144cc07c0144cc07c0244c966002606e60786ea804a2646464b3001304400289919912cc004c0f400a264b3001304800189981a9bac3047001225980080140122660406092004260026094004823a2c8228c10cdd5001c5660026066005132598009824000c4cc0d4dd61823800912cc00400a009133020304900213001304a002411d16411460866ea800e2b3001303c0028992cc004c12000626606a6eb0c11c00489660020050048998109824801098009825001208e8b208a30433754007159800981f00144c96600260900031330353758608e00244b300100280244cc084c1240084c004c12800904745904518219baa0038acc004c0c800a264b3001304800189981a9bac3047001225980080140122660446092004260026094004823a2c8228c10cdd5001c5660026062005132598009824000c4cc0d4dd61823800912cc00400a009133022304900213001304a002411d16411460866ea800e2b300130300028992cc004c12000626606a6eb0c11c00489660020050048998119824801098009825001208e8b208a3043375400715980099b874803800a264b3001304800189981a9bac3047001225980080140122660466092004260026094004823a2c8228c10cdd5001c59041208241048209041208241048208c100dd50008992cc004c0f0006264b300130470018998159823000803c5904418211baa0038acc004c0c8006264b300130470018992cc004c0f8c10cdd5000c4c8c8c966002609600513302b304a00313302b00100b8b20903049001304900130443754003164108608c00316411060846ea800e2c820104018201baa00230430038b208230420013042001303d37540251640ec26605a02444b30010028cc004c104c0f8dd500e4c104c0f8dd51815181f1baa01c9112cc00400a2980103d87a80008acc004c0ec0062606666086608800497ae08cc00400e608a005337000029000a00640fc82124605e607c6ea8c108c8cc004004008896600200314bd708103d87a80008101800044c8cc89660033001303430433754608e0074a14a2821226608d30014a14c103d87a8000a60103d879800041086608c6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12400400e29462660040046094002822104744cc11a600294298103d87a8000a60103d879800041086608c6e9c0092f5c11330469800a51a60103d87a8000a60103d879800041086608c6e9ccc118dd400080125eb8104220843758608a608c0026eb4c114008cc008008c114005042488c8cc00400400c896600200314bd7044cc896600266ebcc11cc110dd5182398221baa303030443754004605a6608c6ea40152f5c113304600233004004001899802002000a08430450013046001410d2259800800c52000899b8048008cc008008c110005041488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064111133005005304a00441106eb8c10c004dd598220009823000a08814bd6f7b630489660026074607e6ea800a26464b30013046002801c590431bad3044001304037540051640f9230423043304330430019b814800244646600200200644b30010018a5eb822660886e9cc00cc114004cc008008c11800504348c108c10cc10cc10cc10cc10cc10cc10cc10cc10cc10c006444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c1200066eb4c12400666006006609a0048048c12c0050491bab3046003375c6086002660060066090004608c002822244646600200200644b30010018a508acc004cdd798228009ba70038a518998010011823000a080410d2259800981d181f9baa0028991919194c004c11c006608e00730470024889660026096009133029304a007133026002132598009821000c4c8ca60026eb4c134006609c003375a609a0049112cc004c14400a264646644b300130550038094590521bae3052001375c60a400460a40026eb0c14000a2c8270609a00260906ea800a2b30013038001899194c004dd69826800cc1380066eb4c13400922259800982880144c8c8cc896600260aa0070128b20a4375c60a40026eb8c148008c148004dd6182800145904e0c134004c120dd5001456600260820031323298009bad304d0019827000cdd698268012444b300130510028991919912cc004c15400e0251641486eb8c148004dd7182900118290009bac30500028b209c182680098241baa0028acc004c10c0062646644b3001304f0018991919912cc004c14c00e0211641406eb8c140004dd7182800118280009bac304e0018b2098375a6098002609a00260906ea800a2b300130370018991919912cc004c14000e01b1641346eb4c134004dd69826801182680098241baa0028acc004c0d800626464653001375a609c003375a609c007375a609c0049112cc004c14801201f16413c304e001304d00130483754005159800981a800c4c8c966002609c00500b8b2096375a609800260906ea800a2b30013370e9007000c4c8c966002609c00500b8b2096375a609800260906ea800a2c8231046208c41188231046208c4118608c6ea80062c8240608e002608c002608a00260806ea800a2c81f2460846086608660866086003222329800800c01200680088896600200510018cc00400e6090005330043047002001400c822a6e2520009b88480012222222222222222222980098281baa0129808808c8896600260260051329800800c0120074800100111112cc00400e2b30010028800c59059466002009305c003982e0014cc8966002600e0051337000066eb4c118c168dd5001459058182d8019bad305b002401082ca2c8292601c01d222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01905844cc014014c1780110581bae3057001375a60b000260b400282c0cc04401000c52000488888c8cc896600260a801119800912cc004c154c168dd500144c8c96600260c20050038b20bc375a60be00260b66ea800a2c82ca444466e24004ca60020030058025200040044444b30010038acc00400a2003164189198008024c19400e60ca00532332259800982e98319baa0028991980c8008acc004cdd7980f98329baa00230683065375400915980099baf30513065375400260d060ca6ea800a264b3001305f30653754003132325980099b87375a60d60046eb4c150c1a0dd5002c56600266e1cdd698358009bad30533068375400b15980099baf306b306c001301b3068375400b1337000113001375660a860d06ea8c150c1a0dd5003cdd71835806cdd718359836006a0268b20cc8b20cc8b20cc306b0013066375400316419060a060ca6ea80062c831a2c8318c19cc190dd5001459062182698311baa304e3062375400260ca00660c800680210624888888c8c96600266e1c0040122646464b30013370e66e04dd6983398321baa3067002375a60ce60c86ea8c19c00c012264b30019800801528c88896600200315980099b8f004489008a5189980f002998359ba90043306b375200697ae0419d14a0833901b44cdc4803cc004dd6180e18329baa00ca400122323259800cc004c18c0069429450674566002603200313370000666e0ccdc10009bad3055306937540086eb4c150c1a4dd50024590674400d0674c0040166eb8c1ac0066eb8c1acc1b00050131bac306a3067375400480ba2c8318cc070dd6180d98321baa00b2375860d060ca6ea80062c8310dd5983318338009833000cc00401e6eb8c190c184dd5182598309baa008803401500945905f2cc004c168c03000629000456600260c80031325980099b8f375c60c0002910104555344720089bad30610018b20be30630018b20c24178660366eacc048c17cdd50029bae304b305f3754609260be6ea801a660046eb0c170c164dd500d1bac3045305937540373045305937540729111119912cc00566002602000514a319800982d000d28528a0bc417913259800982d98301baa00189919911919912cc004c184c198dd5000c4c96600266e1ccdc09bad306b0010060048acc004cdc39bad306b306c001375a60d660d800f159800980c804c566003300133026375860d660d06ea8174dd7182998341baa30523068375401700c99835182a18341baa305230683754016660d4981054455534472004bd7052000403915980099b890033233001001375860a860d26ea8178896600200314800226644b30013375e60de60d86ea8008c1bcc1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1b0dd5007c4cdc0000cc004dd5982c18361baa0029bae3058306c375460ac60d86ea803e9101045553447200405d100141a860da0026600400460dc002835a3300100b82ecdd6982998341baa02a9bad302230683754055009805201a8b20cc8b20cc8acc00660026604c6eb0c1acc1a0dd502e9bae30533068375460a460d06ea802e0193306a30543068375460a460d06ea802ccc1a93001054455534472004bd704c08400d00e46600201705d9bad305330683754055375a604460d06ea80aa01300a403516419883322c83322c8330ca6002660240026eb4c1acc1a0dd50014dd7182a18341baa305230683754017375c604460d06ea8c148c1a0dd5005a444b30013065306a37540071325980099baf306f306c375460de60d86ea8004c154cc1b8dd480125eb822b3001305c98009bab3058306c3754003002a4410d7374616b696e675f7661756c7400405d13259800983318361baa0018991980a8008acc004cdd7981418371baa0034c0103d87a80008998381ba898009bab305a306e3754007005a4410455534472004064660e060e260dc6ea8004cc1c000d2f5c11641b060e060da6ea80062c8358c15cc1b0dd5000c5906a45906a183718359baa0038b20d21bac3052306737540b916419466e04018004c1a0c1a4c1a4c1a4c1a4c1a4c194dd5013acc004c050006266e10cdc1002801000c5200041886eb4c194004dd6983298311baa3065980082bcdd7183298311baa304c3062375400b375a609a60c46ea80926eb4c070c188dd50122014329800998060009bad306530623754005375c609c60c46ea8c130c188dd5002cdd7180e18311baa304c3062375400a9112cc004c17cc190dd5001c4c96600266ebcc1a4c198dd5183498331baa305230663754002609e660d06ea40092f5c1159800982b4c004dd5982918331baa305230663754003002a4410d7374616b696e675f7661756c7400404513259800983018331baa001899198078008998351ba898009bab30543068375460a860d06ea800e00b4881045553447200404c660d460d660d06ea8004cc1a800d2f5c060d460ce6ea80062c8328c144c198dd5182918331baa0018b20c88b20c830683065375400716418c375860c860c26ea815a2c82f8c04cc180dd501145905e4c00400a6eb0c184c178dd501048c040dd69825982f9baa001402d3001002a400122337000026eb4c12cc180dd50012020456600260a401119800912cc0040062900044cdc0240046600400460be00282e2444653001001802400d0011112cc00400a2b30010018a518a504181159800800c52845660026600860c40046eb4c1880063300100398318014c18c005003452820ba418083024466e0ccdc10011bad3046305b37540026eb4c11cc16cdd5000ccc008dd6182e182c9baa01a3758608a60b26ea806e608a60b26ea80e522222325980099914c004c8cc00400400c896600200314a115980099baf30663063375460cc60c66ea8c13cc18cdd518330009826198329ba90034bd704528c4cc008008c19c00506120c8a50a51417c6eb0c188c17cdd502a1bae3019305f3754609260be6ea800a2b300133225980099b87300300230030058acc004c08000633001002800c88c96600260bc60c66ea800626464b30013061306537540031325980099b87375a60d40026eb4c14cc19cdd5001c4cdd798351835800980d18339baa0038a50419460cc6ea80062941064182818329baa3259800982f98329baa0018991980d8008acc004cdd7981098339baa003306a3067375400d15980099baf30533067375400260d460ce6ea800e200316419516419460d260cc6ea80062c8320c140c194dd5182898329baa0043067306437540031641886601a00e002803a2c82fa2c82f8cc074dd61831182f9baa054375c609460be6ea8c124c17cdd50011bac304b305f3754043159800cc004dd61825182f9baa0549bac3062305f37540433758602c60be6ea80092229800803400a4464b3001305f3064375400319800983418329baa0019bac301830653754007323304d00523375e60d460ce6ea8004dd38011bac3018306537540069112cc004c188c19cdd5000c56600266ebcc1acc1a0dd5001983598341baa306b3068375400d15980099baf30533068375400660a860d06ea8c1acc1a0dd500344cdc3cc004dd5982a18341baa0039bae306b0029bae306b306c002404c6601a64b300133710002900044c08800620028338dd6982a18341baa006306b3068375400314a08332294106645906622c8318cc0380140050082260b330019800801cdd61831182f9baa02192cc004c040dd6982618301baa0018982d1bad304b3060375400314a082f100c4cc06cdd59809182f9baa054375c609660be6ea8c124c17cdd5001660020a9375c60c460be6ea8c124c17cdd50014dd69825182f9baa0219bad3019305f3754042803a6602e6eb0c058c17cdd500111bac30633060375400291111919912cc00660020054a3222259800800c56600266e3c011221008a5189980f804198361ba90043306c375200697ae041a114a0834101c456600266e1ccdc09bad30693066375460d20066eb4c1a4c198dd51834802800c4c96600266e1e60026eb0c078c19cdd500552000911919912cc006600260cc0034a14a28352264b3001337126602400200c00713370000a0031641ac66e0800401a2b3001301d002880245906a20d498008034dd71836800cdd718369837000a02a329800807d2000912cc004cdd7981018369baa002374e0071337000026eb4c164c1b4dd50014400506b203a375860da60d46ea800cdd6183618349baa002406466e040080222005164194b300130160078a40031480090644590644590641bab3067306800159800982f18080024520008acc004c1a0012264b30013371e6eb8c190005220104555344720089bad30650018b20c630670048b20ca418860ce0048b20ba8b20ba8b20ba3005005452820ae415c44646600200200444b30010018a5eb822660ba64b30013056305b37540031305f305c37540031641686600a0086eb4c178004cc008008c17c00505c1111192cc004c158c16cdd5000c4c96600266ebcc180c174dd51830182e9baa3049305d3754002608c660be6ea40152f5c11598009826cc004dd59824982e9baa3049305d3754003005a4508747265617375727900402113259800982b982e9baa0018991980d0008992cc004c168c17cdd5000c4c96600266ebcc190c184dd5183218309baa001304a33063375201297ae08acc004c14660026eacc134c184dd5000c02691108747265617375727900403113259800982d98309baa0018991980f0008acc004cdd7980e98319baa0034c0103d87a800089983280299832800998329ba6329800800cdd5982818321baa00499198008009bab30513065375460a260ca6ea8024896600200314bd6f7b63044c8cc1a4cdd818330009ba63233001001375660d000444b30010018a5eb7bdb182264660d866ec0c1a4004dd418119bad306a00133003003306e002306c00141a86600600660d600460d200283390011112cc00400a2003132332298008034c1b4016646600200200a44b300100189983699bb037520086e9800d2f5bded8c113298009bae306b0019bab306c00198380012444b300133720010007133071337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820e2880144cc1c8cdd81ba9009374c0020048370ca6002003008801a002222598008014400626466453001006983c802cc8cc0040040148966002003133079337606ea4010dd4001a5eb7bdb1822653001375c60ee003375a60f0003307c00248896600266e4002000e2660fa66ec0dd48041ba80070058acc004cdc7804001c4c96600260ec003100289983f19bb037520126ea000400907a19b8000700289983e99bb037520066ea0008cc01801800507920f2183d000a0f040186eb8c1c8004dd69839800983a80120e689983899bb037520066e98008cc01801800506d20da1837000a0d840186eb8c198004dd59833800983480120ce4bd70459061183298311baa0018b20c0304c3061375400316417d16417c60c660c06ea80062c82f0cc024dd61825182f9baa0080053061305e3754003164170609060ba6ea8c124c174dd5000c5905b45905b182f982e1baa0018b20b433005375860bc60b66ea8010008896600266e2000520008a6103d87a8000899803001000a0ac22646644b30013045001899912cc004c0f4c108dd500144c8c8c8cc8966002609800713259800982198241baa0018991919912cc004c14400e264b30013048001899192cc004c15000a01d1641446eb8c148004c138dd5003c566002607c00315980098271baa00780645904f45904c2098304c375400d1641386eb8c138004dd71827001182700098249baa0018b208e304b0058b2092375c609200260920046092002609000260866ea800a2c8208c1100044c010c1140162c8210dd7182100098218009bac304100240fd13230023041003375a607e00481ea2646004607e0066eb4c0f400903b4590390c0d8004c0d4004c0d0004c0cc004c0c8004c0b4dd5000c5902b1817802c5902d1bac302d001302d002302d001302c0013027375400b16409432323259800980e98111baa00189919912cc004c0a8006264b300130213026375400313232323232323232323232329800981b000cc0d802e606c0153036009981b0044c0d801e606c00d3036005981b0024c0d800e6eb0c0d80092222222222259800982100644cc080c10405c4cc0800284cc0800244cc0800204cc08001c4cc0800184cc0800144cc0800104cc08000c5660026070607a6ea800a264646464653001375c608c003375c608c00b375c608c009375c608c007375c608c004911112cc004c13001a26607201644b300100289981580b881444c966002608a60946ea800626464646644b300130540038991919912cc004c16000e2601660b00191641546eb8c154004dd7182a801182a8009bac30530058b20a2375a60a20026eb4c144008c144004c140004c12cdd5000c59049182680120968b20921823000982280098220009821800981f1baa0028b20788b207e181b000981a800981a0009819800981900098188009818000981780098170009816800981600098139baa0018b204a30290018b204e375c604e002605000260466ea80062c8108c966002603a60446ea8006264b3001301d302337540031302730243754003164088601c60466ea8c03cc08cdd5181318119baa0018b2042330093758601c60446ea805c8c8cc004004c00cdd5980818121baa30103024375400444b30010018a508acc004cdc79bae30280010228a518998010011814800a0464098600200244b30010018a5eb822660486042604a00266004004604c00281188966002603860426ea800a2646464b3001302900289980318140018992cc004c0800062b3001302637540050058b204e8acc004c05800626464b3001302c002803c590291bae302a00130263754005159800980f800c4c8c96600260580050078b2052302a00130263754005164090812102418121baa0018b204c3027001302700130223754005164080600800844b3001301a301f3754005132323259800981380144cc020c09800c4c966002603c003132598009814800c4c8c9660026042003132598009816000c4cc034c0ac0040262c8148c09cdd50014566002602e003132323298009bad302d0019bad302d0039bad302d002488966002606200900e8b205c1816800981600098139baa0028b204a4094604a6ea8004c0a00062c8130c090dd50014566002602800315980098121baa002802c59025459022204430223754003164090604a002604a00260406ea800a2c80f08acc004c02000e26464b30013009300e37546024602600514a314a08068dd6980880098069baa0048b2016402c300c300d001300c004452689b2b200401", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolManagementProtocolManagementElse { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594382010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a4912657870656374205b5d203d206c6973745f6200168a99801a491d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a4926657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a49d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d6572001648888888888888966003300130133754033370e90034dc3a4001370e9002244446465300130183754003301c006980e0012444b300130060038cc004c07cc070dd50024dd2a4001223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c918101810800c8c080c084c08400646040604260426042604260426042604260426042003374a900124444444444465300122259800980b18151baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130330028cc00400e264b3001301b0018992cc00400600f13259800800c566002606c00513259800980f000c4c96600200300a8992cc0040062b300130390028cc00400601900b403900b40d900b805c02e01681d0c0dc00503518199baa0028acc004c050006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013040003809c04903d1bad001808a080303d00140ec6eb4004c0f000a01c81e8c0e80050381bad0013039002805a074303700140d460666ea800a012818103018189baa0018042066804402201100840dc60680028190c0c0dd50014566002602200315980098181baa002803c019031401902d205a302e3754003005402100540c1005802c01600a81a0c0c400502f1818801400e007003801a064302f00140b460566ea800e0028142444653001001802400d001111192cc004c068006264b300100180344c966002003007803c01e00f13259800981b001c0160108198dd7000a06c303300140c4605e6ea800e2b300130100018992cc00400600d13259800800c01e00f13259800981b001c4cc05000489660020050078992cc0040063300100a800c4c008c0e400d00a402e01700b805a074303700240d500840cc6eb000600f00740d860660028188c0bcdd5001c566002603200313259800800c01a264b3001001803c01e264b3001303600389980a000912cc00400a00f13259800800c6600201500189801181c801a014805c02e01700b40e8606e00481aa0108198dd6000c01e00e81b0c0cc00503118179baa0038acc004c06c006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c96600260720071330170012259800801402a264b30010018cc00403600313002303c003403500e807403a01c81e8c0e8009038402d0361bac0018054029039181b000a068375a002606a00500740d860660028188c0bcdd5001c566002601e00313259800800c01a264b3001001803c01e00f13259800981b001c0160108198dd6800c01d0361819800a062302f37540071598009807000c4c9660020030068992cc00400600f007803c4c966002606c0070058042066375a00300740d860660028188c0bcdd5001c566002601a00313259800800c01a264b3001001803c01e00f0078992cc004c0d800e00b00840cc6eb80050361819800a062302f375400700540b0816102c205840b0816102c18169baa002911919800800801912cc0040062980103d87a80008992cc004c010006260206605e00297ae089980180198188012054302f00140b491119192cc0040063300122259800980d98179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b300130200018acc004c0d4dd5001401e00c81b22b300130160018992cc00400600f13259800800c02201100880444c966002607800700a804a072375c00281e0c0e4005037181a9baa0028acc004c07c006264b3001001803c4c96600260760050098042070303900140dc606a6ea800a00c8191032206430333754003005403100540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444b3001301b302f375400713259800800c00a264b30010018992cc00400600913259800800c4c966002606a00315980099b8948010c0d000600d13259800981d00244c9660026044003159800981b9baa006804c0210384566002603000313259800800c026264b3001001805402a01513259800981f001c03201681d8dd6800c02903e181d800a0723037375400d1598009810800c566002606e6ea801a01300840e100840d081a1034181a9baa005803a06e3016303400140c900640d86ea800600b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4889660026036605e6ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981d001c02200e81b8dd6800c01903a181b800a06a375c002606c00481b8c0d000503218181baa003800a05a911192cc004c070006264b3001001801c4c9660020030048024012264b3001303800380340150351bad0018022070303500140cc60626ea80122b300130120018acc004c0c4dd5002400e0048192004817102e18179baa0034888a6002444b3001301f3033375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c566002607e005198008034660020030098042018804201c804207880440220110084100607a00281d8dd6800981e001401503d181d000a070303a002801c00e00700340ec607000281b0c0d0dd5001c005031488966002603e60666ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b00d8992cc004c11400e3300100c8cc00401201f00e404900e405100e41086eb400601a8228c1080050401821001402e01700b805a086304000140f86eb4004c0fc00a0108200c0f400503b1bad001303c002802a07a303a00140e06074005003801c00e00681d8c0e0005036181a1baa003800a0629112cc004c07cc0ccdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b300130450038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001304a00380a404d0471bae0014128608e0028228dd70009823001208e3044001410900e404900e405100e41086eb000601b00d411460840028200c10800a01700b805c02d0431820000a07c375a002607e0050084100607a00281d8dd6800981e001401503d181d000a070303a002801c00e00700340ec607000281b0c0d0dd5001c005031488966002603e60666ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009822801c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009825001c0520268238dd7000a094304700141146eb8004c1180090471822000a084807202480720288072084375800300d806a08a30420014100608400500b805c02e0168218c10000503e1bad001303f0028042080303d00140ec6eb4004c0f000a00a81e8c0e8005038181d001400e007003801a076303800140d860686ea800e00281892222598009810181a1baa0098992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c966002003029814c4c96600260800071598009813981d9baa0068992cc00400605713259800800c0b20591332259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281940ca26644b300100181a44c96600200303581ac0d626644b300100181bc4c96600200313259800800c0e6264b30010018acc004c14000a26605c01c44b3001002899818006912cc00400a330010078cc004016264b3001303c3050375403313259800800c102264b30010018992cc00400608513259800800c56600260b200513322598009821000c4c9660020030468992cc00400608f0478992cc004c17800e26607800244b3001002803c4c96600200319800800c4c008c18400e096814a09704b825c12d062182f80120ba82420b63758003047823a0bc305b001416460ae6ea80162b300130380018992cc00400608d13259800800c11e08f13259800982f001c4cc0f000489660020050078992cc00400633001001898011830801c12d029412e09704b825a0c4305f0024175048416c6eb000608f047417860b600282c8c15cdd5002c566002608200313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a054825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa0058acc004c10c006264b300100182344c966002003047823c4c96600260bc00713303c0012259800801401e264b30010018cc0040062600460c200704b40a904b825c12e0968310c17c00905d412105b1bac001823c11d05e182d800a0b23057375400b159800981b800c4c9660020030468992cc00400608f0478992cc004c17800e26607800244b3001002803c4c96600200319800800c4c008c18400e096815a09704b825c12d062182f80120ba82420b63758003047823a0bc305b001416460ae6ea80162b300130360018992cc00400608d13259800800c11e08f13259800982f001c4cc0f000489660020050078992cc00400633001001898011830801c12d02b412e09704b825a0c4305f0024175048416c6eb000608f047417860b600282c8c15cdd5002c566002606a00313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a058825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa0058acc004cdc3a401c00313259800800c11a264b3001001823c11e264b3001305e00389981e000912cc00400a00f13259800800c66002003130023061003825a058825c12e09704b418860be00482ea09082d8dd6000c11e08e82f0c16c005059182b9baa005822a0a8415082a105420a8415082a10540992cc004c104006264b3001001822c4c966002003159800982e001466002003008823205282320b2823411a08d046417460b400282c0c158dd50014566002606e00313259800800c116264b30010018acc004c17000a2b300130433057375400313259800800c11e264b30010018992cc00400609313259800800c56600260c000519800801c6600200300c825205c825205c82520ba825412a09504a418460bc00282e0c17800a091048824412105f182e000a0b43058375400304641550464165046823411a08c82e8c168005058182b1baa00282220a6414c60a86ea8004c150dd5001c10d056410e087043821a0b43057001415460ae005041820c10608282c0c15400505318289baa01981fa09c133032015225980080146600260aa60a46ea809a60aa60a46ea8c0bcc148dd501348896600200514c0103d87a80008acc004c10000626070660ae60b000497ae08cc00400e60b2005337000029000a006414882b24606860a46ea8c158c8cc004004008896600200314bd708103d87a80008101800044c8cc8966003300130393057375460b60074a14a282aa2660b530014a14c103d87a8000a60103d87980004154660b46e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c17400400e294626600400460bc00282b905b44cc16a600294298103d87a8000a60103d87980004154660b46e9c0092f5c113305a9800a51a60103d87a8000a60103d87980004154660b46e9ccc168dd400080125eb8105520aa375860b260b40026eb4c164008cc008008c164005056488c8cc00400400c896600200314bd7044cc896600266ebcc16cc160dd5182d982c1baa3035305837540046064660b46ea40152f5c113305a00233004004001899802002000a0aa3059001305a001415d2259800800c52000899b8048008cc008008c160005055488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a2003006415d133005005305e004415c6eb8c15c004dd5982c000982d000a0b014bd6f7b630488966002608060a86ea800e264b300100180144c966002003003801c00e264b3001305c003802c0110591bad001801a0b83059001415c60aa6ea800e0028292460ac60ae60ae60ae00337029000488c8cc00400400c896600200314bd7044cc160dd39801982c80099801001182d000a0ae9182b182b982b982b982b982b982b982b982b982b982b800c888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd7182e000cdd6982e800ccc00c00cc184009009182f800a0ba375660b40066eb8c15c004cc00c00cc170008c168005058488c8cc00400400c896600200314a115980099baf3059001374e00714a3133002002305a001414c82ba444b300130403054375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c96600260c200519800803c6600200b132598009824800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e3754009159800981f800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e37540091598009824000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1ac00e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1c000e03301841b46eb80050701836800a0d6375c00260d80048368c1a8005068404d0681bac001809404906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e37540091598009825000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c1a000e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1b400e02d01541a86eb800506d1835000a0d0375c00260d20048350c19c00506540410651bac001807c03d0681832800a0c6375a00260c800500c419460c40028300c178dd50024566002607c00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009834001c0460208328dd6800c03d0681832800a0c6375a00260c800500c419460c40028300c178dd50024566002607a00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a025132598009835801c0520268340dd6800c04906b1834000a0cc375a00260ce00500f41a060ca0028318dd6800983200140310651831000a0c0305e3754009159800981e000c4c96600200300b8992cc00400601900c80644c96600260ca00700e806a0c4375a00300c419460c40028300c178dd5002456600266e1d200e0018992cc00400601713259800800c03201900c8992cc004c19400e01d00d41886eb40060188328c188005060182f1baa00480520b6416c82d905b20b6416c82d905b182e1baa003804a060804a068804a0bc305f001417460be005007803c01e00e8300c17400505b182e801401600b005802a0bc305b001416460b6005003801c00e00682e0c164005057182a9baa003800a0a49182b182b982b982b982b800c888ca6002003004801a002222598008014400633001003982e0014cc010c16c00800500320b29b89480026e2120004888888888888888888a600260c86ea804a602202322259800980980144ca6002003004801d200040044444b30010038acc00400a200306641b51598008014196330010049838001cc1c000a6644b30013007002899b80003375a609660dc6ea800a2a660d89211a6578706563742076616c69646174696f6e287265717565737429001641ac60de0066eb4c1bc00900420da41b5153306649012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900164195300e00e91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c835a26600a00a60e40088358dd718358009bad306c001306e00141b06602200800629000244444646644b300130590088cc0048896600260b660de6ea800e264b300100180144c966002003003801c00e264b30013077003802c0110741bad001801a0ee307400141c860e06ea800e002836a444466e24004ca60020030058025200040044444b30010038acc00400a200306f41d915980080141ba33001004983c801cc1e400a646644b300130623077375400513259800800c6600200315980099baf301f3079375400460f860f26ea80122b30013375e60ac60f26ea8004c1f0c1e4dd500144c96600260c860f26ea800626464b30013370e6eb4c1fc008dd6982c983e1baa0058acc004cdc39bad307f001375a60b060f86ea80162b30013375e60fe610002002603660f86ea8016266e0002260026eacc164c1f0dd5182c983e1baa0079bae307f00d9bae307f30800100d404d153307a49012d65787065637420726573657276655f6173736574203d3d20726571756573742e726573657276655f6173736574001641e5153307a4911d657870656374207969656c64203d3d20726571756573742e7969656c64001641e5153307a49122657870656374207072696e636970616c203d3d20726571756573742e616d6f756e74001641e460fe00260f46ea80062a660f0921184578706563746564204f4465706f73697420616374696f6e001641dc60aa60f26ea80062a660ee92012f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e001641d915330774912f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641d90714065071838c1c60e283f0c1ecc1e0dd500141bd0751829183b1baa30533076375400260f200660f0006802107620ec91111119192cc004cdc380080244c8c8c96600266e1ccdc09bad307b3078375460f60046eb4c1ecc1e0dd5183d80180244c9660033001002a5191112cc0040062b30013371e008911008a5189980f0029983f9ba90043307f375200697ae041e914a083d101b44cdc4803cc004dd6180e183c9baa00ca400122323259800cc004c1a000694294507a4566002603200313370000666e0ccdc10009bad305a307d37540086eb4c164c1f4dd5002454cc1ed2401176578706563742061637475616c5f64656c7461203e2030001641e9100341e930010059bae307f0019bae307f308001001404c6eb0c1f8c1ecdd5001202e835a0ec3301c3758603660f06ea802c8dd6183e183c9baa001835a0ea375660f460f600260f400330010079bae30783075375460a060ea6ea802200d0054025153307349123657870656374206d696e745f616d6f756e74203d3d2065787065637465645f6d696e74001641c8b3001305f300c0018a4001159800800c192264b300130790028992cc004cdc79bae307500248810455534472008800c19d0731bad3075001832a0ec307700141d48388cc06cdd5980918399baa005375c60a060e66ea8c138c1ccdd50034cc008dd6183818369baa01a3758609460da6ea806e609460da6ea810922222332259800acc004c04000a294633001305f001a50a5141c4838a264b30013060307437540031323322323322598009833183d1baa0018992cc004cdc399b81375a60fe00200c00915980099b87375a60fe6100020026eb4c1fcc2000401e2b300130190098acc00660026604c6eb0c1fcc1f0dd50311bae3058307c375460ae60f86ea802e0193307e3059307c375460ae60f86ea802ccc1f93001054455534472004bd7052000403915980099b890033233001001375860b260fa6ea818c896600200314800226644b30013375e6106026100026ea8008c20c04c21004c21004c21004c21004c21004c21004c21004c21004c21004c21004c21004c20004dd5007c4cdc0000cc004dd5982e9840009baa0029bae305d308001375460b66100026ea803e9101045553447200405d100141f46102020026600400461040200283fa3300100b8314dd6982c183e1baa02a9bad3022307c3754055009805201a8a9983d24812b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001641e5153307a491536578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473286f726465725f696e707574732c206465706f7369745f72657175657374732c20757364725f61737365742c203029001641e5159800cc004cc098dd6183f983e1baa062375c60b060f86ea8c15cc1f0dd5005c032660fc60b260f86ea8c15cc1f0dd50059983f2601054455534472004bd704c08400d00e4660020170629bad3058307c3754055375a604460f86ea80aa01300a4035153307a491906578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a20202020202029001641e483ca2a660f49213a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265001641e5153307a4913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001641e465300133012001375a60fe60f86ea800a6eb8c164c1f0dd5182b983e1baa00b9bae3022307c375460ae60f86ea802d222598009835183f1baa0038992cc004cdd79841809840009baa308301308001375400260b466104026ea40092f5c11598009830cc004dd5982e9840009baa00180152210d7374616b696e675f7661756c7400405d1325980098359840009baa0018992cc004006330010018acc004cdd798141841009baa0034c103d87a8000899842009ba898009bab305f3082013754007005a44104555344720040646610802610a026104026ea8004cc2100400d2f5c107841fd07d405507d83ec1f60fa843808c21004c20404dd5000c54cc1fd24012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001641f860b86100026ea80062a660fc92014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641f5153307e49141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641f461040260fe6ea800e2a660fa92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641f0375860ae60f66ea81862a660f292013565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f696478001641e066e04018004c1f0c1f4c1f4c1f4c1f4c1f4c1e4dd5013acc004c050006266e10cdc1002801000c5200041d46eb4c1e4004dd6983c983b1baa3079980082e4dd7183c983b1baa30513076375400b375a60a460ec6ea80926eb4c070c1d8dd50122014329800998060009bad307930763754005375c60a660ec6ea8c144c1d8dd5002cdd7180e183b1baa30513076375400a9112cc004c190c1e0dd5001c4c96600266ebcc1f4c1e8dd5183e983d1baa3057307a375400260a8660f86ea40092f5c1159800982dcc004dd5982b983d1baa3057307a3754003002a4410d7374616b696e675f7661756c74004045132598009832983d1baa0018992cc0040063300100189983f1ba898009bab3059307c375460b260f86ea800e00b489045553447200404c660fc60fe60f86ea8004cc1f800d2f5c1077403d07783bc1de0ee840808c1f8c1ecdd5000c1c9078182b183d1baa3057307a375400315330784901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd15330784914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea800e2a660ee92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641d8375860f060ea6ea816e2a660e692013365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f696478001641c8602660e86ea808a2a660e492012e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001641c530010029bac30753072375404123010375a60a060e66ea800500b4c00400a9000488cdc00009bad3050307437540048081159800982b80446600244b30010018a40011337009001198010011839800a0e0911194c0040060090034004444b30010028acc00400629462941074456600200314a115980099802183b0011bad30760018cc00400e60ee0053077001400d14a0838107420e89119b83337040046eb4c12cc1bcdd50009bad304c306f375400333002375860e060da6ea8068dd6182518369baa01b982518369baa042488888c9660026645300132330010010032259800800c528456600266ebcc1e8c1dcdd5183d183b9baa30543077375460f400260a2660f26ea400d2f5c114a3133002002307b00141d083c29429450721bac3076307337540b26eb8c064c1ccdd5182718399baa0028acc004cc896600266e1cc00c008c00c0162b300130200018cc00400a0032232598009831983b9baa001899192cc004c198c1e4dd5000c4c96600266e1cdd6983f0009bad3058307b375400713375e60fc60fe002603460f66ea800e2941078183d1baa0018a5041dc60aa60f26ea8c96600260c860f26ea8006264b30010018cc0040062b30013375e604260f66ea800cc1f8c1ecdd5003456600266ebcc160c1ecdd5000983f183d9baa0038800c54cc1e52413865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e001641e1153307949138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641e1073406d073839c1ce0e6840008c1f4c1e8dd5000c1c5077182a983c9baa30563079375400860f660f06ea80062a660ec92013e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f69647829001641d46601a00e002803a2a660e69201376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f726571756573747329001641c9153307349139657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e67746828726571756573747329001641c86603a6eb0c1d8c1ccdd502c9bae304f30733754609c60e66ea8008dd6182818399baa0218acc00660026eb0c13cc1ccdd502ccdd6183b18399baa0219bac3016307337540049114c00401a0052232598009832183c1baa0018cc004c1f0c1e4dd5000cdd6180c183c9baa0039919828002919baf307e307b37540026e9c008dd6180c183c9baa00348896600260ce60f66ea80062b30013375e60fe60f86ea800cc1fcc1f0dd5183f983e1baa0068acc004cdd7982c183e1baa0033059307c375460fe60f86ea801a266e1e60026eacc164c1f0dd5001cdd7183f8014dd7183f98400080120263300d325980099b880014800226044003100141e86eb4c164c1f0dd5003183f983e1baa0018a5041e514a083ca2a660f492015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001641e48a9983ba493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f69647829001641d86601c00a00280411305e9800cc00400e6eb0c1d8c1ccdd5010c96600260206eb4c144c1d0dd5000c4c17cdd69828183a1baa0018a5041c48062660366eacc048c1ccdd502c9bae305030733754609c60e66ea800b30010599bae307630733754609c60e66ea800a6eb4c13cc1ccdd5010cdd6980c98399baa021401d330173758602c60e66ea80088dd6183b983a1baa00148888ca600260f6003375660f660f8003307b003acc004c18cc0400122900045660020090688992cc004c1f4016264b30013371e6eb8c1e400922010455534472008800c1ad0771bad3079001834a0f4307b00441e483a9222259800cc00400e9464444b30010018acc004cdc78022441008a5189981080519841009ba90043308201375200697ae041f514a083e901e456600266e1ccdc09bad307f307c37540086eb4c1fcc1f0dd5001000c4c96600266e1e60026eb0c080c1f4dd500652000911919912cc006600260da0034a14a283fa264b3001337126602800200c00713370000a0031533081014912d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642000466e0800401a2b3001301f0028802454cc200052401186578706563742061637475616c5f64656c7461203e3d2030001641fc83fa600200f375c610602003375c61060261080200280b8ca60020234800244b30013375e60446106026ea8008dd3801c4cdc00009bad30603083013754005100142000480f8dd61841809840009baa003375861040260fe6ea800901b19b8100200a8801454cc1ed2413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c7461001641e8b300130180098a400314800907941bd07941b90790c1ec00915330714901a26578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641c11533071491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001641c1153307149142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c7429001641c0600a00a8a5041a8835088c8cc004004008896600200314bd7044cc1c4c96600260b660de6ea8006260e660e06ea80062a660dc92013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641b46600a0086eb4c1c8004cc008008c1cc0050701111192cc004c16cc1bcdd5000c4c96600266ebcc1d0c1c4dd5183a18389baa304e307137540026096660e66ea40152f5c115980098294c004dd5982718389baa304e30713754003005a44108747265617375727900402113259800982e18389baa0018992cc004006330010018992cc004c17cc1ccdd5000c4c96600266ebcc1e0c1d4dd5183c183a9baa001304f33077375201297ae08acc004c15a60026eacc148c1d4dd5000c0269101087472656173757279004031132598009830183a9baa0018992cc004006330010018acc004cdd7980e983b9baa0034c103d87a800089983c8029983c8009983c9ba6329800800cdd5982a983c1baa00499198008009bab30563079375460ac60f26ea8024896600200314bd6f7b63044c8cc1f4cdd8183d0009ba63233001001375660f800444b30010018a5eb7bdb182264661000266ec0c1f4004dd418119bad307e0013300300330820100230800100141f86600600660fe00460fa00283d90011112cc00400a2003132332298008034c20404016646600200200a44b30010018998408099bb037520086e9800d2f5bded8c113298009bae307f0019bab3080010019842008012444b30013372001000713308501337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528210a02880144cc21804cdd81ba9009374c002004840808ca6002003008801a002222598008014400626466453001006984680802cc8cc004004014896600200313308d01337606ea4010dd4001a5eb7bdb1822653001375c611602003375a61180200330900100248896600266e4002000e2661220266ec0dd48041ba80070058acc004cdc7804001c4c96600260f600310028998490099bb037520126ea000400908d0119b800070028998488099bb037520066ea0008cc01801800508c01211802184700800a1180240186eb8c21804004dd6984380800984480801210e028998428099bb037520066e98008cc01801800508001210002184100800a1000240186eb8c1e8004dd5983d800983e80120f64bd7041b507441b101e41b20d906c83620f8307930763754003153307449012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001641cc60a260ea6ea80062a660e6920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641c9153307349143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641c860ee60e86ea80062a660e492013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001641c4660126eb0c13cc1ccdd5004002c19d01a419e0cf067833a0f0307530723754003153307049013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001641bc609a60e26ea8c138c1c4dd5000c54cc1bd2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641b9153306f4914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641b860e660e06ea80062a660dc92013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641b46600a6eb0c1c8c1bcdd5002001112cc004cdc4000a400114c103d87a8000899803001000a0d22264b3001001820c106264b300100182144c966002003043821c10e0871332259800800c116264b30010018acc004c17000a264b300130443058375400513259800800c122264b30010018992cc00400609513259800800c4c96600200304c8992cc00400609b04d826c136264b300130640038acc004c12cc17cdd500344c96600200304f8992cc0040060a1050828414226644b300100182944c966002003053829c14e0a7132598009835001c4c96600260a400313259800800c15a264b300100182bc15e0af0578992cc004c1b800e02505841ac6eb800506e1835800a0d2306737540171598009824000c56600260ce6ea802e01f05541a105541908320c194dd500541510671bae00141a860ce0028328dd7000983300120ce3064001418860c06ea801a09c82ea09c8308dd7000a0c83061001417c60c200504b825c12e0968310c17c00505d182f8014126093049824a0c0305d001416c60b26ea800a08e82b04c01cc17002208c82ca08d046823411905d182d000a0b0375c00260b200482d0c15c0050551bac001820c105058182a80120a681f204081f20408992cc00400607f03f81fc4c8c00cc158010dd6800c0fd056182980120a28992cc00400607b03d81ec4c8c00cc150010dd6800c0f50541828801209e81d209a81d40ea07503a4144609c0028260c13800a07103881c40e104f1826000a094375a0026096005035413060920028238dd6800982400140c90491823000a0883758002608a00502f817a08c304300141046eb0004c10800a05902c410c608000281f0c0f0dd500340a903940a903d1bac001814c0a5040181e800a076303d002813c09e04f02740f8607600281c8c0ec00a04b025812c09503c181c800a06e3035375401302340c8406e03701b80da06433223259800980d18171baa001898179919bb030330013033303400137586064605e6ea80062a6605a92018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc02ccc0ccdd480225eb812f5c11301433033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756600e60586ea8048dd7181798161baa00132323259800800c5660026032605a6ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0dc00a2b3001301e3032375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006071038899912cc00400607513259800800c56600260a00051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606e60966ea801a264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c12609313259800982f801c4cc0f4048896600200519800809440c209881aa264b30010018acc004c124c174dd5000c4c96600200304e8992cc00400609f04f899912cc0040060a313259800800c14a0a5052899912cc0040060a913259800800c1560ab0558992cc004c1ac00e2b300100782b44c96600200305782bc15e0af1332259800800c166264b300100182d416a0b505a8992cc004c1c000e2602060e002305b41b46eb80050701836800a0d6375c00260d80108368c1a801d06841590681bad00182aa0d6306800141986eb4004c19c00a0a48340c1940050631bac0013064002827c13d0651831000a0c0305e375400304d416d04d826c13609a8318c18000905e412905c1bae001417c60b800282d0dd7000982d80120b83059001415c6eb8004c160009059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270c130dd500340ed04940ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed04d40ee07703b81da0a2304e00141306eb0004c13400a071038413860960028248c12c00a06d03681b40d904c1824800a08e304900281a40d20690344128608e0028228c11c00a06503281940c90481822800a086304500281840c2061030411860860028208c10c00a05d02e81740b90441820800a07e304100281640b205902c4108607e00281e8c0fc00a05502a81540a9040181e800a076303d00281440a205102840f8607600281c8c0ec00a04d026813409903c181c800a06e3039002812409204902440e8606e00281a8c0ccdd5000c0890304089034408a0450228112070303500140cc6eb8004c0d00090351819000a060302e375400301d40ad01d80ec07603a8198c9660026032605a6ea8006264b30013019302e375400313032302f3754003153302d4913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06014605c6ea8c02cc0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac660066eb0c028c0b4dd50099191980080098019bab300c302f37546018605e6ea8008896600200314a115980099b8f375c606600205914a3133002002303400140b48188c004004896600200314bd7044cc0bcc0b0c0c0004cc008008c0c400502e0888c966002602c00313259800800c00e264b300100180240120090048992cc004c0c800e00d00540bc6eb80050321817800a05a302b37540091598009806000c4c9660020030038992cc0040060090048024012264b30013032003803401502f1bae00140c8605e0028168c0acdd500240090282050302937540068acc004c02000e26464b30013009301d37546042604400514a314a080d8dd69810000980e1baa0048b20324064301b301c001301b00445268a99808a491856616c696461746f722072657475726e65642066616c7365001365640401" + : "59230b010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd50024dd2a4001223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c918089809000c8c044c048c04800646022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911919800800801912cc0040062980103d87a80008992cc004c010006260206604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300d0018992cc004c08800626601e6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc03cdd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998089bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300c001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260160031323259800981180140122c8100dd69810800980e9baa0038acc004c02800626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009806000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a180d1baa002912cc004c054c068dd500144c8c8c96600260440051323259800980d000c56600260406ea800a00d1640851598009808000c4c8c966002604c0050088b2046375a604800260406ea800a2b300130190018acc004c080dd5001401a2c810a2c80f101e203c301e3754002604200716407c64b3001301e0018acc004cdc4a4008603a0031689807180e800a0388b203e37546040002604000260366ea800a2c80ca4464b30013016001899192cc004c08800a00916407c6eb4c080004c070dd5001c5660026018003159800980e1baa00380145901d45901a2034301a375400491111199119914c004cc88c966002603e60486ea80062604a6466ec0c0a4004c0a4c0a8004dd6181418129baa0018b204632330010010032259800800c5300103d87a80008992cc004cdd7981300099ba548010cc0a4c040cc0a4dd480225eb812f5c11301933029374e66052604c00266052604e00297ae04bd7044cc00c00cc0ac0090251814800a04e3756601860446ea805cdd7181298111baa002912cc004c078c08cdd500144c8c8c8cc8966002605a007133008302c0051330110020068b2054302a001375a60540046054002605200260486ea800a2c811244b3001301e302337540051323232323298009bad302c0019bad302c0049bad302c003981600124444b30013031005899806181800489980a80080545902e0c0b0004c0ac004c0a8004c0a4004c090dd500145902248966002603c60466ea800a26464646465300137586058003375a6058009375a6058007302c0024888966002606200b13300c3030009133015001132332259800981a001c0362c8188dd718188009bae303100530310048b205c181600098158009815000981480098121baa0028b2044912cc004c078c08cdd500144c8c8c8c8ca60026eb0c0b00066eb4c0b00126eb4c0b000e605800491112cc004c0c4016266018606001226602a0022646644b30013034003806c590311bae3031001375c606200a60620091640b8302c001302b001302a001302900130243754005164088911112cc004c084c098dd5002c4c8c8c8cc8966002606000713259800981398161baa00189919191919194c004c0d80066eb0c0d80166eb4c0d80126eb4c0d800e606c004911112cc004c0f001a2660526eb0c0ec02c896600200513302b006225980080144cc07c0144cc07c0244c966002606e60786ea804a2646464b3001304400289919912cc004c0f400a264b3001304800189981a9bac3047001225980080140122660406092004260026094004823a2c8228c10cdd5001c5660026066005132598009824000c4cc0d4dd61823800912cc00400a009133020304900213001304a002411d16411460866ea800e2b3001303c0028992cc004c12000626606a6eb0c11c00489660020050048998109824801098009825001208e8b208a30433754007159800981f00144c96600260900031330353758608e00244b300100280244cc084c1240084c004c12800904745904518219baa0038acc004c0c800a264b3001304800189981a9bac3047001225980080140122660446092004260026094004823a2c8228c10cdd5001c5660026062005132598009824000c4cc0d4dd61823800912cc00400a009133022304900213001304a002411d16411460866ea800e2b300130300028992cc004c12000626606a6eb0c11c00489660020050048998119824801098009825001208e8b208a3043375400715980099b874803800a264b3001304800189981a9bac3047001225980080140122660466092004260026094004823a2c8228c10cdd5001c59041208241048209041208241048208c100dd50008992cc004c0f0006264b300130470018998159823000803c5904418211baa0038acc004c0c8006264b300130470018992cc004c0f8c10cdd5000c4c8c8c966002609600513302b304a00313302b00100b8b20903049001304900130443754003164108608c00316411060846ea800e2c820104018201baa00230430038b208230420013042001303d37540251640ec26605a02444b30010028cc004c104c0f8dd500e4c104c0f8dd51815181f1baa01c9112cc00400a2980103d87a80008acc004c0ec0062606666086608800497ae08cc00400e608a005337000029000a00640fc82124605e607c6ea8c108c8cc004004008896600200314bd708103d87a80008101800044c8cc89660033001303430433754608e0074a14a2821226608d30014a14c103d87a8000a60103d879800041086608c6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12400400e29462660040046094002822104744cc11a600294298103d87a8000a60103d879800041086608c6e9c0092f5c11330469800a51a60103d87a8000a60103d879800041086608c6e9ccc118dd400080125eb8104220843758608a608c0026eb4c114008cc008008c114005042488c8cc00400400c896600200314bd7044cc896600266ebcc11cc110dd5182398221baa303030443754004605a6608c6ea40152f5c113304600233004004001899802002000a08430450013046001410d2259800800c52000899b8048008cc008008c110005041488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064111133005005304a00441106eb8c10c004dd598220009823000a08814bd6f7b630489660026074607e6ea800a26464b30013046002801c590431bad3044001304037540051640f9230423043304330430019b814800244646600200200644b30010018a5eb822660886e9cc00cc114004cc008008c11800504348c108c10cc10cc10cc10cc10cc10cc10cc10cc10cc10c006444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c1200066eb4c12400666006006609a0048048c12c0050491bab3046003375c6086002660060066090004608c002822244646600200200644b30010018a508acc004cdd798228009ba70038a518998010011823000a080410d2259800981d181f9baa0028991919194c004c11c006608e00730470024889660026096009133029304a007133026002132598009821000c4c8ca60026eb4c134006609c003375a609a0049112cc004c14400a264646644b300130550038094590521bae3052001375c60a400460a40026eb0c14000a2c8270609a00260906ea800a2b30013038001899194c004dd69826800cc1380066eb4c13400922259800982880144c8c8cc896600260aa0070128b20a4375c60a40026eb8c148008c148004dd6182800145904e0c134004c120dd5001456600260820031323298009bad304d0019827000cdd698268012444b300130510028991919912cc004c15400e0251641486eb8c148004dd7182900118290009bac30500028b209c182680098241baa0028acc004c10c0062646644b3001304f0018991919912cc004c14c00e0211641406eb8c140004dd7182800118280009bac304e0018b2098375a6098002609a00260906ea800a2b300130370018991919912cc004c14000e01b1641346eb4c134004dd69826801182680098241baa0028acc004c0d800626464653001375a609c003375a609c007375a609c0049112cc004c14801201f16413c304e001304d00130483754005159800981a800c4c8c966002609c00500b8b2096375a609800260906ea800a2b30013370e9007000c4c8c966002609c00500b8b2096375a609800260906ea800a2c8231046208c41188231046208c4118608c6ea80062c8240608e002608c002608a00260806ea800a2c81f2460846086608660866086003222329800800c01200680088896600200510018cc00400e6090005330043047002001400c822a6e2520009b88480012222222222222222222980098281baa0129808808c8896600260260051329800800c0120074800100111112cc00400e2b30010028800c59059466002009305c003982e0014cc8966002600e0051337000066eb4c118c168dd5001459058182d8019bad305b002401082ca2c8292601c01d222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01905844cc014014c1780110581bae3057001375a60b000260b400282c0cc04401000c52000488888c8cc896600260a801119800912cc004c154c168dd500144c8c96600260c20050038b20bc375a60be00260b66ea800a2c82ca444466e24004ca60020030058025200040044444b30010038acc00400a2003164189198008024c19400e60ca00532332259800982e98319baa0028991980c8008acc004cdd7980f98329baa00230683065375400915980099baf30513065375400260d060ca6ea800a264b3001305f30653754003132325980099b87375a60d60046eb4c150c1a0dd5002c56600266e1cdd698358009bad30533068375400b15980099baf306b306c001301b3068375400b1337000113001375660a860d06ea8c150c1a0dd5003cdd71835806cdd718359836006a0268b20cc8b20cc8b20cc306b0013066375400316419060a060ca6ea80062c831a2c8318c19cc190dd5001459062182698311baa304e3062375400260ca00660c800680210624888888c8c96600266e1c0040122646464b30013370e66e04dd6983398321baa3067002375a60ce60c86ea8c19c00c012264b30019800801528c88896600200315980099b8f004489008a5189980f002998359ba90043306b375200697ae0419d14a0833901b44cdc4803cc004dd6180e18329baa00ca400122323259800cc004c18c0069429450674566002603200313370000666e0ccdc10009bad3055306937540086eb4c150c1a4dd50024590674400d0674c0040166eb8c1ac0066eb8c1acc1b00050131bac306a3067375400480ba2c8318cc070dd6180d98321baa00b2375860d060ca6ea80062c8310dd5983318338009833000cc00401e6eb8c190c184dd5182598309baa008803401500945905f2cc004c168c03000629000456600260c80031325980099b8f375c60c0002910104555344720089bad30610018b20be30630018b20c24178660366eacc048c17cdd50029bae304b305f3754609260be6ea801a660046eb0c170c164dd500d1bac3045305937540373045305937540729111119912cc00566002602000514a319800982d000d28528a0bc417913259800982d98301baa00189919911919912cc004c184c198dd5000c4c96600266e1ccdc09bad306b0010060048acc004cdc39bad306b306c001375a60d660d800f159800980c804c566003300133026375860d660d06ea8174dd7182998341baa30523068375401700c99835182a18341baa305230683754016660d4981054455534472004bd7052000403915980099b890033233001001375860a860d26ea8178896600200314800226644b30013375e60de60d86ea8008c1bcc1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1b0dd5007c4cdc0000cc004dd5982c18361baa0029bae3058306c375460ac60d86ea803e9101045553447200405d100141a860da0026600400460dc002835a3300100b82ecdd6982998341baa02a9bad302230683754055009805201a8b20cc8b20cc8acc00660026604c6eb0c1acc1a0dd502e9bae30533068375460a460d06ea802e0193306a30543068375460a460d06ea802ccc1a93001054455534472004bd704c08400d00e46600201705d9bad305330683754055375a604460d06ea80aa01300a403516419883322c83322c8330ca6002660240026eb4c1acc1a0dd50014dd7182a18341baa305230683754017375c604460d06ea8c148c1a0dd5005a444b30013065306a37540071325980099baf306f306c375460de60d86ea8004c154cc1b8dd480125eb822b3001305c98009bab3058306c3754003002a4410d7374616b696e675f7661756c7400405d13259800983318361baa0018991980a8008acc004cdd7981418371baa0034c0103d87a80008998381ba898009bab305a306e3754007005a4410455534472004064660e060e260dc6ea8004cc1c000d2f5c11641b060e060da6ea80062c8358c15cc1b0dd5000c5906a45906a183718359baa0038b20d21bac3052306737540b916419466e04018004c1a0c1a4c1a4c1a4c1a4c1a4c194dd5013acc004c050006266e10cdc1002801000c5200041886eb4c194004dd6983298311baa3065980082bcdd7183298311baa304c3062375400b375a609a60c46ea80926eb4c070c188dd50122014329800998060009bad306530623754005375c609c60c46ea8c130c188dd5002cdd7180e18311baa304c3062375400a9112cc004c17cc190dd5001c4c96600266ebcc1a4c198dd5183498331baa305230663754002609e660d06ea40092f5c1159800982b4c004dd5982918331baa305230663754003002a4410d7374616b696e675f7661756c7400404513259800983018331baa001899198078008998351ba898009bab30543068375460a860d06ea800e00b4881045553447200404c660d460d660d06ea8004cc1a800d2f5c060d460ce6ea80062c8328c144c198dd5182918331baa0018b20c88b20c830683065375400716418c375860c860c26ea815a2c82f8c04cc180dd501145905e4c00400a6eb0c184c178dd501048c040dd69825982f9baa001402d3001002a400122337000026eb4c12cc180dd50012020456600260a401119800912cc0040062900044cdc0240046600400460be00282e2444653001001802400d0011112cc00400a2b30010018a518a504181159800800c52845660026600860c40046eb4c1880063300100398318014c18c005003452820ba418083024466e0ccdc10011bad3046305b37540026eb4c11cc16cdd5000ccc008dd6182e182c9baa01a3758608a60b26ea806e608a60b26ea80e522222325980099914c004c8cc00400400c896600200314a115980099baf30663063375460cc60c66ea8c13cc18cdd518330009826198329ba90034bd704528c4cc008008c19c00506120c8a50a51417c6eb0c188c17cdd502a1bae3019305f3754609260be6ea800a2b300133225980099b87300300230030058acc004c08000633001002800c88c96600260bc60c66ea800626464b30013061306537540031325980099b87375a60d40026eb4c14cc19cdd5001c4cdd798351835800980d18339baa0038a50419460cc6ea80062941064182818329baa3259800982f98329baa0018991980d8008acc004cdd7981098339baa003306a3067375400d15980099baf30533067375400260d460ce6ea800e200316419516419460d260cc6ea80062c8320c140c194dd5182898329baa0043067306437540031641886601a00e002803a2c82fa2c82f8cc074dd61831182f9baa054375c609460be6ea8c124c17cdd50011bac304b305f3754043159800cc004dd61825182f9baa0549bac3062305f37540433758602c60be6ea80092229800803400a4464b3001305f3064375400319800983418329baa0019bac301830653754007323304d00523375e60d460ce6ea8004dd38011bac3018306537540069112cc004c188c19cdd5000c56600266ebcc1acc1a0dd5001983598341baa306b3068375400d15980099baf30533068375400660a860d06ea8c1acc1a0dd500344cdc3cc004dd5982a18341baa0039bae306b0029bae306b306c002404c6601a64b300133710002900044c08800620028338dd6982a18341baa006306b3068375400314a08332294106645906622c8318cc0380140050082260b330019800801cdd61831182f9baa02192cc004c040dd6982618301baa0018982d1bad304b3060375400314a082f100c4cc06cdd59809182f9baa054375c609660be6ea8c124c17cdd5001660020a9375c60c460be6ea8c124c17cdd50014dd69825182f9baa0219bad3019305f3754042803a6602e6eb0c058c17cdd500111bac30633060375400291111919912cc00660020054a3222259800800c56600266e3c011221008a5189980f804198361ba90043306c375200697ae041a114a0834101c456600266e1ccdc09bad30693066375460d20066eb4c1a4c198dd51834802800c4c96600266e1e60026eb0c078c19cdd500552000911919912cc006600260cc0034a14a28352264b3001337126602400200c00713370000a0031641ac66e0800401a2b3001301d002880245906a20d498008034dd71836800cdd718369837000a02a329800807d2000912cc004cdd7981018369baa002374e0071337000026eb4c164c1b4dd50014400506b203a375860da60d46ea800cdd6183618349baa002406466e040080222005164194b300130160078a40031480090644590644590641bab3067306800159800982f18080024520008acc004c1a0012264b30013371e6eb8c190005220104555344720089bad30650018b20c630670048b20ca418860ce0048b20ba8b20ba8b20ba3005005452820ae415c44646600200200444b30010018a5eb822660ba64b30013056305b37540031305f305c37540031641686600a0086eb4c178004cc008008c17c00505c1111192cc004c158c16cdd5000c4c96600266ebcc180c174dd51830182e9baa3049305d3754002608c660be6ea40152f5c11598009826cc004dd59824982e9baa3049305d3754003005a4508747265617375727900402113259800982b982e9baa0018991980d0008992cc004c168c17cdd5000c4c96600266ebcc190c184dd5183218309baa001304a33063375201297ae08acc004c14660026eacc134c184dd5000c02691108747265617375727900403113259800982d98309baa0018991980f0008acc004cdd7980e98319baa0034c0103d87a800089983280299832800998329ba6329800800cdd5982818321baa00499198008009bab30513065375460a260ca6ea8024896600200314bd6f7b63044c8cc1a4cdd818330009ba63233001001375660d000444b30010018a5eb7bdb182264660d866ec0c1a4004dd418119bad306a00133003003306e002306c00141a86600600660d600460d200283390011112cc00400a2003132332298008034c1b4016646600200200a44b300100189983699bb037520086e9800d2f5bded8c113298009bae306b0019bab306c00198380012444b300133720010007133071337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820e2880144cc1c8cdd81ba9009374c0020048370ca6002003008801a002222598008014400626466453001006983c802cc8cc0040040148966002003133079337606ea4010dd4001a5eb7bdb1822653001375c60ee003375a60f0003307c00248896600266e4002000e2660fa66ec0dd48041ba80070058acc004cdc7804001c4c96600260ec003100289983f19bb037520126ea000400907a19b8000700289983e99bb037520066ea0008cc01801800507920f2183d000a0f040186eb8c1c8004dd69839800983a80120e689983899bb037520066e98008cc01801800506d20da1837000a0d840186eb8c198004dd59833800983480120ce4bd70459061183298311baa0018b20c0304c3061375400316417d16417c60c660c06ea80062c82f0cc024dd61825182f9baa0080053061305e3754003164170609060ba6ea8c124c174dd5000c5905b45905b182f982e1baa0018b20b433005375860bc60b66ea8010008896600266e2000520008a6103d87a8000899803001000a0ac22646644b30013045001899912cc004c0f4c108dd500144c8c8c8cc8966002609800713259800982198241baa0018991919912cc004c14400e264b30013048001899192cc004c15000a01d1641446eb8c148004c138dd5003c566002607c00315980098271baa00780645904f45904c2098304c375400d1641386eb8c138004dd71827001182700098249baa0018b208e304b0058b2092375c609200260920046092002609000260866ea800a2c8208c1100044c010c1140162c8210dd7182100098218009bac304100240fd13230023041003375a607e00481ea2646004607e0066eb4c0f400903b4590390c0d8004c0d4004c0d0004c0cc004c0c8004c0b4dd5000c5902b1817802c5902d1bac302d001302d002302d001302c0013027375400b16409432323259800980e98111baa00189919912cc004c0a8006264b300130213026375400313232323232323232323232329800981b000cc0d802e606c0153036009981b0044c0d801e606c00d3036005981b0024c0d800e6eb0c0d80092222222222259800982100644cc080c10405c4cc0800284cc0800244cc0800204cc08001c4cc0800184cc0800144cc0800104cc08000c5660026070607a6ea800a264646464653001375c608c003375c608c00b375c608c009375c608c007375c608c004911112cc004c13001a26607201644b300100289981580b881444c966002608a60946ea800626464646644b300130540038991919912cc004c16000e2601660b00191641546eb8c154004dd7182a801182a8009bac30530058b20a2375a60a20026eb4c144008c144004c140004c12cdd5000c59049182680120968b20921823000982280098220009821800981f1baa0028b20788b207e181b000981a800981a0009819800981900098188009818000981780098170009816800981600098139baa0018b204a30290018b204e375c604e002605000260466ea80062c8108c966002603a60446ea8006264b3001301d302337540031302730243754003164088601c60466ea8c03cc08cdd5181318119baa0018b2042330093758601c60446ea805c8c8cc004004c00cdd5980818121baa30103024375400444b30010018a508acc004cdc79bae30280010228a518998010011814800a0464098600200244b30010018a5eb822660486042604a00266004004604c00281188966002603860426ea800a2646464b3001302900289980318140018992cc004c0800062b3001302637540050058b204e8acc004c05800626464b3001302c002803c590291bae302a00130263754005159800980f800c4c8c96600260580050078b2052302a00130263754005164090812102418121baa0018b204c3027001302700130223754005164080600800844b3001301a301f3754005132323259800981380144cc020c09800c4c966002603c003132598009814800c4c8c9660026042003132598009816000c4cc034c0ac0040262c8148c09cdd50014566002602e003132323298009bad302d0019bad302d0039bad302d002488966002606200900e8b205c1816800981600098139baa0028b204a4094604a6ea8004c0a00062c8130c090dd50014566002602800315980098121baa002802c59025459022204430223754003164090604a002604a00260406ea800a2c80f08acc004c02000e26464b30013009300e37546024602600514a314a08068dd6980880098069baa0048b2016402c300c300d001300c004452689b2b200401", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolMintProtocolMintWithdraw { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5948de010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a495365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f61737365742900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a492e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a4942657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d65720016488888888888888888896600330013018375403d370e90034dc3a4001370e90022444464653001301d3754003302100698108012444b300130060038cc004c090c084dd500248c094c098c0980064604a604c003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480324604a604c604c604c604c604c604c604c604c604c003374a900124444444444465300122259800980b18179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b3001301b0018992cc00400600f13259800800c566002607600513259800980f000c4c96600200300a8992cc0040062b3001303e0028cc00400601900b403900b40ed00b805c02e01681f8c0f000503a181c1baa0028acc004c048006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013045003809c0490421bad001808a08a304200141006eb4004c10400a01c8210c0fc00503d1bad001303e002805a07e303c00140e860706ea800a01281a9035181b1baa0018042070804402201100840f0607200281b8c0d4dd50014566002601e003159800981a9baa002803c0190364019032206430333754003005402100540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444653001001802400d001111192cc004c068006264b300100180344c966002003007803c01e00f13259800981d801c01601081c0dd7000a076303800140d860686ea800e2b3001300e0018992cc00400600d13259800800c01e00f13259800981d801c4cc04800489660020050078992cc0040063300100a800c4c008c0f800d00a402e01700b805a07e303c00240e900840e06eb000600f00740ec607000281b0c0d0dd5001c566002603200313259800800c01a264b3001001803c01e264b3001303b003899809000912cc00400a00f13259800800c6600201500189801181f001a014805c02e01700b40fc607800481d201081c0dd6000c01e00e81d8c0e0005036181a1baa0038acc004c06c006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002607c0071330150012259800801402a264b30010018cc004036003130023041003403500e807403a01c8210c0fc00903d402d03b1bac001805402903e181d800a072375a002607400500740ec607000281b0c0d0dd5001c566002601a00313259800800c01a264b3001001803c01e00f13259800981d801c01601081c0dd6800c01d03b181c000a06c303437540071598009806000c4c9660020030068992cc00400600f007803c4c96600260760070058042070375a00300740ec607000281b0c0d0dd5001c566002601600313259800800c01a264b3001001803c01e00f0078992cc004c0ec00e00b00840e06eb800503b181c000a06c3034375400700540c48189031206240c4818903118191baa002911919800800801912cc004006298103d87a80008992cc004c0100062601c6606800297ae0899801801981b001205e303400140c891119192cc0040063300122259800980d981a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b300130200018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c07c006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005403100540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e0028192444b3001301b3034375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607400315980099b8948010c0e400600d13259800981f80244c9660026044003159800981e1baa006804c02103d4566002602c00313259800800c026264b3001001805402a015132598009821801c0320168200dd6800c0290431820000a07c303c375400d1598009810800c56600260786ea801a01300840f500840e481c9039181d1baa005803a0783014303900140dd00640ec6ea800600b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c005032488966002603660686ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981f801c02200e81e0dd6800c01903f181e000a074375c002607600481e0c0e4005037181a9baa003800a064911192cc004c070006264b3001001801c4c9660020030048024012264b3001303d003803401503a1bad001802207a303a00140e0606c6ea80122b300130100018acc004c0d8dd5002400e00481ba0048199033181a1baa0034888a6002444b3001301f3038375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c5660026088005198008034660020030098042018804201c80420828044022011008411460840028200dd680098208014015042181f800a07a303f002801c00e0070034100607a00281d8c0e4dd5001c005036488966002603e60706ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b00d8992cc004c12800e3300100c8cc00401201f00e404900e405100e411c6eb400601a8250c11c0050451823801402e01700b805a0903045001410c6eb4004c11000a0108228c1080050401bad0013041002802a084303f00140f4607e005003801c00e0068200c0f400503b181c9baa003800a06c9112cc004c07cc0e0dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001304a0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001304f00380a404d04c1bae001413c60980028250dd7000982580120983049001411d00e404900e405100e411c6eb000601b00d4128608e0028228c11c00a01700b805c02d0481822800a086375a0026088005008411460840028200dd680098208014015042181f800a07a303f002801c00e0070034100607a00281d8c0e4dd5001c005036488966002603e60706ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009825001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009827801c0520268260dd7000a09e304c00141286eb8004c12c00904c1824800a08e80720248072028807208e375800300d806a09430470014114608e00500b805c02e0168240c1140050431bad0013044002804208a304200141006eb4004c10400a00a8210c0fc00503d181f801400e007003801a080303d00140ec60726ea800e00281b12222598009810181c9baa0098992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c966002003029814c4c966002608a007159800981398201baa0068992cc00400605713259800800c0b20591332259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281940ca26644b300100181a44c96600200303581ac0d626644b300100181bc4c96600200313259800800c0e6264b30010018acc004c15400a26605801c44b3001002899817006912cc00400a330010078cc00401626464b3001303d3056375403513259800800c106264b30010018992cc00400608713259800800c56600260be00513322598009821800c4c9660020030478992cc0040060910488992cc004c19000e26607600244b3001002803c4c96600200319800800c4c008c19c00e098815209904c8264131068183280120c6824a0c2375800304882420c83061001417c60ba6ea80162b300130370018992cc00400608f13259800800c122091132598009832001c4cc0ec00489660020050078992cc00400633001001898011833801c13102a413209904c82620d03065002418d04941846eb0006091048419060c200282f8c174dd5002c566002608400313259800800c11e264b30010018244122264b3001306400389981d800912cc00400a00f13259800800c660020031300230670038262056826413209904c41a060ca004831a0928308dd6000c1220908320c18400505f182e9baa0058acc004c110006264b3001001823c4c96600200304882444c96600260c800713303b0012259800801401e264b30010018cc0040062600460ce00704c40ad04c82641320988340c19400906341250611bac00182441210641830800a0be305d375400b159800981b000c4c9660020030478992cc0040060910488992cc004c19000e26607600244b3001002803c4c96600200319800800c4c008c19c00e098816209904c8264131068183280120c6824a0c2375800304882420c83061001417c60ba6ea80162b300130350018992cc00400608f13259800800c122091132598009832001c4cc0ec00489660020050078992cc00400633001001898011833801c13102c413209904c82620d03065002418d04941846eb0006091048419060c200282f8c174dd5002c566002606800313259800800c11e264b30010018244122264b3001306400389981d800912cc00400a00f13259800800c66002003130023067003826205a826413209904c41a060ca004831a0928308dd6000c1220908320c18400505f182e9baa0058acc004c020006264b3001001823c4c96600200304882444c96600260c800713303b0012259800801401e264b30010018cc0040062600460ce00704c40b504c82641320988340c19400906341250611bac00182441210641830800a0be305d375400b046416882d105a20b4416882d105a20b4132598009821000c4c9660020030468992cc0040062b300130620028cc00400601104740a9047417d047823c11e08e8318c18000505e182e1baa0028acc004c0d8006264b300100182344c96600200315980098310014566002608860ba6ea8006264b300100182444c96600200313259800800c12a264b30010018acc004c19800a330010038cc00400601904b40bd04b40bd04b418d04b825c12e0968338c19000506218320014126093049824a0ca3062001418060bc6ea800608e82da08e82fa08f047823c11d0631830000a0bc305c3754005045416482c8c168dd5000982d1baa00382220b88224112089044418060ba00282d8c17400a085042821410905e182d800a0b230573754035040415026606202c44b30010028cc004c16cc160dd5013cc16cc160dd5181a982c1baa0279112cc00400a298103d87a80008acc004c1040062606e660ba60bc00497ae08cc00400e60be005337000029000a006416082e245300132330010010032259800800c528456600266ebcc17cc170dd5182f982e1baa3039305c375460be0026062660bc6ea400d2f5c114a31330020023060001416482ea942945057488c8cc00400400c896600200314bd7044cc896600266ebcc184c178dd51830982f1baa303b305e37540046066660c06ea40152f5c113306000233004004001899802002000a0b6305f00130600014175230333058375460b8646600200200444b30010018a5eb84103d87a80008101800044c8cc896600330013038305d375460c20074a14a282da2660c130014a14c103d87a8000a60103d8798000416c660c06e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c18c00400e294626600400460c800282e906144cc182600294298103d87a8000a60103d8798000416c660c06e9c0092f5c11330609800a51a60103d87a8000a60103d8798000416c660c06e9ccc180dd400080125eb8105b20b6375860be60c00026eb4c17c008cc008008c17c00505c48888ca6002003005802400d00111112cc00400e2b30010028800c54cc17924112657870656374205b5d203d206c6973745f6200164185159800801454cc1792411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260c80073064002cc004c18c00e6eb4c18c00a002802900420c24185222329800800c012006800888966002005159800800c528c52820be8acc00400629422b300133004306100230610018cc00400e60c40053062001400d14a082d905f20be91111919800800802912cc0040062660c066ec0dd48029ba80044bd6f7b63044ca60026eb8c1780066eb4c17c00660c60049112cc004cdc8004801c4cc190cdd81ba9009375001000b15980099b8f0090038cc00402601100291983299bb037520146ea000400a2002803a2660c866ec0dd48019ba800233006006001417c82f860c200282fa4444646600200200a44b300100189983019bb0375200a6e980112f5bded8c113298009bae305e0019bab305f00198318012444b300133720012007133064337606ea4024dd3004002c56600266e3c02400e33001009804400a4660ca66ec0dd48051ba60010028800a00e89983219bb037520066e98008cc01801800505f20be1830800a0be91191919800800802112cc00400600713233225980099b910070028acc004cdc78038014400600c82ea26600a00a60c800882e8dd7182e8009bab305e00130600014178297adef6c6092cc0040062946294105a4488888c966002608800300289801800a0b633700008007222598009820982d1baa0038992cc00400600513259800800c00e0070038992cc004c18800e00b004417c6eb40060068310c17c00505d182d9baa003800a0b09182e182e982e982e800cdc0a40012259800800c52000899b8048008cc008008c17800505b48c170c174c174c174c174c174c174c174c174c174c174006444b30013041305a375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c96600260ce00519800803c6600200b132598009825000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981f000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc306437540091598009824800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc306437540091598009825800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c1b800e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1cc00e02d01541c06eb80050731838000a0dc375c00260de0048380c1b400506b404106b1bac001807c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607a00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009837001c0460208358dd6800c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607800313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a025132598009838801c0520268370dd6800c0490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981d800c4c96600200300b8992cc00400601900c80644c96600260d600700e806a0d0375a00300c41ac60d00028330c190dd50024566002601e00313259800800c02e264b30010018064032019132598009835801c03a01a8340dd6800c03106b1834000a0cc3064375400900a4184830906120c24184830906120c23062375400700940c500940d5009419060ca0028318c19400a00f007803c01d0661831800a0c23063002802c01600b005419060c200282f8c18400a007003801c00d062182f800a0ba305b37540070014161223302b00223375e60bc60b66ea8004dd3801488cdc199b82002375a607060b46ea8004dd6981b982d1baa001912cc00400629344c966002003149a264b3001337206eb8c16cc17c00cdd7182d800c4cc010010cc178004c18000a2a660b4921326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f726465720016416460bc00282e0c17800505b4888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd71831000cdd69831800ccc00c00cc19c0090091832800a0c6375660c00066eb8c174004cc00c00cc188008c18000505e488c8cc00400400c896600200314bd7044cc178dd39801982f800998010011830000a0ba911919800800801912cc00400629422b30013375e60be0026e9c00e294626600400460c000282c905d4888ca6002003004801a00222259800801440063300100398310014cc010c18400800500320be9182e182e982e982e982e800cdc424001371e910104555344720048888888888888888888888888888a600260e86ea8072603603722259800980d801466002007002a4001222598009802001c4cdc00009bad3058307b375400706741e080d20da83aa4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320f689980280298410080220f6375c60f60026eb4c1f0004c1f800507c1980b8020018a400122329800800c00e00480088896600200510018994c00401260fe00798008014dd7183d000cdd5983d800c88888c966002603c00300289801800a0fc32329800800c01a00a80088896600200510018994c00401261120200798008014dd7184200800cdd6984280800c0150252008308701002421404a03880d1004183e80120f691919800800801112cc004006297adef6c608991983d99bb03078001374c64660020026eacc1e8008896600200314bd6f7b63044c8cc1f8cdd8183d8009ba83015375a60f80026600600661000200460fc00283e0cc00c00cc1f4008c1ec0050794c0340364464b3001305d3077375400313259800800c6600200315980099baf30133079375400660f860f26ea80122b30013375e60ac60f26ea8004c1f0c1e4dd5001c40062a660ee9213865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e001641d9153307749138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641d9067403d067833c19e0ce83f0c1ecc1e0dd5000c195075182a983b9baa30543077375400530080084888888888ca600244646600200200444b30010018a5eb8226610a0264b3001306a30830137540031308701308401375400315330820149013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f6964782900164204046600a0086eb4c21804004cc008008c21c040050840148888c96600260d46106026ea8006264b30013375e611002610a026ea8c22004c21404dd518311842809baa001305a3308701375200a97ae08acc004c17e60026eacc188c21404dd518311842809baa001802d2210874726561737572790040351325980098359842809baa0018992cc004006330010018992cc004c1b8c21c04dd5000c4c96600266ebcc23004c22404dd51846009844809baa001305e3308b01375201297ae08acc004c18e60026eacc198c22404dd5000c02691010874726561737572790040451325980098379844809baa0018992cc004006330010018acc004cdd798129845809baa0034c103d87a800089984680802998468080099846809ba633012375660d06116026ea800cc044dd598341845809baa3068308b01375400e97ae08a9984480a48126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001642200507f409907f83fc1fe0fe848008c23404c22804dd5000c54cc2200524012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016421c0460ce6112026ea80062a6610e02920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001642180515330870149143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f7363726970742900164218046116026110026ea80062a6610c0292013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f696478290016421404660126eb0c194c21c04dd5004002c1e902241ea0f507a83d211802308901308601375400315330840149013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016420c0460c6610a026ea8c188c21404dd5000c54cc20c052401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164208051533083014914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016420804610e026108026ea80062a661040292013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f6964782900164204046600a6eb0c21804c20c04dd50020014888888896600266ebcc22804c21c04dd50039845009843809baa0068acc004cdd798329843809baa0073064308701375400d13259800cc0040069464444b3001001899b894800000a29410890120348992cc004cdc4802000c56600266e2400400e2003153308701491216578706563742064656c697665726564203c3d206d61785f64656c6976657265640016421805153308701491216578706563742064656c697665726564203e3d206d696e5f64656c697665726564001642180530010019bae308b010049bae308b01308c010044041153308601490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d2900164214046601c6eacc190c21c04dd50039806cc004dd7184500802cdd7184500984580802cc080011222598009838000c402e3300100b801cc8c8008c038004cc23004cdd81ba9002375000297adef6c6091111192cc004c0b400600513003001423404653001004804401e444453001005801c0120050014018818140ad029210e02454cc2140524128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d00164210051533085014912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e6164647265737300164210049112cc004c1a00363300122323370666e00cdc019b82003375a60c6610a026ea80080052001001375a60c26108026ea8006660066eb0c21404c20804dd50149bac305f30820137540553758610a026104026ea80aa6eb4c180c20804dd50154dd6980e1841009baa02a982f9841009baa0524888889660026605a6eb0c22c04c22004dd50349bae3022308801375460bc6110026ea800626644b300132980080140224464b30013074308d0137540031323232980099813003800cdd6180f9848809baa0059bad3094010039bad309401002488896600260f66128026ea80122b300133712660266eb4c1c8c25404dd5004984c00984a809baa00498009bab3072309501375460e4612a026ea802a6eb8c2600400e6eb8c26004c2640400d01d456600266e1c008dd69839184a809baa0098acc004cdc38009bad3073309501375401313375e6e9c014c08cc25404dd5004c5282124028a5042480514a084900a2a661260292014365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f61737365742900164248043758612602612802002612602002611c026ea8006294108b0118359846809baa3301100200140b06eb0c084c22804dd5001c4c8c96600266e1c00660026eb0c1a8c23004dd5036ccc23804c1a4c23004dd518311846009baa0053308e014c1054455534472004bd704dd618119846009baa0054888ca6002003007806c03100111112cc00400e2900044cc896600200908d01899912cc004016120031332259800983f984c009baa001899912cc004c20404c26804dd5000c4cdc04c004dd5983c184d809baa3078309b013754011002984f00984d809baa0069bac3029309b01375400d33019375a60f06136026ea8018c27804c26c04dd5000c03a6eb4c1e4c26c04dd50034dd6983c184d809baa0064069300100c803c016008806212a0284c008c27004c26404dd5000998170059bac3027309901375400908f0142580461360200a660320166eb4c2680401509801184c00802184c80802212c02309601003309701003425004899194c004c244040066eacc24404c248040066603e6eb0c094c23804dd500391bac309201308f01375400330910100248889660033001003a5191112cc0040062b30013371e008911008a518998130031984c009ba90043309801375200697ae0424c0514a0849809024456600266e1ccdc09bad30950130920137540086eb4c25404c24804dd5000803c4c96600266e240200062604000315330910149012a657870656374206d696e745f616d6f756e74203c3d20746f74616c5f76616c6964617465645f7573647200164240053001375860526124026ea802e9000488c8cc89660033001307d001a50a5142500515980099b893302b001005002899b800040018a9984a80a4812d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642500515980099b894800000a20091533095014901186578706563742061637475616c5f64656c7461203e3d2030001642500484a00a600200d375c613002003375c61300261320200280e8ca60020274800244b30013375e604c6130026ea8008dd3801c4cdc00009bad3075309801375400510014254048128dd6184c00984a809baa0033758612e026128026ea800902142240508f0142340508f010c2440400660020db375c611e026118026ea8c188c23004dd5002c01e00c80622a661140292125657870656374206d696e745f616d6f756e74203d3d20746f74616c5f64656c6976657265640016422404b3001307130100018a4001159800800c1f2264b30013090010028992cc004c064dd7184600801440060fe845008dd6984600800c1f508d01184700800a11802422004660506eacc060c22804dd50359bae3067308a01375460c06114026ea800e2a66110029201556578706563740a2020202076616c69646174655f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f72657175657374732c2073657474696e67732e726573657276655f617373657473290016421c0530010058024966002602c6eb4c198c22404dd5000c4c058dd698339844809baa0018a504218048088cc0b0dd61845809844009baa069375c60cc6110026ea8c178c22004dd5000c1cd08501226644b3001305e00f8cc004cc014dd61843809842009baa02b375860c26108026ea80b26eb0c21c04c21004dd50164dd698311842009baa02c9bad301e3084013754059306130840137540a8911112cc004cc0b8dd61846009844809baa06a375c60466112026ea8c17cc22404dd5000c660033001005802496600266e20dd698339845009baa001480022602e6eb4c1a0c22804dd5000c528210e0240493302d37586118026112026ea81a8dd718339844809baa305f30890137540033308b013066308901375460be6112026ea8004cc22c05301054455534472004bd702444b3001980080140224464b30013069308e01375400313233225980099b8900198009bab306f309201375460de6124026ea801a6eb8c2540401e6eb8c25404c2580401d01a456600266e1c004c0acdd698379849009baa0058acc004cdc39bad309501002375a60e06124026ea8016266ebcc25404c25804008c080c24804dd5002c528211e028a50423c0514a0847808c25004004dd69849808009847809baa0018a5042300460d8611c026ea8cc04800800502d4660026644653001001802c02e014800888896600200714bd7044cc896600200908c01899912cc00401611e031332259800983f184b809baa001899912cc004c20004c26404dd5000c4cc88cc88cc00800800489660020031330a001374e66140026e9c010cc28004dd4001a5eb812f5c113298009bac30a2010019bad30a20130a3010019851808012444b30013375e6e9c00cdd380444cc29004dd399852009ba7003330a401375066e0000801d2f5c00031330a401374e66148026e9c00ccc29004dd400125eb80cc01801800509f010dd6185080800a13e029800807402600f00640386eb0c0a0c26804dd50034c004dd5983b984d009baa3077309a013754011002984e80984d009baa006807cc05cdd6983b984d009baa0069bac3028309a01375400d375a60f06134026ea801a6605c602e6eb4c1dcc26804dd5003184e80984d009baa001406509401425c046136026130026ea8004cc0b402cdd61813184c009baa00484700a12a02309a010053301800a375a61320200a84b808c25c04010c2600401109501184a80801984b00801a12602375860d46118026ea81b4dd618119846009baa004998151bab301a308c0137540da6eb8c1a4c23004dd518311846009baa004cc0041b66eb8c23c04c23004dd518311846009baa004803401500c4cc074dd618119846009baa00423758612002611a026ea80052222329800984a00800cdd5984a00984a80800cc2500400eb3001307730160048a4001159800802420806264b30013096010058992cc004c07cdd71849008014400610a02848008dd6984900800c20c0509301184a0080221240242380491112cc00660020074a3222259800800c56600266e3c0112201008a518998148051984d809ba90043309b01375200697ae042580514a084b009027456600266e1ccdc09bad30980130950137540086eb4c26004c25404dd5001000c56600266e1c0066002023480024466e00004dd6983a184b809baa0024091159800998099bac302c309501375401a46466e1e600200b375c613402003375c61340261360200280f8c0c0c8c8cc0040040348966002003148002264b30013375e613c020026e9c01226eb4c27804c27c04006266006006613e0200484c008dd6184e80800a136023758613402612e026ea8008dd6184c80984b009baa0018a518a9984980a49ff6578706563740a202020206c6973742e616c6c280a20202020202073657474696e67732e726573657276655f6173736574732c0a202020202020666e28726129207b0a20202020202020206c65742028706f6c6963792c206e616d6529203d2072612e61737365740a20202020202020206c65742061637475616c5f64656c7461203d206173736574732e7175616e746974795f6f662876616c75655f64656c74612c20706f6c6963792c206e616d65290a20202020202020206c657420757365725f7265636569707473203d206c6f6f6b75705f61737365745f73756d287065725f726573657276655f61637475616c732c2072612e6173736574290a20342020202020202061637475616c5f64656c7461203d3d202d757365725f72656365697074730a2020202020207d2c0a2020202029001642480515330930149123657870656374206d696e745f616d6f756e74203d3d2073756d6d65645f616d6f756e74001642480508c0142480509001424804309401002454cc22805241466578706563742076616c69646174655f72656465656d5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f617373657429001642240483a210c02456600260b601f19800998029bac30870130840137540566eb0c184c21004dd50164dd61843809842009baa02c9bad30623084013754059375a603c6108026ea80b260c26108026ea81512222259800998171bac308c0130890137540d46eb8c08cc22404dd5182f9844809baa0018acc00660026605a6eb0c23004c22404dd50351bae3067308901375460be6112026ea800600b22325980098389845809baa0018992cc004006330010018acc004cdd798359846809baa003309001308d01375400915980099baf306a308d013754002612002611a026ea800e264b30013065308d01375400313370e6eb4c24404c23804dd50009bad306b308e01375400914a0845808c1acc23404dd5000c1f508a0141f108a0141ed02341ee0f707b83da12402308f01308c01375400307942240460d26116026ea8c1a0c22c04dd500120548acc004cc88ca6002003008803a00222259800801456600200314a314a084780a2b30010018a508acc004cc896600260ec611e026ea8006264b30013375e6128026122026ea8004c25004c24404dd5184a009848809baa0038acc004cdd798379848809baa001306e30910137546128026122026ea800e266e1e60026eacc1b8c24404dd5000cdd7184a00803cdd71837003a032300e375a60dc6122026ea800e294108e014528211c023093013090013754003086014234046122020046602000a6eb4c24404006330010039849008014c248040050034528211602423c04847808dd618339844809baa06a3308b013066308901375460be6112026ea8004cc22c05301054455534472004bd7044c8ca60026eacc23804c23c04006660526eacc064c22c04dd50361bae3068308b01375460c26116026ea800eb3001302e0068cc00401e00d48002444b3001301b375a60d6611c026ea800e266e00004dd698359847009baa00383d21160240b5080014220049112cc004cdc3acc004c1d0c04c00a29000456600200507f8992cc004c24c0400e264b3001301c375c611e02005100184100a11a02375a611e020030800142400461220200484780908b01000c56600266e1ccdc09bad309101308e0137546122020086eb4c24404c23804dd5184880802800c4cc030dd618129847009baa00623230769800802cdd7184980800cdd7184980984a00800a0303758612402611e026ea800610a0284580a2a661180292012165787065637420757364725f6d696e746564203d3d206d696e745f616d6f756e740016422c04308e0100198008354dd71846009844809baa305f308901375400300380120128a9984380a481806578706563740a2020202076616c69646174655f6469726563745f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f75747075745f696e64696365732c0a202020202020757364725f61737365742c0a202020202900164218051533087014913f6578706563742076616c69646174655f6469726563745f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f72657175657374732900164218050744218048acc004c0bc03e33001330053758610e026108026ea80acdd618309842009baa02c9bad30623084013754059375a603c6108026ea80b260c26108026ea8151222259800998169bac308b0130880137540d26eb8c088c22004dd5182f1844009baa0018acc004cc8a600200500691192cc004c1c8c23004dd5000c4c96600200319800800c56600266ebcc1b0c23804dd50019848809847009baa0048acc004cdd798359847009baa001309101308e01375400713259800981d1847009baa0018992cc004cdc4800cc004dd598369848009baa306d309001375400d375c61260200f375c61260261280200e80c2266e1c004c0a4dd698369848009baa0058a504234046eb4c24804c23c04dd5000c528211802306c308e01375400307e422c0507d422c0507c409107c83e41f20f8849808c24004c23404dd5000c1e908a0118351846009baa3069308c0137540048158cc0b0dd61845809844009baa069375c60cc6110026ea8c178c22004dd5000998450098329844009baa305e30880137540026611402981054455534472004bd7044c8ca60026eacc23404c23804006660506eacc060c22804dd50359bae3067308a01375460c06114026ea800f3001006a4001225980099b88375a60d26118026ea80092000899b80001375a60d26118026ea800a0f08448090192444b30013370eb3001307330120028a400115980080141fa264b30013092010038992cc004c06cdd71847008014400610202846008dd6984700800c1fd08f01184800801211c0242280400315980099b87337026eb4c24004c23404dd51848008021bad309001308d01375461200200a00313300b37586048611a026ea80188c8c1d6600200b375c612402003375c61240261260200280b8dd61848809847009baa0018a9984580a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206275726e5f616d6f756e740016422805153308b014912165787065637420757364725f6d696e746564203d3d206275726e5f616d6f756e740016422804308d010019800834cdd71845809844009baa305e308801375400300380120108a9984300a4814b6578706563742076616c69646174655f6469726563745f6275726e5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f61737365742900164214050734214048a5042040484080908101111919800800801912cc00400629462b30013003308901001899801001184500800c528210602421c044b300133710002900044c070006200284000907f0896600266e2000520008a60103d87a8000899805001000a0fa2264b3001001821410a264b3001001821c4c96600200304482241120891332259800800c11a264b30010018acc004c18800a264b30013045305e375400513259800800c126264b30010018992cc00400609713259800800c4c96600200304d8992cc00400609d04e827413a264b3001306a0038acc004c130c194dd500344c9660020030508992cc0040060a3051828c14626644b3001001829c4c96600200305482a41520a9132598009838001c4c96600260a600313259800800c15e264b300100182c41620b10588992cc004c1d000e02505941c46eb80050741838800a0de306d37540171598009823800c56600260da6ea802e01f05641b905641a88350c1acdd5005415506d1bae00141c060da0028358dd7000983600120da306a00141a060cc6ea801a09e831a09e8338dd7000a0d43067001419460ce00504c82641320988340c1940050631832801412a09504a82520cc3063001418460be6ea800a09082e04c01cc18802208e82fa08f047823c11d0631830000a0bc375c00260be0048300c17400505b1bac001821410905e182d80120b2370e900740f902040f902044c96600200303f81fc0fe264600660b60086eb400607e82d8c16000905644c96600200303d81ec0f6264600660b20086eb400607a82c8c15800905440e905240ea07503a81d20ac3053001414460a600503881c40e207082a0c14400504f1bad001305000281aa0a2304e00141306eb4004c13400a0648270c12c0050491bac001304a002817c0bd04b1824000a08c3758002608e00502c81620903045001410c60826ea801a05481f20548210dd6000c0a60528228c1080050401821001409e04f027813a086304000140f86080005025812c09604a8208c0f800503c181d1baa009811a06e203701b80dc06d0371991192cc004c068c0ccdd5000c4c0d0c8cdd8181c000981c181c8009bac303730343754003153303249018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c02ccc0e0dd480225eb812f5c11301233038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c3756600e60626ea8048dd7181a18189baa00132323259800800c566002603260646ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0f000a2b3001301e3037375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006071038899912cc00400607513259800800c56600260aa0051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606e60a06ea801a264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c126093132598009832001c4cc0ec048896600200519800809440c209881aa264b30010018acc004c124c188dd5000c4c96600200304e8992cc00400609f04f899912cc0040060a313259800800c14a0a5052899912cc0040060a913259800800c1560ab0558992cc004c1c000e2b300100782b44c96600200305782bc15e0af1332259800800c166264b300100182d416a0b505a8992cc004c1d400e2602060ea02305b41c86eb80050751839000a0e0375c00260e20108390c1bc01d06d415906d1bad00182aa0e0306d00141ac6eb4004c1b000a0a48368c1a80050681bac0013069002827c13d06a1833800a0ca3063375400304d418104d826c13609a8340c19400906341290611bae001419060c200282f8dd7000983000120c2305e00141706eb8004c17400905e182d800a0b2375c00260b400482d8c1600050561bae0013057002416060aa0028298c144dd500340ed04e40ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed05240ee07703b81da0ac305300141446eb0004c14800a071038414c60a00028270c14000a06d03681b40d90511827000a098304e00281a40d2069034413c60980028250c13000a06503281940c904d1825000a090304a00281840c2061030412c60900028230c12000a05d02e81740b90491823000a088304600281640b205902c411c60880028210c11000a05502a81540a90451821000a080304200281440a2051028410c608000281f0c10000a04d0268134099041181f000a078303e002812409204902440fc607800281d0c0e0dd5000c0890354089039408a045022811207a303a00140e06eb8004c0e400903a181b800a06a3033375400301d40c101d80ec07603a81c0c966002603260646ea8006264b3001301930333754003130373034375400315330324913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602260666ea8c040c0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c0660066eb0c03cc0c8dd50099191980080098019bab301130343754602260686ea8008896600200314a115980099b8f375c607000206314a3133002002303900140c881b0c004004896600200314bd7044cc0d0c0c4c0d4004cc008008c0d80050330888c966002602c00313259800800c00e264b300100180240120090048992cc004c0dc00e00d00540d06eb8005037181a000a064303037540091598009805000c4c9660020030038992cc0040060090048024012264b3001303700380340150341bae00140dc60680028190c0c0dd5002400902d205a302e37540068acc004c02000e26464b3001300930223754604c604e00514a314a08100dd6981280098109baa0048b203c407830203021001302000445268a9980b2491856616c696461746f722072657475726e65642066616c7365001365640541" + : "5927b4010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b874803246022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911919800800801912cc0040062980103d87a80008992cc004c0100062601c6604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300b0018992cc004c08800626601a6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc034dd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998079bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd69810800980e9baa0038acc004c02000626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009805000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a180d1baa002912cc004c054c068dd500144c8c8c96600260440051323259800980d000c56600260406ea800a00d1640851598009807000c4c8c966002604c0050088b2046375a604800260406ea800a2b300130190018acc004c080dd5001401a2c810a2c80f101e203c301e3754002604200716407c64b3001301e0018acc004cdc4a4008603a0031689806180e800a0388b203e37546040002604000260366ea800a2c80ca4464b30013016001899192cc004c08800a00916407c6eb4c080004c070dd5001c5660026014003159800980e1baa00380145901d45901a2034301a375400491111199119914c004cc88c966002603e60486ea80062604a6466ec0c0a4004c0a4c0a8004dd6181418129baa0018b204632330010010032259800800c5300103d87a80008992cc004cdd7981300099ba548010cc0a4c040cc0a4dd480225eb812f5c11301733029374e66052604c00266052604e00297ae04bd7044cc00c00cc0ac0090251814800a04e3756601860446ea805cdd7181298111baa002912cc004c078c08cdd500144c8c8c8cc8966002605a007133008302c0051330110020068b2054302a001375a60540046054002605200260486ea800a2c811244b3001301e302337540051323232323298009bad302c0019bad302c0049bad302c003981600124444b30013031005899806181800489980a80080545902e0c0b0004c0ac004c0a8004c0a4004c090dd500145902248966002603c60466ea800a26464646465300137586058003375a6058009375a6058007302c0024888966002606200b13300c3030009133015001132332259800981a001c0362c8188dd718188009bae303100530310048b205c181600098158009815000981480098121baa0028b2044912cc004c078c08cdd500144c8c8c8c8ca60026eb0c0b00066eb4c0b00126eb4c0b000e605800491112cc004c0c4016266018606001226602a0022646644b30013034003806c590311bae3031001375c606200a60620091640b8302c001302b001302a001302900130243754005164088911112cc004c084c098dd5002c4c8c8c8cc8966002606000713259800981398161baa00189919191919194c004c0d80066eb0c0d80166eb4c0d80126eb4c0d800e606c004911112cc004c0f001a26604e6eb0c0ec02c8966002005133029006225980080144cc07c0144cc07c0244c8c9660026070607a6ea804e2646464b3001304500289919912cc004c0f800a264b3001304900189981a1bac304800122598008014012266042609400426002609600482422c8230c110dd5001c5660026064005132598009824800c4cc0d0dd61824000912cc00400a009133021304a00213001304b002412116411860886ea800e2b3001303d0028992cc004c1240062660686eb0c1200048966002005004899811182500109800982580120908b208c30443754007159800981f80144c96600260920031330343758609000244b300100280244cc088c1280084c004c12c00904845904618221baa0038acc004c0c400a264b3001304900189981a1bac304800122598008014012266046609400426002609600482422c8230c110dd5001c5660026060005132598009824800c4cc0d0dd61824000912cc00400a009133023304a00213001304b002412116411860886ea800e2b3001302f0028992cc004c1240062660686eb0c1200048966002005004899812182500109800982580120908b208c30443754007159800980400144c96600260920031330343758609000244b300100280244cc090c1280084c004c12c00904845904618221baa0038b20844108821104220844108821104218209baa00113259800981e800c4c966002609000313302c30470010078b208a304337540071598009818800c4c966002609000313259800981f98221baa00189919192cc004c13000a266058609600626605800201716412460940026094002608a6ea80062c8218c11c0062c8228c10cdd5001c59041208230413754004608800716410860860026086002607c6ea804e2c81e04cc0b004c8966002005198009821181f9baa01d9821181f9baa3030303f375403b222598008014530103d87a80008acc004c0f00062606466088608a00497ae08cc00400e608c005337000029000a0064100821a45300132330010010032259800800c528456600266ebcc118c10cdd5182318219baa303430433754608c00260586608a6ea400d2f5c114a313300200230470014104822294294503f488c8cc00400400c896600200314bd7044cc896600266ebcc120c114dd5182418229baa303630453754004605c6608e6ea40152f5c113304700233004004001899802002000a0863046001304700141112302e303f37546086646600200200444b30010018a5eb84103d87a80008101800044c8cc8966003300130333044375460900074a14a2821a26608f30014a14c103d87a8000a60103d8798000410c6608e6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12800400e29462660040046096002822904844cc11e600294298103d87a8000a60103d8798000410c6608e6e9c0092f5c11330479800a51a60103d87a8000a60103d8798000410c6608e6e9ccc11cdd400080125eb8104320863758608c608e0026eb4c118008cc008008c11800504348888ca6002003005802400d00111112cc00400e2b30010028800c59048466002009304b0039825801660026094007375a6094005001401480210484888ca6002003004801a00222259800801456600200314a314a082322b30010018a508acc004cc010c120008c1200063300100398248014c12400500345282086411882324444646600200200a44b300100189982399bb0375200a6ea00112f5bded8c113298009bae30450019bad304600198250012444b30013372001200713304b337606ea4024dd4004002c56600266e3c02400e33001009804400a46609866ec0dd48051ba80010028800a00e89982599bb037520066ea0008cc018018005047208e1824000a08c91111919800800802912cc00400626608e66ec0dd48029ba60044bd6f7b63044ca60026eb8c1140066eacc11800660940049112cc004cdc8004801c4cc12ccdd81ba9009374c01000b15980099b8f0090038cc00402601100291982619bb037520146e9800400a2002803a26609666ec0dd48019ba600233006006001411c8238609000282324464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208a8998028029825802208a375c60880026eacc114004c11c0050450a5eb7bdb1824b30010018a518a5041051222223259800981f800c00a260060028218cdc0002001c8966002607660806ea800a26464b30013047002801c590441bad3045001304137540051640fd230433044304430440019b814800244b30010018a40011337009001198010011822800a084918219822182218221822182218221822182218221822000c8966002607660806ea800a264646465300130480019824001cc12000922259800982600244cc0a8c12c01c4cc09c0084c96600260860031323298009bad304e0019827800cdd698270012444b300130520028991919912cc004c15800e02516414c6eb8c14c004dd7182980118298009bac30510028b209e182700098249baa0028acc004c0dc006264653001375a609c003304f0019bad304e00248896600260a400513232332259800982b001c04a2c8298dd718298009bae30530023053001375860a200516413c304e001304937540051598009821000c4c8ca60026eb4c138006609e003375a609c0049112cc004c14800a264646644b300130560038094590531bae3053001375c60a600460a60026eb0c14400a2c8278609c00260926ea800a2b3001304400189919912cc004c140006264646644b300130540038084590511bae3051001375c60a200460a20026eb0c13c0062c8268dd69826800982700098249baa0028acc004c0d8006264646644b30013051003806c5904e1bad304e001375a609c004609c00260926ea800a2b3001303500189919194c004dd69827800cdd69827801cdd698278012444b30013053004807c590500c13c004c138004c124dd50014566002606800313232598009827801402e2c8260dd6982680098249baa0028acc004c03400626464b3001304f002805c5904c1bad304d0013049375400516411c8239047208e411c8239047208e30473754003164124304800130470013046001304137540051640fd223302800223375e608a60846ea8004dd3801488cdc199b82002375a606660826ea8004dd6981918209baa001912cc00400629344c966002003149a264b3001337206eb8c108c11800cdd71821000c4cc010010cc114004c11c00a2c8208c1140050431822800a0849111919800800802112cc004006200913233223322330020020012259800800c400e26530010059bae30490019bad304a0019980180198270012012304c00141286eacc11c00cdd718220009980180198248011823800a08a911919800800801912cc004006297ae08998229ba73003304600133002002304700141112232330010010032259800800c528456600266ebcc118004dd3801c528c4cc008008c11c0050412088911194c0040060090034004444b30010028800c660020073049002998021824001000a00641192304330443044304430440019b88480026e3d22104555344720048888888888888888888888888888a600260b66ea8072603603722259800980d801466002007002a4001222598009802001c4cdc00009bad30533062375400716418080d22c82ea4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320c6899802802983480220c6375c60c40026eb4c18c004c1940050631980b8020018a400122329800800c00e00480088896600200510018994c00401260cc00798008014dd71830800cdd59831000c88888c966002603c00300289801800a0cc32329800800c01a00a80088896600200510018994c00401260e000798008014dd71835800cdd69836000c0150252008306e00241b0a03880d1004183200120c491919800800801112cc004006297adef6c608991983119bb0305f001374c64660020026eacc184008896600200314bd6f7b63044c8cc194cdd818310009ba83015375a60c60026600600660ce00460ca0028318cc00c00cc190008c1880050604c0340364464b30013058305e37540031323300f00115980099baf30133060375400660c660c06ea80122b30013375e60a260c06ea8004c18cc180dd5001c40062c82f22c82f0c188c17cdd5000c5905d1828182f1baa304f305e375400530080084888888888ca600244646600200200444b30010018a5eb822660d864b30013065306a37540031306e306b37540031641a46600a0086eb4c1b4004cc008008c1b800506b48888c96600260ca60d46ea8006264b30013375e60de60d86ea8c1bcc1b0dd5182e98361baa00130553306e375200a97ae08acc004c16a60026eacc174c1b0dd5182e98361baa001802d220108747265617375727900403513259800983318361baa001899198110008992cc004c1a4c1b8dd5000c4c96600266ebcc1ccc1c0dd5183998381baa001305933072375201297ae08acc004c17a60026eacc184c1c0dd5000c02691108747265617375727900404513259800983518381baa001899198130008acc004cdd7981298391baa0034c0103d87a800089983a0029983a0009983a1ba633012375660c660e46ea800cc044dd5983198391baa30633072375400e97ae08b20e03074307137540031641bc60c460e06ea80062c83722c8370c1c8c1bcdd5000c5906d198049bac3060306e375401000a60e060da6ea80062c8358c178c1b0dd5182e98361baa0018b20d48b20d4306e306b37540031641a46600a6eb0c1b4c1a8dd50020014888888896600266ebcc1c4c1b8dd5003983898371baa0068acc004cdd7983018371baa007305f306e375400d13259800cc0040069464444b3001001899b894800000a294107120348992cc004cdc4802000c56600266e2400400e20031641b91641b930010019bae30720049bae3072307300440411641b46601c6eacc17cc1b8dd50039806cc004dd71838802cdd718389839002cc080011222598009835800c402e3300100b801cc8c8008c038004cc1cccdd81ba9002375000297adef6c6091111192cc004c0b40060051300300141d4653001004804401e444453001005801c0120050014018818140ad02920de45906c45906c2444b3001306300d8cc00488c8cdc199b803370066e0800cdd6982f18361baa00200148004004dd6982e18359baa001998019bac306c306937540526eb0c168c1a4dd50154dd6183618349baa02a9bad305b30693754055375a603860d26ea80aa60b460d26ea812522222259800998169bac3072306f37540c86eb8c088c1bcdd5182c98379baa001899912cc004ca600200500891192cc004c1bcc1d0dd5000c4c8c8ca60026604c00e0033758603e60f06ea80166eb4c1ec00e6eb4c1ec009222259800983b183d9baa0048acc004cdc4998099bad306d307c375401260fe60f86ea801260026eacc1b4c1f0dd51836983e1baa00a9bae307f0039bae307f308001003407515980099b87002375a60da60f86ea80262b30013370e0026eb4c1b8c1f0dd5004c4cdd79ba70053023307c375401314a083d2294107a452820f48b20f41bac307a307b001307a0013075375400314a08398c198c1d0dd519808801000a0583758604260e26ea800e26464b30013370e0033001375860ca60e66ea81a2660ea60c860e66ea8c174c1ccdd50029983aa601054455534472004bd704dd6181198399baa0054888ca6002003007806c03100111112cc00400e2900044cc896600260ec60f66ea8006264b30013077307c37540031337013001375660dc60fa6ea8c1b8c1f4dd51840008034c20004c1f4dd50014c20004c1f4dd5001cdd61812183e9baa0039980a1bad306e307d375400661000260fa6ea8006013375a60de60fa6ea800e6eb4c1b8c1f4dd5001a02a9800803cc2040401a61020200b308101004401d1641ec6605400e6eb0c08cc1f0dd500145907a183e8011980a8039bad307d00141ec8991919912cc00660020054a3222259800800c56600266e3c0112201008a518998120029983e9ba90043307d375200697ae041e514a083c9022456600266e1ccdc09bad307a3077375460f40066eb4c1e8c1dcdd5183d002002c4c96600266e240180062603c0031641d930013758604e60ee6ea80269000488c8cc896600330013076001a50a5141e915980099b8933029001005002899b800040018b20f48acc004cdc4a400000510048b20f441e930010059bae307d0019bae307d307e001406c653001011a4001225980099baf3024307d37540046e9c00e266e00004dd69837183e9baa0028800a0f6408c6eb0c1f4c1e8dd50019bac307c3079375400480fa2c83aa2c83a8dd5983c183c8009980f9bac30253075375400e46eb0c1e4c1d8dd5000983c000cc0041a26eb8c1d8c1ccdd5182e98399baa005803c01900c4590712cc004c1b0c04000629000456600260ec00313259800980c1bae307200189bad30730018b20e230750018b20e641c0660506eacc060c1c4dd50331bae30623071375460b660e26ea800e2c837a600200b00492cc004c058dd6983098381baa0018980b1bad30623070375400314a08371011198161bac3072306f37540c86eb8c184c1bcdd5182c98379baa0018b20da44cc896600260b201f19800998029bac306e306b37540566eb0c170c1acdd50164dd6183718359baa02c9bad305d306b3754059375a603c60d66ea80b260b860d66ea812d2222259800998171bac3073307037540ca6eb8c08cc1c0dd5182d18381baa0018cc006600200b00492cc004cdc41bad306230713754002900044c05cdd6983198389baa0018a5041bc80926605a6eb0c1ccc1c0dd50329bae30623070375460b460e06ea8006660e460c260e06ea8c168c1c0dd500099839261054455534472004bd702444b3001980080140224464b300130643075375400313233225980099b8900198009bab306a3079375460d460f26ea801a6eb8c1f001e6eb8c1f0c1f401d01a456600266e1c004c0acdd69835183c9baa0058acc004cdc39bad307c002375a60d660f26ea8016266ebcc1f0c1f4008c080c1e4dd5002c52820ee8a5041dd14a083b8c1ec004dd6983d000983b1baa0018a5041d060ce60ea6ea8cc04800800502d4660026644653001001802c02e014800888896600200714bd7044cc896600260ea60f46ea8006264b30013076307b3754003133223322330020020012259800800c4cc20804dd399841009ba70043308201375000697ae04bd7044ca60026eb0c210040066eb4c21004c21404006610a020049112cc004cdd79ba7003374e01113308601374e6610c026e9c00ccc21804dd419b800020074bd70000c4cc21804dd399843009ba70033308601375000497ae033006006001420804375861060200284080a6002013308201008984100803cc208040190091bac3023307c37540073001375660da60f86ea8c1b4c1f0dd5183f8034c1fcc1f0dd50014c1fcc1f0dd5001c02a60246eb4c1b4c1f0dd5001cdd61811983e1baa0039bad306e307c3754007330293012375a60da60f86ea800cc1fcc1f0dd5000a0288b20f4330290073758604460f66ea800a2c83c8c1f0008cc050018dd6983e000a0f4375860ca60e66ea81a0dd6181198399baa004998151bab301a307337540d06eb8c190c1ccdd5182e98399baa004cc0041a26eb8c1d8c1ccdd5182e98399baa004803401500c4cc074dd6181198399baa0042375860ee60e86ea8005222232332259800cc00400a9464444b30010018acc004cdc78022441008a5189981380419840009ba90043308001375200697ae041f114a083e1025456600266e1ccdc09bad307d307a375460fa0066eb4c1f4c1e8dd5183e802800c56600266e1c006600201f480024466e00004dd69836983e1baa0024089159800998089bac302a307a375401646466e1e6002009375c60fe003375c60fe61000200280e8c0b8c8c8cc00400402c8966002003148002264b30013375e6106020026e9c01226eb4c20c04c2100400626600600661080200483f0dd6184100800a10002375860fe60f86ea8008dd6183f183d9baa0018a518b20f08b20f08b20f08b20f0375660f660f8002b3001307230160048a4001159800983e00244c966002603c6eb8c1e000626eb4c1e40062c83b8c1ec0122c83c9076183d80122c83891641b88acc004c15803e3300133005375860dc60d66ea80acdd6182e18359baa02c9bac306e306b3754059375a60ba60d66ea80b26eb4c078c1acdd50164c170c1acdd5025a44444b30013302e375860e660e06ea8194dd7181198381baa305a30703754003159800cc004cc0b4dd6183998381baa065375c60c460e06ea8c168c1c0dd5000c0164464b3001306c307237540031323302300115980099baf30663074375400660ee60e86ea80122b30013375e60ca60e86ea8004c1dcc1d0dd5001c4c96600260c060e86ea8006266e1cdd6983c183a9baa001375a60cc60ea6ea801229410731833183a1baa0018b20e48b20e43076307337540031641c460c860e46ea8c18cc1c8dd500120548acc004cc88ca6002003008803a00222259800801456600200314a314a083b22b30010018a508acc004cc896600260e260ec6ea8006264b30013375e60f660f06ea8004c1ecc1e0dd5183d983c1baa0038acc004cdd79835183c1baa00130693078375460f660f06ea800e266e1e60026eacc1a4c1e0dd5000cdd7183d803cdd71834803a032300e375a60d260f06ea800e2941076452820ec307a307737540031641d460f00046602000a6eb4c1e000633001003983c8014c1e4005003452820e641d883b0dd6183118381baa0653307230613070375460b460e06ea8004cc1c9301054455534472004bd7044c8ca60026eacc1d4c1d8006660526eacc064c1c8dd50339bae30633072375460b860e46ea800eb3001302e0068cc00401e00d48002444b3001301b375a60cc60ea6ea800e266e00004dd69833183a9baa0038b20e640b51641c09112cc004cdc3acc004c1bcc04c00a29000456600260f200513259800980d9bae307500189bad30760018b20e830780028b20ec41cc00315980099b87337026eb4c1e0c1d4dd5183c0021bad30783075375460f000a00313300c3758604a60ea6ea80188c8c1c6600200b375c60f4003375c60f460f600280c0dd6183c983b1baa0018b20e68b20e6183a800cc0041966eb8c1ccc1c0dd5182d18381baa001801c00900945906e45906e45906e22b3001302f00f8cc004cc014dd6183718359baa02b375860b860d66ea80b26eb4c174c1acdd50164dd6980f18359baa02c982e18359baa04b48889660026605a6eb0c1c8c1bcdd50321bae3022306f375460b260de6ea80062b300133229800801401a4464b3001306d307337540031323302400115980099baf30673075375400660f060ea6ea80122b30013375e60cc60ea6ea8004c1e0c1d4dd5001c4c966002607460ea6ea8006264b3001337120033001375660d060ee6ea8c1a0c1dcdd50034dd7183d003cdd7183d183d803a030899b870013029375a60d060ee6ea801629410751bad30793076375400314a083a0c19cc1d4dd5000c59073459073183b983a1baa0018b20e430653073375460c860e66ea800902b198161bac3072306f37540c86eb8c184c1bcdd5182c98379baa001330713060306f375460b260de6ea8004cc1c53001054455534472004bd7044c8ca60026eacc1d0c1d4006660506eacc060c1c4dd50331bae30623071375460b660e26ea800f3001006a4001225980099b88375a60c860e66ea80092000899b80001375a60c860e66ea800a2c83890192444b30013370eb3001306e30120028a4001159800983c00144c96600260346eb8c1d000626eb4c1d40062c8398c1dc00a2c83a9072000c56600266e1ccdc09bad30773074375460ee0086eb4c1dcc1d0dd5183b802800c4cc02cdd61812183a1baa00623230709800802cdd7183c800cdd7183c983d000a02e375860f060ea6ea80062c83922c839060e800330010649bae3072306f375460b260de6ea800600700240211641b51641b48a5041a48349069111919800800801912cc00400629462b3001300330700018998010011838800c52820d641b84b300133710002900044c070006200283410670896600266e2000520008a60103d87a8000899805001000a0ca22646644b30013046001899912cc004c0f8c10cdd500144c8c8c8cc8966002609a00713259800982218249baa0018991919912cc004c14800e264b30013049001899192cc004c15400a01d1641486eb8c14c004c13cdd5003c566002607a00315980098279baa00780645905045904d209a304d375400d16413c6eb8c13c004dd71827801182780098251baa0018b2090304c0058b2094375c609400260940046094002609200260886ea800a2c8210c1140044c010c1180162c8218dd7182180098220009bac304200241006e1d200e899180118208019bad303f00240f51323002303f003375a607a00481da2c81c8606c002606a002606800260660026064002605a6ea80062c8158c0bc0162c8168dd6181680098168011816800981600098139baa0058b204a1919192cc004c074c088dd5000c4c8cc8966002605400313259800981098131baa00189919191919191919191919194c004c0d8006606c017303600a981b004cc0d8022606c00f3036006981b002cc0d8012606c0073758606c004911111111112cc004c108032266040608202e26604001426604001226604001026604000e26604000c26604000a2660400082660400062b30013038303d37540051323232323298009bae30460019bae30460059bae30460049bae30460039bae304600248888966002609800d13303700b225980080144cc0ac05c40a2264b30013045304a37540031323232332259800982a001c4c8c8cc896600260b00071300b305800c8b20aa375c60aa0026eb8c154008c154004dd61829802c590511bad3051001375a60a200460a200260a000260966ea80062c8248c13400904b4590490c118004c114004c110004c10c004c0f8dd500145903c45903f0c0d8004c0d4004c0d0004c0cc004c0c8004c0c4004c0c0004c0bc004c0b8004c0b4004c0b0004c09cdd5000c590251814800c590271bae302700130280013023375400316408464b3001301d3022375400313259800980e98119baa0018981398121baa0018b2044301530233754602860466ea8c098c08cdd5000c59021198049bac30133022375402e4646600200260066eacc054c090dd5180a98121baa0022259800800c528456600266e3cdd718140008114528c4cc008008c0a4005023204c30010012259800800c52f5c113302430213025001330020023026001408c44b3001301c30213754005132323259800981480144cc018c0a000c4c966002604000315980098131baa002802c590274566002602800313232598009816001401e2c8148dd7181500098131baa0028acc004c07c00626464b3001302c002803c59029181500098131baa0028b204840908120c090dd5000c590261813800981380098111baa0028b204030040042259800980d180f9baa00289919192cc004c09c00a266010604c006264b3001301e0018992cc004c0a400626464b300130210018992cc004c0b000626601a60560020131640a4604e6ea800a2b3001301500189919194c004dd69816800cdd69816801cdd698168012444b3001303100480745902e0c0b4004c0b0004c09cdd5001459025204a30253754002605000316409860486ea800a2b300130120018acc004c090dd500140162c812a2c811102218111baa0018b20483025001302500130203754005164078456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d95900201", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolMintProtocolMintPublish { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5948de010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a495365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f61737365742900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a492e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a4942657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d65720016488888888888888888896600330013018375403d370e90034dc3a4001370e90022444464653001301d3754003302100698108012444b300130060038cc004c090c084dd500248c094c098c0980064604a604c003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480324604a604c604c604c604c604c604c604c604c604c003374a900124444444444465300122259800980b18179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b3001301b0018992cc00400600f13259800800c566002607600513259800980f000c4c96600200300a8992cc0040062b3001303e0028cc00400601900b403900b40ed00b805c02e01681f8c0f000503a181c1baa0028acc004c048006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013045003809c0490421bad001808a08a304200141006eb4004c10400a01c8210c0fc00503d1bad001303e002805a07e303c00140e860706ea800a01281a9035181b1baa0018042070804402201100840f0607200281b8c0d4dd50014566002601e003159800981a9baa002803c0190364019032206430333754003005402100540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444653001001802400d001111192cc004c068006264b300100180344c966002003007803c01e00f13259800981d801c01601081c0dd7000a076303800140d860686ea800e2b3001300e0018992cc00400600d13259800800c01e00f13259800981d801c4cc04800489660020050078992cc0040063300100a800c4c008c0f800d00a402e01700b805a07e303c00240e900840e06eb000600f00740ec607000281b0c0d0dd5001c566002603200313259800800c01a264b3001001803c01e264b3001303b003899809000912cc00400a00f13259800800c6600201500189801181f001a014805c02e01700b40fc607800481d201081c0dd6000c01e00e81d8c0e0005036181a1baa0038acc004c06c006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002607c0071330150012259800801402a264b30010018cc004036003130023041003403500e807403a01c8210c0fc00903d402d03b1bac001805402903e181d800a072375a002607400500740ec607000281b0c0d0dd5001c566002601a00313259800800c01a264b3001001803c01e00f13259800981d801c01601081c0dd6800c01d03b181c000a06c303437540071598009806000c4c9660020030068992cc00400600f007803c4c96600260760070058042070375a00300740ec607000281b0c0d0dd5001c566002601600313259800800c01a264b3001001803c01e00f0078992cc004c0ec00e00b00840e06eb800503b181c000a06c3034375400700540c48189031206240c4818903118191baa002911919800800801912cc004006298103d87a80008992cc004c0100062601c6606800297ae0899801801981b001205e303400140c891119192cc0040063300122259800980d981a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b300130200018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c07c006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005403100540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e0028192444b3001301b3034375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607400315980099b8948010c0e400600d13259800981f80244c9660026044003159800981e1baa006804c02103d4566002602c00313259800800c026264b3001001805402a015132598009821801c0320168200dd6800c0290431820000a07c303c375400d1598009810800c56600260786ea801a01300840f500840e481c9039181d1baa005803a0783014303900140dd00640ec6ea800600b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c005032488966002603660686ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981f801c02200e81e0dd6800c01903f181e000a074375c002607600481e0c0e4005037181a9baa003800a064911192cc004c070006264b3001001801c4c9660020030048024012264b3001303d003803401503a1bad001802207a303a00140e0606c6ea80122b300130100018acc004c0d8dd5002400e00481ba0048199033181a1baa0034888a6002444b3001301f3038375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c5660026088005198008034660020030098042018804201c80420828044022011008411460840028200dd680098208014015042181f800a07a303f002801c00e0070034100607a00281d8c0e4dd5001c005036488966002603e60706ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b00d8992cc004c12800e3300100c8cc00401201f00e404900e405100e411c6eb400601a8250c11c0050451823801402e01700b805a0903045001410c6eb4004c11000a0108228c1080050401bad0013041002802a084303f00140f4607e005003801c00e0068200c0f400503b181c9baa003800a06c9112cc004c07cc0e0dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001304a0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001304f00380a404d04c1bae001413c60980028250dd7000982580120983049001411d00e404900e405100e411c6eb000601b00d4128608e0028228c11c00a01700b805c02d0481822800a086375a0026088005008411460840028200dd680098208014015042181f800a07a303f002801c00e0070034100607a00281d8c0e4dd5001c005036488966002603e60706ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009825001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009827801c0520268260dd7000a09e304c00141286eb8004c12c00904c1824800a08e80720248072028807208e375800300d806a09430470014114608e00500b805c02e0168240c1140050431bad0013044002804208a304200141006eb4004c10400a00a8210c0fc00503d181f801400e007003801a080303d00140ec60726ea800e00281b12222598009810181c9baa0098992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c966002003029814c4c966002608a007159800981398201baa0068992cc00400605713259800800c0b20591332259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281940ca26644b300100181a44c96600200303581ac0d626644b300100181bc4c96600200313259800800c0e6264b30010018acc004c15400a26605801c44b3001002899817006912cc00400a330010078cc00401626464b3001303d3056375403513259800800c106264b30010018992cc00400608713259800800c56600260be00513322598009821800c4c9660020030478992cc0040060910488992cc004c19000e26607600244b3001002803c4c96600200319800800c4c008c19c00e098815209904c8264131068183280120c6824a0c2375800304882420c83061001417c60ba6ea80162b300130370018992cc00400608f13259800800c122091132598009832001c4cc0ec00489660020050078992cc00400633001001898011833801c13102a413209904c82620d03065002418d04941846eb0006091048419060c200282f8c174dd5002c566002608400313259800800c11e264b30010018244122264b3001306400389981d800912cc00400a00f13259800800c660020031300230670038262056826413209904c41a060ca004831a0928308dd6000c1220908320c18400505f182e9baa0058acc004c110006264b3001001823c4c96600200304882444c96600260c800713303b0012259800801401e264b30010018cc0040062600460ce00704c40ad04c82641320988340c19400906341250611bac00182441210641830800a0be305d375400b159800981b000c4c9660020030478992cc0040060910488992cc004c19000e26607600244b3001002803c4c96600200319800800c4c008c19c00e098816209904c8264131068183280120c6824a0c2375800304882420c83061001417c60ba6ea80162b300130350018992cc00400608f13259800800c122091132598009832001c4cc0ec00489660020050078992cc00400633001001898011833801c13102c413209904c82620d03065002418d04941846eb0006091048419060c200282f8c174dd5002c566002606800313259800800c11e264b30010018244122264b3001306400389981d800912cc00400a00f13259800800c66002003130023067003826205a826413209904c41a060ca004831a0928308dd6000c1220908320c18400505f182e9baa0058acc004c020006264b3001001823c4c96600200304882444c96600260c800713303b0012259800801401e264b30010018cc0040062600460ce00704c40b504c82641320988340c19400906341250611bac00182441210641830800a0be305d375400b046416882d105a20b4416882d105a20b4132598009821000c4c9660020030468992cc0040062b300130620028cc00400601104740a9047417d047823c11e08e8318c18000505e182e1baa0028acc004c0d8006264b300100182344c96600200315980098310014566002608860ba6ea8006264b300100182444c96600200313259800800c12a264b30010018acc004c19800a330010038cc00400601904b40bd04b40bd04b418d04b825c12e0968338c19000506218320014126093049824a0ca3062001418060bc6ea800608e82da08e82fa08f047823c11d0631830000a0bc305c3754005045416482c8c168dd5000982d1baa00382220b88224112089044418060ba00282d8c17400a085042821410905e182d800a0b230573754035040415026606202c44b30010028cc004c16cc160dd5013cc16cc160dd5181a982c1baa0279112cc00400a298103d87a80008acc004c1040062606e660ba60bc00497ae08cc00400e60be005337000029000a006416082e245300132330010010032259800800c528456600266ebcc17cc170dd5182f982e1baa3039305c375460be0026062660bc6ea400d2f5c114a31330020023060001416482ea942945057488c8cc00400400c896600200314bd7044cc896600266ebcc184c178dd51830982f1baa303b305e37540046066660c06ea40152f5c113306000233004004001899802002000a0b6305f00130600014175230333058375460b8646600200200444b30010018a5eb84103d87a80008101800044c8cc896600330013038305d375460c20074a14a282da2660c130014a14c103d87a8000a60103d8798000416c660c06e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c18c00400e294626600400460c800282e906144cc182600294298103d87a8000a60103d8798000416c660c06e9c0092f5c11330609800a51a60103d87a8000a60103d8798000416c660c06e9ccc180dd400080125eb8105b20b6375860be60c00026eb4c17c008cc008008c17c00505c48888ca6002003005802400d00111112cc00400e2b30010028800c54cc17924112657870656374205b5d203d206c6973745f6200164185159800801454cc1792411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260c80073064002cc004c18c00e6eb4c18c00a002802900420c24185222329800800c012006800888966002005159800800c528c52820be8acc00400629422b300133004306100230610018cc00400e60c40053062001400d14a082d905f20be91111919800800802912cc0040062660c066ec0dd48029ba80044bd6f7b63044ca60026eb8c1780066eb4c17c00660c60049112cc004cdc8004801c4cc190cdd81ba9009375001000b15980099b8f0090038cc00402601100291983299bb037520146ea000400a2002803a2660c866ec0dd48019ba800233006006001417c82f860c200282fa4444646600200200a44b300100189983019bb0375200a6e980112f5bded8c113298009bae305e0019bab305f00198318012444b300133720012007133064337606ea4024dd3004002c56600266e3c02400e33001009804400a4660ca66ec0dd48051ba60010028800a00e89983219bb037520066e98008cc01801800505f20be1830800a0be91191919800800802112cc00400600713233225980099b910070028acc004cdc78038014400600c82ea26600a00a60c800882e8dd7182e8009bab305e00130600014178297adef6c6092cc0040062946294105a4488888c966002608800300289801800a0b633700008007222598009820982d1baa0038992cc00400600513259800800c00e0070038992cc004c18800e00b004417c6eb40060068310c17c00505d182d9baa003800a0b09182e182e982e982e800cdc0a40012259800800c52000899b8048008cc008008c17800505b48c170c174c174c174c174c174c174c174c174c174c174006444b30013041305a375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c96600260ce00519800803c6600200b132598009825000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981f000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc306437540091598009824800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc306437540091598009825800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c1b800e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1cc00e02d01541c06eb80050731838000a0dc375c00260de0048380c1b400506b404106b1bac001807c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607a00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009837001c0460208358dd6800c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607800313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a025132598009838801c0520268370dd6800c0490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981d800c4c96600200300b8992cc00400601900c80644c96600260d600700e806a0d0375a00300c41ac60d00028330c190dd50024566002601e00313259800800c02e264b30010018064032019132598009835801c03a01a8340dd6800c03106b1834000a0cc3064375400900a4184830906120c24184830906120c23062375400700940c500940d5009419060ca0028318c19400a00f007803c01d0661831800a0c23063002802c01600b005419060c200282f8c18400a007003801c00d062182f800a0ba305b37540070014161223302b00223375e60bc60b66ea8004dd3801488cdc199b82002375a607060b46ea8004dd6981b982d1baa001912cc00400629344c966002003149a264b3001337206eb8c16cc17c00cdd7182d800c4cc010010cc178004c18000a2a660b4921326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f726465720016416460bc00282e0c17800505b4888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd71831000cdd69831800ccc00c00cc19c0090091832800a0c6375660c00066eb8c174004cc00c00cc188008c18000505e488c8cc00400400c896600200314bd7044cc178dd39801982f800998010011830000a0ba911919800800801912cc00400629422b30013375e60be0026e9c00e294626600400460c000282c905d4888ca6002003004801a00222259800801440063300100398310014cc010c18400800500320be9182e182e982e982e982e800cdc424001371e910104555344720048888888888888888888888888888a600260e86ea8072603603722259800980d801466002007002a4001222598009802001c4cdc00009bad3058307b375400706741e080d20da83aa4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320f689980280298410080220f6375c60f60026eb4c1f0004c1f800507c1980b8020018a400122329800800c00e00480088896600200510018994c00401260fe00798008014dd7183d000cdd5983d800c88888c966002603c00300289801800a0fc32329800800c01a00a80088896600200510018994c00401261120200798008014dd7184200800cdd6984280800c0150252008308701002421404a03880d1004183e80120f691919800800801112cc004006297adef6c608991983d99bb03078001374c64660020026eacc1e8008896600200314bd6f7b63044c8cc1f8cdd8183d8009ba83015375a60f80026600600661000200460fc00283e0cc00c00cc1f4008c1ec0050794c0340364464b3001305d3077375400313259800800c6600200315980099baf30133079375400660f860f26ea80122b30013375e60ac60f26ea8004c1f0c1e4dd5001c40062a660ee9213865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e001641d9153307749138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641d9067403d067833c19e0ce83f0c1ecc1e0dd5000c195075182a983b9baa30543077375400530080084888888888ca600244646600200200444b30010018a5eb8226610a0264b3001306a30830137540031308701308401375400315330820149013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f6964782900164204046600a0086eb4c21804004cc008008c21c040050840148888c96600260d46106026ea8006264b30013375e611002610a026ea8c22004c21404dd518311842809baa001305a3308701375200a97ae08acc004c17e60026eacc188c21404dd518311842809baa001802d2210874726561737572790040351325980098359842809baa0018992cc004006330010018992cc004c1b8c21c04dd5000c4c96600266ebcc23004c22404dd51846009844809baa001305e3308b01375201297ae08acc004c18e60026eacc198c22404dd5000c02691010874726561737572790040451325980098379844809baa0018992cc004006330010018acc004cdd798129845809baa0034c103d87a800089984680802998468080099846809ba633012375660d06116026ea800cc044dd598341845809baa3068308b01375400e97ae08a9984480a48126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001642200507f409907f83fc1fe0fe848008c23404c22804dd5000c54cc2200524012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016421c0460ce6112026ea80062a6610e02920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001642180515330870149143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f7363726970742900164218046116026110026ea80062a6610c0292013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f696478290016421404660126eb0c194c21c04dd5004002c1e902241ea0f507a83d211802308901308601375400315330840149013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016420c0460c6610a026ea8c188c21404dd5000c54cc20c052401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164208051533083014914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016420804610e026108026ea80062a661040292013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f6964782900164204046600a6eb0c21804c20c04dd50020014888888896600266ebcc22804c21c04dd50039845009843809baa0068acc004cdd798329843809baa0073064308701375400d13259800cc0040069464444b3001001899b894800000a29410890120348992cc004cdc4802000c56600266e2400400e2003153308701491216578706563742064656c697665726564203c3d206d61785f64656c6976657265640016421805153308701491216578706563742064656c697665726564203e3d206d696e5f64656c697665726564001642180530010019bae308b010049bae308b01308c010044041153308601490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d2900164214046601c6eacc190c21c04dd50039806cc004dd7184500802cdd7184500984580802cc080011222598009838000c402e3300100b801cc8c8008c038004cc23004cdd81ba9002375000297adef6c6091111192cc004c0b400600513003001423404653001004804401e444453001005801c0120050014018818140ad029210e02454cc2140524128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d00164210051533085014912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e6164647265737300164210049112cc004c1a00363300122323370666e00cdc019b82003375a60c6610a026ea80080052001001375a60c26108026ea8006660066eb0c21404c20804dd50149bac305f30820137540553758610a026104026ea80aa6eb4c180c20804dd50154dd6980e1841009baa02a982f9841009baa0524888889660026605a6eb0c22c04c22004dd50349bae3022308801375460bc6110026ea800626644b300132980080140224464b30013074308d0137540031323232980099813003800cdd6180f9848809baa0059bad3094010039bad309401002488896600260f66128026ea80122b300133712660266eb4c1c8c25404dd5004984c00984a809baa00498009bab3072309501375460e4612a026ea802a6eb8c2600400e6eb8c26004c2640400d01d456600266e1c008dd69839184a809baa0098acc004cdc38009bad3073309501375401313375e6e9c014c08cc25404dd5004c5282124028a5042480514a084900a2a661260292014365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f61737365742900164248043758612602612802002612602002611c026ea8006294108b0118359846809baa3301100200140b06eb0c084c22804dd5001c4c8c96600266e1c00660026eb0c1a8c23004dd5036ccc23804c1a4c23004dd518311846009baa0053308e014c1054455534472004bd704dd618119846009baa0054888ca6002003007806c03100111112cc00400e2900044cc896600200908d01899912cc004016120031332259800983f984c009baa001899912cc004c20404c26804dd5000c4cdc04c004dd5983c184d809baa3078309b013754011002984f00984d809baa0069bac3029309b01375400d33019375a60f06136026ea8018c27804c26c04dd5000c03a6eb4c1e4c26c04dd50034dd6983c184d809baa0064069300100c803c016008806212a0284c008c27004c26404dd5000998170059bac3027309901375400908f0142580461360200a660320166eb4c2680401509801184c00802184c80802212c02309601003309701003425004899194c004c244040066eacc24404c248040066603e6eb0c094c23804dd500391bac309201308f01375400330910100248889660033001003a5191112cc0040062b30013371e008911008a518998130031984c009ba90043309801375200697ae0424c0514a0849809024456600266e1ccdc09bad30950130920137540086eb4c25404c24804dd5000803c4c96600266e240200062604000315330910149012a657870656374206d696e745f616d6f756e74203c3d20746f74616c5f76616c6964617465645f7573647200164240053001375860526124026ea802e9000488c8cc89660033001307d001a50a5142500515980099b893302b001005002899b800040018a9984a80a4812d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642500515980099b894800000a20091533095014901186578706563742061637475616c5f64656c7461203e3d2030001642500484a00a600200d375c613002003375c61300261320200280e8ca60020274800244b30013375e604c6130026ea8008dd3801c4cdc00009bad3075309801375400510014254048128dd6184c00984a809baa0033758612e026128026ea800902142240508f0142340508f010c2440400660020db375c611e026118026ea8c188c23004dd5002c01e00c80622a661140292125657870656374206d696e745f616d6f756e74203d3d20746f74616c5f64656c6976657265640016422404b3001307130100018a4001159800800c1f2264b30013090010028992cc004c064dd7184600801440060fe845008dd6984600800c1f508d01184700800a11802422004660506eacc060c22804dd50359bae3067308a01375460c06114026ea800e2a66110029201556578706563740a2020202076616c69646174655f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f72657175657374732c2073657474696e67732e726573657276655f617373657473290016421c0530010058024966002602c6eb4c198c22404dd5000c4c058dd698339844809baa0018a504218048088cc0b0dd61845809844009baa069375c60cc6110026ea8c178c22004dd5000c1cd08501226644b3001305e00f8cc004cc014dd61843809842009baa02b375860c26108026ea80b26eb0c21c04c21004dd50164dd698311842009baa02c9bad301e3084013754059306130840137540a8911112cc004cc0b8dd61846009844809baa06a375c60466112026ea8c17cc22404dd5000c660033001005802496600266e20dd698339845009baa001480022602e6eb4c1a0c22804dd5000c528210e0240493302d37586118026112026ea81a8dd718339844809baa305f30890137540033308b013066308901375460be6112026ea8004cc22c05301054455534472004bd702444b3001980080140224464b30013069308e01375400313233225980099b8900198009bab306f309201375460de6124026ea801a6eb8c2540401e6eb8c25404c2580401d01a456600266e1c004c0acdd698379849009baa0058acc004cdc39bad309501002375a60e06124026ea8016266ebcc25404c25804008c080c24804dd5002c528211e028a50423c0514a0847808c25004004dd69849808009847809baa0018a5042300460d8611c026ea8cc04800800502d4660026644653001001802c02e014800888896600200714bd7044cc896600200908c01899912cc00401611e031332259800983f184b809baa001899912cc004c20004c26404dd5000c4cc88cc88cc00800800489660020031330a001374e66140026e9c010cc28004dd4001a5eb812f5c113298009bac30a2010019bad30a20130a3010019851808012444b30013375e6e9c00cdd380444cc29004dd399852009ba7003330a401375066e0000801d2f5c00031330a401374e66148026e9c00ccc29004dd400125eb80cc01801800509f010dd6185080800a13e029800807402600f00640386eb0c0a0c26804dd50034c004dd5983b984d009baa3077309a013754011002984e80984d009baa006807cc05cdd6983b984d009baa0069bac3028309a01375400d375a60f06134026ea801a6605c602e6eb4c1dcc26804dd5003184e80984d009baa001406509401425c046136026130026ea8004cc0b402cdd61813184c009baa00484700a12a02309a010053301800a375a61320200a84b808c25c04010c2600401109501184a80801984b00801a12602375860d46118026ea81b4dd618119846009baa004998151bab301a308c0137540da6eb8c1a4c23004dd518311846009baa004cc0041b66eb8c23c04c23004dd518311846009baa004803401500c4cc074dd618119846009baa00423758612002611a026ea80052222329800984a00800cdd5984a00984a80800cc2500400eb3001307730160048a4001159800802420806264b30013096010058992cc004c07cdd71849008014400610a02848008dd6984900800c20c0509301184a0080221240242380491112cc00660020074a3222259800800c56600266e3c0112201008a518998148051984d809ba90043309b01375200697ae042580514a084b009027456600266e1ccdc09bad30980130950137540086eb4c26004c25404dd5001000c56600266e1c0066002023480024466e00004dd6983a184b809baa0024091159800998099bac302c309501375401a46466e1e600200b375c613402003375c61340261360200280f8c0c0c8c8cc0040040348966002003148002264b30013375e613c020026e9c01226eb4c27804c27c04006266006006613e0200484c008dd6184e80800a136023758613402612e026ea8008dd6184c80984b009baa0018a518a9984980a49ff6578706563740a202020206c6973742e616c6c280a20202020202073657474696e67732e726573657276655f6173736574732c0a202020202020666e28726129207b0a20202020202020206c65742028706f6c6963792c206e616d6529203d2072612e61737365740a20202020202020206c65742061637475616c5f64656c7461203d206173736574732e7175616e746974795f6f662876616c75655f64656c74612c20706f6c6963792c206e616d65290a20202020202020206c657420757365725f7265636569707473203d206c6f6f6b75705f61737365745f73756d287065725f726573657276655f61637475616c732c2072612e6173736574290a20342020202020202061637475616c5f64656c7461203d3d202d757365725f72656365697074730a2020202020207d2c0a2020202029001642480515330930149123657870656374206d696e745f616d6f756e74203d3d2073756d6d65645f616d6f756e74001642480508c0142480509001424804309401002454cc22805241466578706563742076616c69646174655f72656465656d5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f617373657429001642240483a210c02456600260b601f19800998029bac30870130840137540566eb0c184c21004dd50164dd61843809842009baa02c9bad30623084013754059375a603c6108026ea80b260c26108026ea81512222259800998171bac308c0130890137540d46eb8c08cc22404dd5182f9844809baa0018acc00660026605a6eb0c23004c22404dd50351bae3067308901375460be6112026ea800600b22325980098389845809baa0018992cc004006330010018acc004cdd798359846809baa003309001308d01375400915980099baf306a308d013754002612002611a026ea800e264b30013065308d01375400313370e6eb4c24404c23804dd50009bad306b308e01375400914a0845808c1acc23404dd5000c1f508a0141f108a0141ed02341ee0f707b83da12402308f01308c01375400307942240460d26116026ea8c1a0c22c04dd500120548acc004cc88ca6002003008803a00222259800801456600200314a314a084780a2b30010018a508acc004cc896600260ec611e026ea8006264b30013375e6128026122026ea8004c25004c24404dd5184a009848809baa0038acc004cdd798379848809baa001306e30910137546128026122026ea800e266e1e60026eacc1b8c24404dd5000cdd7184a00803cdd71837003a032300e375a60dc6122026ea800e294108e014528211c023093013090013754003086014234046122020046602000a6eb4c24404006330010039849008014c248040050034528211602423c04847808dd618339844809baa06a3308b013066308901375460be6112026ea8004cc22c05301054455534472004bd7044c8ca60026eacc23804c23c04006660526eacc064c22c04dd50361bae3068308b01375460c26116026ea800eb3001302e0068cc00401e00d48002444b3001301b375a60d6611c026ea800e266e00004dd698359847009baa00383d21160240b5080014220049112cc004cdc3acc004c1d0c04c00a29000456600200507f8992cc004c24c0400e264b3001301c375c611e02005100184100a11a02375a611e020030800142400461220200484780908b01000c56600266e1ccdc09bad309101308e0137546122020086eb4c24404c23804dd5184880802800c4cc030dd618129847009baa00623230769800802cdd7184980800cdd7184980984a00800a0303758612402611e026ea800610a0284580a2a661180292012165787065637420757364725f6d696e746564203d3d206d696e745f616d6f756e740016422c04308e0100198008354dd71846009844809baa305f308901375400300380120128a9984380a481806578706563740a2020202076616c69646174655f6469726563745f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f75747075745f696e64696365732c0a202020202020757364725f61737365742c0a202020202900164218051533087014913f6578706563742076616c69646174655f6469726563745f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f72657175657374732900164218050744218048acc004c0bc03e33001330053758610e026108026ea80acdd618309842009baa02c9bad30623084013754059375a603c6108026ea80b260c26108026ea8151222259800998169bac308b0130880137540d26eb8c088c22004dd5182f1844009baa0018acc004cc8a600200500691192cc004c1c8c23004dd5000c4c96600200319800800c56600266ebcc1b0c23804dd50019848809847009baa0048acc004cdd798359847009baa001309101308e01375400713259800981d1847009baa0018992cc004cdc4800cc004dd598369848009baa306d309001375400d375c61260200f375c61260261280200e80c2266e1c004c0a4dd698369848009baa0058a504234046eb4c24804c23c04dd5000c528211802306c308e01375400307e422c0507d422c0507c409107c83e41f20f8849808c24004c23404dd5000c1e908a0118351846009baa3069308c0137540048158cc0b0dd61845809844009baa069375c60cc6110026ea8c178c22004dd5000998450098329844009baa305e30880137540026611402981054455534472004bd7044c8ca60026eacc23404c23804006660506eacc060c22804dd50359bae3067308a01375460c06114026ea800f3001006a4001225980099b88375a60d26118026ea80092000899b80001375a60d26118026ea800a0f08448090192444b30013370eb3001307330120028a400115980080141fa264b30013092010038992cc004c06cdd71847008014400610202846008dd6984700800c1fd08f01184800801211c0242280400315980099b87337026eb4c24004c23404dd51848008021bad309001308d01375461200200a00313300b37586048611a026ea80188c8c1d6600200b375c612402003375c61240261260200280b8dd61848809847009baa0018a9984580a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206275726e5f616d6f756e740016422805153308b014912165787065637420757364725f6d696e746564203d3d206275726e5f616d6f756e740016422804308d010019800834cdd71845809844009baa305e308801375400300380120108a9984300a4814b6578706563742076616c69646174655f6469726563745f6275726e5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f61737365742900164214050734214048a5042040484080908101111919800800801912cc00400629462b30013003308901001899801001184500800c528210602421c044b300133710002900044c070006200284000907f0896600266e2000520008a60103d87a8000899805001000a0fa2264b3001001821410a264b3001001821c4c96600200304482241120891332259800800c11a264b30010018acc004c18800a264b30013045305e375400513259800800c126264b30010018992cc00400609713259800800c4c96600200304d8992cc00400609d04e827413a264b3001306a0038acc004c130c194dd500344c9660020030508992cc0040060a3051828c14626644b3001001829c4c96600200305482a41520a9132598009838001c4c96600260a600313259800800c15e264b300100182c41620b10588992cc004c1d000e02505941c46eb80050741838800a0de306d37540171598009823800c56600260da6ea802e01f05641b905641a88350c1acdd5005415506d1bae00141c060da0028358dd7000983600120da306a00141a060cc6ea801a09e831a09e8338dd7000a0d43067001419460ce00504c82641320988340c1940050631832801412a09504a82520cc3063001418460be6ea800a09082e04c01cc18802208e82fa08f047823c11d0631830000a0bc375c00260be0048300c17400505b1bac001821410905e182d80120b2370e900740f902040f902044c96600200303f81fc0fe264600660b60086eb400607e82d8c16000905644c96600200303d81ec0f6264600660b20086eb400607a82c8c15800905440e905240ea07503a81d20ac3053001414460a600503881c40e207082a0c14400504f1bad001305000281aa0a2304e00141306eb4004c13400a0648270c12c0050491bac001304a002817c0bd04b1824000a08c3758002608e00502c81620903045001410c60826ea801a05481f20548210dd6000c0a60528228c1080050401821001409e04f027813a086304000140f86080005025812c09604a8208c0f800503c181d1baa009811a06e203701b80dc06d0371991192cc004c068c0ccdd5000c4c0d0c8cdd8181c000981c181c8009bac303730343754003153303249018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c02ccc0e0dd480225eb812f5c11301233038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c3756600e60626ea8048dd7181a18189baa00132323259800800c566002603260646ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0f000a2b3001301e3037375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006071038899912cc00400607513259800800c56600260aa0051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606e60a06ea801a264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c126093132598009832001c4cc0ec048896600200519800809440c209881aa264b30010018acc004c124c188dd5000c4c96600200304e8992cc00400609f04f899912cc0040060a313259800800c14a0a5052899912cc0040060a913259800800c1560ab0558992cc004c1c000e2b300100782b44c96600200305782bc15e0af1332259800800c166264b300100182d416a0b505a8992cc004c1d400e2602060ea02305b41c86eb80050751839000a0e0375c00260e20108390c1bc01d06d415906d1bad00182aa0e0306d00141ac6eb4004c1b000a0a48368c1a80050681bac0013069002827c13d06a1833800a0ca3063375400304d418104d826c13609a8340c19400906341290611bae001419060c200282f8dd7000983000120c2305e00141706eb8004c17400905e182d800a0b2375c00260b400482d8c1600050561bae0013057002416060aa0028298c144dd500340ed04e40ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed05240ee07703b81da0ac305300141446eb0004c14800a071038414c60a00028270c14000a06d03681b40d90511827000a098304e00281a40d2069034413c60980028250c13000a06503281940c904d1825000a090304a00281840c2061030412c60900028230c12000a05d02e81740b90491823000a088304600281640b205902c411c60880028210c11000a05502a81540a90451821000a080304200281440a2051028410c608000281f0c10000a04d0268134099041181f000a078303e002812409204902440fc607800281d0c0e0dd5000c0890354089039408a045022811207a303a00140e06eb8004c0e400903a181b800a06a3033375400301d40c101d80ec07603a81c0c966002603260646ea8006264b3001301930333754003130373034375400315330324913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602260666ea8c040c0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c0660066eb0c03cc0c8dd50099191980080098019bab301130343754602260686ea8008896600200314a115980099b8f375c607000206314a3133002002303900140c881b0c004004896600200314bd7044cc0d0c0c4c0d4004cc008008c0d80050330888c966002602c00313259800800c00e264b300100180240120090048992cc004c0dc00e00d00540d06eb8005037181a000a064303037540091598009805000c4c9660020030038992cc0040060090048024012264b3001303700380340150341bae00140dc60680028190c0c0dd5002400902d205a302e37540068acc004c02000e26464b3001300930223754604c604e00514a314a08100dd6981280098109baa0048b203c407830203021001302000445268a9980b2491856616c696461746f722072657475726e65642066616c7365001365640541" + : "5927b4010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b874803246022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911919800800801912cc0040062980103d87a80008992cc004c0100062601c6604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300b0018992cc004c08800626601a6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc034dd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998079bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd69810800980e9baa0038acc004c02000626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009805000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a180d1baa002912cc004c054c068dd500144c8c8c96600260440051323259800980d000c56600260406ea800a00d1640851598009807000c4c8c966002604c0050088b2046375a604800260406ea800a2b300130190018acc004c080dd5001401a2c810a2c80f101e203c301e3754002604200716407c64b3001301e0018acc004cdc4a4008603a0031689806180e800a0388b203e37546040002604000260366ea800a2c80ca4464b30013016001899192cc004c08800a00916407c6eb4c080004c070dd5001c5660026014003159800980e1baa00380145901d45901a2034301a375400491111199119914c004cc88c966002603e60486ea80062604a6466ec0c0a4004c0a4c0a8004dd6181418129baa0018b204632330010010032259800800c5300103d87a80008992cc004cdd7981300099ba548010cc0a4c040cc0a4dd480225eb812f5c11301733029374e66052604c00266052604e00297ae04bd7044cc00c00cc0ac0090251814800a04e3756601860446ea805cdd7181298111baa002912cc004c078c08cdd500144c8c8c8cc8966002605a007133008302c0051330110020068b2054302a001375a60540046054002605200260486ea800a2c811244b3001301e302337540051323232323298009bad302c0019bad302c0049bad302c003981600124444b30013031005899806181800489980a80080545902e0c0b0004c0ac004c0a8004c0a4004c090dd500145902248966002603c60466ea800a26464646465300137586058003375a6058009375a6058007302c0024888966002606200b13300c3030009133015001132332259800981a001c0362c8188dd718188009bae303100530310048b205c181600098158009815000981480098121baa0028b2044912cc004c078c08cdd500144c8c8c8c8ca60026eb0c0b00066eb4c0b00126eb4c0b000e605800491112cc004c0c4016266018606001226602a0022646644b30013034003806c590311bae3031001375c606200a60620091640b8302c001302b001302a001302900130243754005164088911112cc004c084c098dd5002c4c8c8c8cc8966002606000713259800981398161baa00189919191919194c004c0d80066eb0c0d80166eb4c0d80126eb4c0d800e606c004911112cc004c0f001a26604e6eb0c0ec02c8966002005133029006225980080144cc07c0144cc07c0244c8c9660026070607a6ea804e2646464b3001304500289919912cc004c0f800a264b3001304900189981a1bac304800122598008014012266042609400426002609600482422c8230c110dd5001c5660026064005132598009824800c4cc0d0dd61824000912cc00400a009133021304a00213001304b002412116411860886ea800e2b3001303d0028992cc004c1240062660686eb0c1200048966002005004899811182500109800982580120908b208c30443754007159800981f80144c96600260920031330343758609000244b300100280244cc088c1280084c004c12c00904845904618221baa0038acc004c0c400a264b3001304900189981a1bac304800122598008014012266046609400426002609600482422c8230c110dd5001c5660026060005132598009824800c4cc0d0dd61824000912cc00400a009133023304a00213001304b002412116411860886ea800e2b3001302f0028992cc004c1240062660686eb0c1200048966002005004899812182500109800982580120908b208c30443754007159800980400144c96600260920031330343758609000244b300100280244cc090c1280084c004c12c00904845904618221baa0038b20844108821104220844108821104218209baa00113259800981e800c4c966002609000313302c30470010078b208a304337540071598009818800c4c966002609000313259800981f98221baa00189919192cc004c13000a266058609600626605800201716412460940026094002608a6ea80062c8218c11c0062c8228c10cdd5001c59041208230413754004608800716410860860026086002607c6ea804e2c81e04cc0b004c8966002005198009821181f9baa01d9821181f9baa3030303f375403b222598008014530103d87a80008acc004c0f00062606466088608a00497ae08cc00400e608c005337000029000a0064100821a45300132330010010032259800800c528456600266ebcc118c10cdd5182318219baa303430433754608c00260586608a6ea400d2f5c114a313300200230470014104822294294503f488c8cc00400400c896600200314bd7044cc896600266ebcc120c114dd5182418229baa303630453754004605c6608e6ea40152f5c113304700233004004001899802002000a0863046001304700141112302e303f37546086646600200200444b30010018a5eb84103d87a80008101800044c8cc8966003300130333044375460900074a14a2821a26608f30014a14c103d87a8000a60103d8798000410c6608e6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12800400e29462660040046096002822904844cc11e600294298103d87a8000a60103d8798000410c6608e6e9c0092f5c11330479800a51a60103d87a8000a60103d8798000410c6608e6e9ccc11cdd400080125eb8104320863758608c608e0026eb4c118008cc008008c11800504348888ca6002003005802400d00111112cc00400e2b30010028800c59048466002009304b0039825801660026094007375a6094005001401480210484888ca6002003004801a00222259800801456600200314a314a082322b30010018a508acc004cc010c120008c1200063300100398248014c12400500345282086411882324444646600200200a44b300100189982399bb0375200a6ea00112f5bded8c113298009bae30450019bad304600198250012444b30013372001200713304b337606ea4024dd4004002c56600266e3c02400e33001009804400a46609866ec0dd48051ba80010028800a00e89982599bb037520066ea0008cc018018005047208e1824000a08c91111919800800802912cc00400626608e66ec0dd48029ba60044bd6f7b63044ca60026eb8c1140066eacc11800660940049112cc004cdc8004801c4cc12ccdd81ba9009374c01000b15980099b8f0090038cc00402601100291982619bb037520146e9800400a2002803a26609666ec0dd48019ba600233006006001411c8238609000282324464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208a8998028029825802208a375c60880026eacc114004c11c0050450a5eb7bdb1824b30010018a518a5041051222223259800981f800c00a260060028218cdc0002001c8966002607660806ea800a26464b30013047002801c590441bad3045001304137540051640fd230433044304430440019b814800244b30010018a40011337009001198010011822800a084918219822182218221822182218221822182218221822000c8966002607660806ea800a264646465300130480019824001cc12000922259800982600244cc0a8c12c01c4cc09c0084c96600260860031323298009bad304e0019827800cdd698270012444b300130520028991919912cc004c15800e02516414c6eb8c14c004dd7182980118298009bac30510028b209e182700098249baa0028acc004c0dc006264653001375a609c003304f0019bad304e00248896600260a400513232332259800982b001c04a2c8298dd718298009bae30530023053001375860a200516413c304e001304937540051598009821000c4c8ca60026eb4c138006609e003375a609c0049112cc004c14800a264646644b300130560038094590531bae3053001375c60a600460a60026eb0c14400a2c8278609c00260926ea800a2b3001304400189919912cc004c140006264646644b300130540038084590511bae3051001375c60a200460a20026eb0c13c0062c8268dd69826800982700098249baa0028acc004c0d8006264646644b30013051003806c5904e1bad304e001375a609c004609c00260926ea800a2b3001303500189919194c004dd69827800cdd69827801cdd698278012444b30013053004807c590500c13c004c138004c124dd50014566002606800313232598009827801402e2c8260dd6982680098249baa0028acc004c03400626464b3001304f002805c5904c1bad304d0013049375400516411c8239047208e411c8239047208e30473754003164124304800130470013046001304137540051640fd223302800223375e608a60846ea8004dd3801488cdc199b82002375a606660826ea8004dd6981918209baa001912cc00400629344c966002003149a264b3001337206eb8c108c11800cdd71821000c4cc010010cc114004c11c00a2c8208c1140050431822800a0849111919800800802112cc004006200913233223322330020020012259800800c400e26530010059bae30490019bad304a0019980180198270012012304c00141286eacc11c00cdd718220009980180198248011823800a08a911919800800801912cc004006297ae08998229ba73003304600133002002304700141112232330010010032259800800c528456600266ebcc118004dd3801c528c4cc008008c11c0050412088911194c0040060090034004444b30010028800c660020073049002998021824001000a00641192304330443044304430440019b88480026e3d22104555344720048888888888888888888888888888a600260b66ea8072603603722259800980d801466002007002a4001222598009802001c4cdc00009bad30533062375400716418080d22c82ea4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320c6899802802983480220c6375c60c40026eb4c18c004c1940050631980b8020018a400122329800800c00e00480088896600200510018994c00401260cc00798008014dd71830800cdd59831000c88888c966002603c00300289801800a0cc32329800800c01a00a80088896600200510018994c00401260e000798008014dd71835800cdd69836000c0150252008306e00241b0a03880d1004183200120c491919800800801112cc004006297adef6c608991983119bb0305f001374c64660020026eacc184008896600200314bd6f7b63044c8cc194cdd818310009ba83015375a60c60026600600660ce00460ca0028318cc00c00cc190008c1880050604c0340364464b30013058305e37540031323300f00115980099baf30133060375400660c660c06ea80122b30013375e60a260c06ea8004c18cc180dd5001c40062c82f22c82f0c188c17cdd5000c5905d1828182f1baa304f305e375400530080084888888888ca600244646600200200444b30010018a5eb822660d864b30013065306a37540031306e306b37540031641a46600a0086eb4c1b4004cc008008c1b800506b48888c96600260ca60d46ea8006264b30013375e60de60d86ea8c1bcc1b0dd5182e98361baa00130553306e375200a97ae08acc004c16a60026eacc174c1b0dd5182e98361baa001802d220108747265617375727900403513259800983318361baa001899198110008992cc004c1a4c1b8dd5000c4c96600266ebcc1ccc1c0dd5183998381baa001305933072375201297ae08acc004c17a60026eacc184c1c0dd5000c02691108747265617375727900404513259800983518381baa001899198130008acc004cdd7981298391baa0034c0103d87a800089983a0029983a0009983a1ba633012375660c660e46ea800cc044dd5983198391baa30633072375400e97ae08b20e03074307137540031641bc60c460e06ea80062c83722c8370c1c8c1bcdd5000c5906d198049bac3060306e375401000a60e060da6ea80062c8358c178c1b0dd5182e98361baa0018b20d48b20d4306e306b37540031641a46600a6eb0c1b4c1a8dd50020014888888896600266ebcc1c4c1b8dd5003983898371baa0068acc004cdd7983018371baa007305f306e375400d13259800cc0040069464444b3001001899b894800000a294107120348992cc004cdc4802000c56600266e2400400e20031641b91641b930010019bae30720049bae3072307300440411641b46601c6eacc17cc1b8dd50039806cc004dd71838802cdd718389839002cc080011222598009835800c402e3300100b801cc8c8008c038004cc1cccdd81ba9002375000297adef6c6091111192cc004c0b40060051300300141d4653001004804401e444453001005801c0120050014018818140ad02920de45906c45906c2444b3001306300d8cc00488c8cdc199b803370066e0800cdd6982f18361baa00200148004004dd6982e18359baa001998019bac306c306937540526eb0c168c1a4dd50154dd6183618349baa02a9bad305b30693754055375a603860d26ea80aa60b460d26ea812522222259800998169bac3072306f37540c86eb8c088c1bcdd5182c98379baa001899912cc004ca600200500891192cc004c1bcc1d0dd5000c4c8c8ca60026604c00e0033758603e60f06ea80166eb4c1ec00e6eb4c1ec009222259800983b183d9baa0048acc004cdc4998099bad306d307c375401260fe60f86ea801260026eacc1b4c1f0dd51836983e1baa00a9bae307f0039bae307f308001003407515980099b87002375a60da60f86ea80262b30013370e0026eb4c1b8c1f0dd5004c4cdd79ba70053023307c375401314a083d2294107a452820f48b20f41bac307a307b001307a0013075375400314a08398c198c1d0dd519808801000a0583758604260e26ea800e26464b30013370e0033001375860ca60e66ea81a2660ea60c860e66ea8c174c1ccdd50029983aa601054455534472004bd704dd6181198399baa0054888ca6002003007806c03100111112cc00400e2900044cc896600260ec60f66ea8006264b30013077307c37540031337013001375660dc60fa6ea8c1b8c1f4dd51840008034c20004c1f4dd50014c20004c1f4dd5001cdd61812183e9baa0039980a1bad306e307d375400661000260fa6ea8006013375a60de60fa6ea800e6eb4c1b8c1f4dd5001a02a9800803cc2040401a61020200b308101004401d1641ec6605400e6eb0c08cc1f0dd500145907a183e8011980a8039bad307d00141ec8991919912cc00660020054a3222259800800c56600266e3c0112201008a518998120029983e9ba90043307d375200697ae041e514a083c9022456600266e1ccdc09bad307a3077375460f40066eb4c1e8c1dcdd5183d002002c4c96600266e240180062603c0031641d930013758604e60ee6ea80269000488c8cc896600330013076001a50a5141e915980099b8933029001005002899b800040018b20f48acc004cdc4a400000510048b20f441e930010059bae307d0019bae307d307e001406c653001011a4001225980099baf3024307d37540046e9c00e266e00004dd69837183e9baa0028800a0f6408c6eb0c1f4c1e8dd50019bac307c3079375400480fa2c83aa2c83a8dd5983c183c8009980f9bac30253075375400e46eb0c1e4c1d8dd5000983c000cc0041a26eb8c1d8c1ccdd5182e98399baa005803c01900c4590712cc004c1b0c04000629000456600260ec00313259800980c1bae307200189bad30730018b20e230750018b20e641c0660506eacc060c1c4dd50331bae30623071375460b660e26ea800e2c837a600200b00492cc004c058dd6983098381baa0018980b1bad30623070375400314a08371011198161bac3072306f37540c86eb8c184c1bcdd5182c98379baa0018b20da44cc896600260b201f19800998029bac306e306b37540566eb0c170c1acdd50164dd6183718359baa02c9bad305d306b3754059375a603c60d66ea80b260b860d66ea812d2222259800998171bac3073307037540ca6eb8c08cc1c0dd5182d18381baa0018cc006600200b00492cc004cdc41bad306230713754002900044c05cdd6983198389baa0018a5041bc80926605a6eb0c1ccc1c0dd50329bae30623070375460b460e06ea8006660e460c260e06ea8c168c1c0dd500099839261054455534472004bd702444b3001980080140224464b300130643075375400313233225980099b8900198009bab306a3079375460d460f26ea801a6eb8c1f001e6eb8c1f0c1f401d01a456600266e1c004c0acdd69835183c9baa0058acc004cdc39bad307c002375a60d660f26ea8016266ebcc1f0c1f4008c080c1e4dd5002c52820ee8a5041dd14a083b8c1ec004dd6983d000983b1baa0018a5041d060ce60ea6ea8cc04800800502d4660026644653001001802c02e014800888896600200714bd7044cc896600260ea60f46ea8006264b30013076307b3754003133223322330020020012259800800c4cc20804dd399841009ba70043308201375000697ae04bd7044ca60026eb0c210040066eb4c21004c21404006610a020049112cc004cdd79ba7003374e01113308601374e6610c026e9c00ccc21804dd419b800020074bd70000c4cc21804dd399843009ba70033308601375000497ae033006006001420804375861060200284080a6002013308201008984100803cc208040190091bac3023307c37540073001375660da60f86ea8c1b4c1f0dd5183f8034c1fcc1f0dd50014c1fcc1f0dd5001c02a60246eb4c1b4c1f0dd5001cdd61811983e1baa0039bad306e307c3754007330293012375a60da60f86ea800cc1fcc1f0dd5000a0288b20f4330290073758604460f66ea800a2c83c8c1f0008cc050018dd6983e000a0f4375860ca60e66ea81a0dd6181198399baa004998151bab301a307337540d06eb8c190c1ccdd5182e98399baa004cc0041a26eb8c1d8c1ccdd5182e98399baa004803401500c4cc074dd6181198399baa0042375860ee60e86ea8005222232332259800cc00400a9464444b30010018acc004cdc78022441008a5189981380419840009ba90043308001375200697ae041f114a083e1025456600266e1ccdc09bad307d307a375460fa0066eb4c1f4c1e8dd5183e802800c56600266e1c006600201f480024466e00004dd69836983e1baa0024089159800998089bac302a307a375401646466e1e6002009375c60fe003375c60fe61000200280e8c0b8c8c8cc00400402c8966002003148002264b30013375e6106020026e9c01226eb4c20c04c2100400626600600661080200483f0dd6184100800a10002375860fe60f86ea8008dd6183f183d9baa0018a518b20f08b20f08b20f08b20f0375660f660f8002b3001307230160048a4001159800983e00244c966002603c6eb8c1e000626eb4c1e40062c83b8c1ec0122c83c9076183d80122c83891641b88acc004c15803e3300133005375860dc60d66ea80acdd6182e18359baa02c9bac306e306b3754059375a60ba60d66ea80b26eb4c078c1acdd50164c170c1acdd5025a44444b30013302e375860e660e06ea8194dd7181198381baa305a30703754003159800cc004cc0b4dd6183998381baa065375c60c460e06ea8c168c1c0dd5000c0164464b3001306c307237540031323302300115980099baf30663074375400660ee60e86ea80122b30013375e60ca60e86ea8004c1dcc1d0dd5001c4c96600260c060e86ea8006266e1cdd6983c183a9baa001375a60cc60ea6ea801229410731833183a1baa0018b20e48b20e43076307337540031641c460c860e46ea8c18cc1c8dd500120548acc004cc88ca6002003008803a00222259800801456600200314a314a083b22b30010018a508acc004cc896600260e260ec6ea8006264b30013375e60f660f06ea8004c1ecc1e0dd5183d983c1baa0038acc004cdd79835183c1baa00130693078375460f660f06ea800e266e1e60026eacc1a4c1e0dd5000cdd7183d803cdd71834803a032300e375a60d260f06ea800e2941076452820ec307a307737540031641d460f00046602000a6eb4c1e000633001003983c8014c1e4005003452820e641d883b0dd6183118381baa0653307230613070375460b460e06ea8004cc1c9301054455534472004bd7044c8ca60026eacc1d4c1d8006660526eacc064c1c8dd50339bae30633072375460b860e46ea800eb3001302e0068cc00401e00d48002444b3001301b375a60cc60ea6ea800e266e00004dd69833183a9baa0038b20e640b51641c09112cc004cdc3acc004c1bcc04c00a29000456600260f200513259800980d9bae307500189bad30760018b20e830780028b20ec41cc00315980099b87337026eb4c1e0c1d4dd5183c0021bad30783075375460f000a00313300c3758604a60ea6ea80188c8c1c6600200b375c60f4003375c60f460f600280c0dd6183c983b1baa0018b20e68b20e6183a800cc0041966eb8c1ccc1c0dd5182d18381baa001801c00900945906e45906e45906e22b3001302f00f8cc004cc014dd6183718359baa02b375860b860d66ea80b26eb4c174c1acdd50164dd6980f18359baa02c982e18359baa04b48889660026605a6eb0c1c8c1bcdd50321bae3022306f375460b260de6ea80062b300133229800801401a4464b3001306d307337540031323302400115980099baf30673075375400660f060ea6ea80122b30013375e60cc60ea6ea8004c1e0c1d4dd5001c4c966002607460ea6ea8006264b3001337120033001375660d060ee6ea8c1a0c1dcdd50034dd7183d003cdd7183d183d803a030899b870013029375a60d060ee6ea801629410751bad30793076375400314a083a0c19cc1d4dd5000c59073459073183b983a1baa0018b20e430653073375460c860e66ea800902b198161bac3072306f37540c86eb8c184c1bcdd5182c98379baa001330713060306f375460b260de6ea8004cc1c53001054455534472004bd7044c8ca60026eacc1d0c1d4006660506eacc060c1c4dd50331bae30623071375460b660e26ea800f3001006a4001225980099b88375a60c860e66ea80092000899b80001375a60c860e66ea800a2c83890192444b30013370eb3001306e30120028a4001159800983c00144c96600260346eb8c1d000626eb4c1d40062c8398c1dc00a2c83a9072000c56600266e1ccdc09bad30773074375460ee0086eb4c1dcc1d0dd5183b802800c4cc02cdd61812183a1baa00623230709800802cdd7183c800cdd7183c983d000a02e375860f060ea6ea80062c83922c839060e800330010649bae3072306f375460b260de6ea800600700240211641b51641b48a5041a48349069111919800800801912cc00400629462b3001300330700018998010011838800c52820d641b84b300133710002900044c070006200283410670896600266e2000520008a60103d87a8000899805001000a0ca22646644b30013046001899912cc004c0f8c10cdd500144c8c8c8cc8966002609a00713259800982218249baa0018991919912cc004c14800e264b30013049001899192cc004c15400a01d1641486eb8c14c004c13cdd5003c566002607a00315980098279baa00780645905045904d209a304d375400d16413c6eb8c13c004dd71827801182780098251baa0018b2090304c0058b2094375c609400260940046094002609200260886ea800a2c8210c1140044c010c1180162c8218dd7182180098220009bac304200241006e1d200e899180118208019bad303f00240f51323002303f003375a607a00481da2c81c8606c002606a002606800260660026064002605a6ea80062c8158c0bc0162c8168dd6181680098168011816800981600098139baa0058b204a1919192cc004c074c088dd5000c4c8cc8966002605400313259800981098131baa00189919191919191919191919194c004c0d8006606c017303600a981b004cc0d8022606c00f3036006981b002cc0d8012606c0073758606c004911111111112cc004c108032266040608202e26604001426604001226604001026604000e26604000c26604000a2660400082660400062b30013038303d37540051323232323298009bae30460019bae30460059bae30460049bae30460039bae304600248888966002609800d13303700b225980080144cc0ac05c40a2264b30013045304a37540031323232332259800982a001c4c8c8cc896600260b00071300b305800c8b20aa375c60aa0026eb8c154008c154004dd61829802c590511bad3051001375a60a200460a200260a000260966ea80062c8248c13400904b4590490c118004c114004c110004c10c004c0f8dd500145903c45903f0c0d8004c0d4004c0d0004c0cc004c0c8004c0c4004c0c0004c0bc004c0b8004c0b4004c0b0004c09cdd5000c590251814800c590271bae302700130280013023375400316408464b3001301d3022375400313259800980e98119baa0018981398121baa0018b2044301530233754602860466ea8c098c08cdd5000c59021198049bac30133022375402e4646600200260066eacc054c090dd5180a98121baa0022259800800c528456600266e3cdd718140008114528c4cc008008c0a4005023204c30010012259800800c52f5c113302430213025001330020023026001408c44b3001301c30213754005132323259800981480144cc018c0a000c4c966002604000315980098131baa002802c590274566002602800313232598009816001401e2c8148dd7181500098131baa0028acc004c07c00626464b3001302c002803c59029181500098131baa0028b204840908120c090dd5000c590261813800981380098111baa0028b204030040042259800980d180f9baa00289919192cc004c09c00a266010604c006264b3001301e0018992cc004c0a400626464b300130210018992cc004c0b000626601a60560020131640a4604e6ea800a2b3001301500189919194c004dd69816800cdd69816801cdd698168012444b3001303100480745902e0c0b4004c0b0004c09cdd5001459025204a30253754002605000316409860486ea800a2b300130120018acc004c090dd500140162c812a2c811102218111baa0018b20483025001302500130203754005164078456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d95900201", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolMintProtocolMintElse { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5948de010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a495365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f61737365742900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a492e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a4942657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d65720016488888888888888888896600330013018375403d370e90034dc3a4001370e90022444464653001301d3754003302100698108012444b300130060038cc004c090c084dd500248c094c098c0980064604a604c003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480324604a604c604c604c604c604c604c604c604c604c003374a900124444444444465300122259800980b18179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b3001301b0018992cc00400600f13259800800c566002607600513259800980f000c4c96600200300a8992cc0040062b3001303e0028cc00400601900b403900b40ed00b805c02e01681f8c0f000503a181c1baa0028acc004c048006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013045003809c0490421bad001808a08a304200141006eb4004c10400a01c8210c0fc00503d1bad001303e002805a07e303c00140e860706ea800a01281a9035181b1baa0018042070804402201100840f0607200281b8c0d4dd50014566002601e003159800981a9baa002803c0190364019032206430333754003005402100540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444653001001802400d001111192cc004c068006264b300100180344c966002003007803c01e00f13259800981d801c01601081c0dd7000a076303800140d860686ea800e2b3001300e0018992cc00400600d13259800800c01e00f13259800981d801c4cc04800489660020050078992cc0040063300100a800c4c008c0f800d00a402e01700b805a07e303c00240e900840e06eb000600f00740ec607000281b0c0d0dd5001c566002603200313259800800c01a264b3001001803c01e264b3001303b003899809000912cc00400a00f13259800800c6600201500189801181f001a014805c02e01700b40fc607800481d201081c0dd6000c01e00e81d8c0e0005036181a1baa0038acc004c06c006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002607c0071330150012259800801402a264b30010018cc004036003130023041003403500e807403a01c8210c0fc00903d402d03b1bac001805402903e181d800a072375a002607400500740ec607000281b0c0d0dd5001c566002601a00313259800800c01a264b3001001803c01e00f13259800981d801c01601081c0dd6800c01d03b181c000a06c303437540071598009806000c4c9660020030068992cc00400600f007803c4c96600260760070058042070375a00300740ec607000281b0c0d0dd5001c566002601600313259800800c01a264b3001001803c01e00f0078992cc004c0ec00e00b00840e06eb800503b181c000a06c3034375400700540c48189031206240c4818903118191baa002911919800800801912cc004006298103d87a80008992cc004c0100062601c6606800297ae0899801801981b001205e303400140c891119192cc0040063300122259800980d981a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b300130200018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c07c006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005403100540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e0028192444b3001301b3034375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607400315980099b8948010c0e400600d13259800981f80244c9660026044003159800981e1baa006804c02103d4566002602c00313259800800c026264b3001001805402a015132598009821801c0320168200dd6800c0290431820000a07c303c375400d1598009810800c56600260786ea801a01300840f500840e481c9039181d1baa005803a0783014303900140dd00640ec6ea800600b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c005032488966002603660686ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981f801c02200e81e0dd6800c01903f181e000a074375c002607600481e0c0e4005037181a9baa003800a064911192cc004c070006264b3001001801c4c9660020030048024012264b3001303d003803401503a1bad001802207a303a00140e0606c6ea80122b300130100018acc004c0d8dd5002400e00481ba0048199033181a1baa0034888a6002444b3001301f3038375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c5660026088005198008034660020030098042018804201c80420828044022011008411460840028200dd680098208014015042181f800a07a303f002801c00e0070034100607a00281d8c0e4dd5001c005036488966002603e60706ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b00d8992cc004c12800e3300100c8cc00401201f00e404900e405100e411c6eb400601a8250c11c0050451823801402e01700b805a0903045001410c6eb4004c11000a0108228c1080050401bad0013041002802a084303f00140f4607e005003801c00e0068200c0f400503b181c9baa003800a06c9112cc004c07cc0e0dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001304a0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001304f00380a404d04c1bae001413c60980028250dd7000982580120983049001411d00e404900e405100e411c6eb000601b00d4128608e0028228c11c00a01700b805c02d0481822800a086375a0026088005008411460840028200dd680098208014015042181f800a07a303f002801c00e0070034100607a00281d8c0e4dd5001c005036488966002603e60706ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009825001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009827801c0520268260dd7000a09e304c00141286eb8004c12c00904c1824800a08e80720248072028807208e375800300d806a09430470014114608e00500b805c02e0168240c1140050431bad0013044002804208a304200141006eb4004c10400a00a8210c0fc00503d181f801400e007003801a080303d00140ec60726ea800e00281b12222598009810181c9baa0098992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c966002003029814c4c966002608a007159800981398201baa0068992cc00400605713259800800c0b20591332259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281940ca26644b300100181a44c96600200303581ac0d626644b300100181bc4c96600200313259800800c0e6264b30010018acc004c15400a26605801c44b3001002899817006912cc00400a330010078cc00401626464b3001303d3056375403513259800800c106264b30010018992cc00400608713259800800c56600260be00513322598009821800c4c9660020030478992cc0040060910488992cc004c19000e26607600244b3001002803c4c96600200319800800c4c008c19c00e098815209904c8264131068183280120c6824a0c2375800304882420c83061001417c60ba6ea80162b300130370018992cc00400608f13259800800c122091132598009832001c4cc0ec00489660020050078992cc00400633001001898011833801c13102a413209904c82620d03065002418d04941846eb0006091048419060c200282f8c174dd5002c566002608400313259800800c11e264b30010018244122264b3001306400389981d800912cc00400a00f13259800800c660020031300230670038262056826413209904c41a060ca004831a0928308dd6000c1220908320c18400505f182e9baa0058acc004c110006264b3001001823c4c96600200304882444c96600260c800713303b0012259800801401e264b30010018cc0040062600460ce00704c40ad04c82641320988340c19400906341250611bac00182441210641830800a0be305d375400b159800981b000c4c9660020030478992cc0040060910488992cc004c19000e26607600244b3001002803c4c96600200319800800c4c008c19c00e098816209904c8264131068183280120c6824a0c2375800304882420c83061001417c60ba6ea80162b300130350018992cc00400608f13259800800c122091132598009832001c4cc0ec00489660020050078992cc00400633001001898011833801c13102c413209904c82620d03065002418d04941846eb0006091048419060c200282f8c174dd5002c566002606800313259800800c11e264b30010018244122264b3001306400389981d800912cc00400a00f13259800800c66002003130023067003826205a826413209904c41a060ca004831a0928308dd6000c1220908320c18400505f182e9baa0058acc004c020006264b3001001823c4c96600200304882444c96600260c800713303b0012259800801401e264b30010018cc0040062600460ce00704c40b504c82641320988340c19400906341250611bac00182441210641830800a0be305d375400b046416882d105a20b4416882d105a20b4132598009821000c4c9660020030468992cc0040062b300130620028cc00400601104740a9047417d047823c11e08e8318c18000505e182e1baa0028acc004c0d8006264b300100182344c96600200315980098310014566002608860ba6ea8006264b300100182444c96600200313259800800c12a264b30010018acc004c19800a330010038cc00400601904b40bd04b40bd04b418d04b825c12e0968338c19000506218320014126093049824a0ca3062001418060bc6ea800608e82da08e82fa08f047823c11d0631830000a0bc305c3754005045416482c8c168dd5000982d1baa00382220b88224112089044418060ba00282d8c17400a085042821410905e182d800a0b230573754035040415026606202c44b30010028cc004c16cc160dd5013cc16cc160dd5181a982c1baa0279112cc00400a298103d87a80008acc004c1040062606e660ba60bc00497ae08cc00400e60be005337000029000a006416082e245300132330010010032259800800c528456600266ebcc17cc170dd5182f982e1baa3039305c375460be0026062660bc6ea400d2f5c114a31330020023060001416482ea942945057488c8cc00400400c896600200314bd7044cc896600266ebcc184c178dd51830982f1baa303b305e37540046066660c06ea40152f5c113306000233004004001899802002000a0b6305f00130600014175230333058375460b8646600200200444b30010018a5eb84103d87a80008101800044c8cc896600330013038305d375460c20074a14a282da2660c130014a14c103d87a8000a60103d8798000416c660c06e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c18c00400e294626600400460c800282e906144cc182600294298103d87a8000a60103d8798000416c660c06e9c0092f5c11330609800a51a60103d87a8000a60103d8798000416c660c06e9ccc180dd400080125eb8105b20b6375860be60c00026eb4c17c008cc008008c17c00505c48888ca6002003005802400d00111112cc00400e2b30010028800c54cc17924112657870656374205b5d203d206c6973745f6200164185159800801454cc1792411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260c80073064002cc004c18c00e6eb4c18c00a002802900420c24185222329800800c012006800888966002005159800800c528c52820be8acc00400629422b300133004306100230610018cc00400e60c40053062001400d14a082d905f20be91111919800800802912cc0040062660c066ec0dd48029ba80044bd6f7b63044ca60026eb8c1780066eb4c17c00660c60049112cc004cdc8004801c4cc190cdd81ba9009375001000b15980099b8f0090038cc00402601100291983299bb037520146ea000400a2002803a2660c866ec0dd48019ba800233006006001417c82f860c200282fa4444646600200200a44b300100189983019bb0375200a6e980112f5bded8c113298009bae305e0019bab305f00198318012444b300133720012007133064337606ea4024dd3004002c56600266e3c02400e33001009804400a4660ca66ec0dd48051ba60010028800a00e89983219bb037520066e98008cc01801800505f20be1830800a0be91191919800800802112cc00400600713233225980099b910070028acc004cdc78038014400600c82ea26600a00a60c800882e8dd7182e8009bab305e00130600014178297adef6c6092cc0040062946294105a4488888c966002608800300289801800a0b633700008007222598009820982d1baa0038992cc00400600513259800800c00e0070038992cc004c18800e00b004417c6eb40060068310c17c00505d182d9baa003800a0b09182e182e982e982e800cdc0a40012259800800c52000899b8048008cc008008c17800505b48c170c174c174c174c174c174c174c174c174c174c174006444b30013041305a375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c96600260ce00519800803c6600200b132598009825000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981f000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc306437540091598009824800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c1c400e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c1d800e03301841cc6eb80050761839800a0e2375c00260e40048398c1c000506e404d06e1bac00180940490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc306437540091598009825800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c1b800e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1cc00e02d01541c06eb80050731838000a0dc375c00260de0048380c1b400506b404106b1bac001807c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607a00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009837001c0460208358dd6800c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607800313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a025132598009838801c0520268370dd6800c0490711837000a0d8375a00260da00500f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981d800c4c96600200300b8992cc00400601900c80644c96600260d600700e806a0d0375a00300c41ac60d00028330c190dd50024566002601e00313259800800c02e264b30010018064032019132598009835801c03a01a8340dd6800c03106b1834000a0cc3064375400900a4184830906120c24184830906120c23062375400700940c500940d5009419060ca0028318c19400a00f007803c01d0661831800a0c23063002802c01600b005419060c200282f8c18400a007003801c00d062182f800a0ba305b37540070014161223302b00223375e60bc60b66ea8004dd3801488cdc199b82002375a607060b46ea8004dd6981b982d1baa001912cc00400629344c966002003149a264b3001337206eb8c16cc17c00cdd7182d800c4cc010010cc178004c18000a2a660b4921326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f726465720016416460bc00282e0c17800505b4888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd71831000cdd69831800ccc00c00cc19c0090091832800a0c6375660c00066eb8c174004cc00c00cc188008c18000505e488c8cc00400400c896600200314bd7044cc178dd39801982f800998010011830000a0ba911919800800801912cc00400629422b30013375e60be0026e9c00e294626600400460c000282c905d4888ca6002003004801a00222259800801440063300100398310014cc010c18400800500320be9182e182e982e982e982e800cdc424001371e910104555344720048888888888888888888888888888a600260e86ea8072603603722259800980d801466002007002a4001222598009802001c4cdc00009bad3058307b375400706741e080d20da83aa4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320f689980280298410080220f6375c60f60026eb4c1f0004c1f800507c1980b8020018a400122329800800c00e00480088896600200510018994c00401260fe00798008014dd7183d000cdd5983d800c88888c966002603c00300289801800a0fc32329800800c01a00a80088896600200510018994c00401261120200798008014dd7184200800cdd6984280800c0150252008308701002421404a03880d1004183e80120f691919800800801112cc004006297adef6c608991983d99bb03078001374c64660020026eacc1e8008896600200314bd6f7b63044c8cc1f8cdd8183d8009ba83015375a60f80026600600661000200460fc00283e0cc00c00cc1f4008c1ec0050794c0340364464b3001305d3077375400313259800800c6600200315980099baf30133079375400660f860f26ea80122b30013375e60ac60f26ea8004c1f0c1e4dd5001c40062a660ee9213865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e001641d9153307749138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e6365001641d9067403d067833c19e0ce83f0c1ecc1e0dd5000c195075182a983b9baa30543077375400530080084888888888ca600244646600200200444b30010018a5eb8226610a0264b3001306a30830137540031308701308401375400315330820149013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f6964782900164204046600a0086eb4c21804004cc008008c21c040050840148888c96600260d46106026ea8006264b30013375e611002610a026ea8c22004c21404dd518311842809baa001305a3308701375200a97ae08acc004c17e60026eacc188c21404dd518311842809baa001802d2210874726561737572790040351325980098359842809baa0018992cc004006330010018992cc004c1b8c21c04dd5000c4c96600266ebcc23004c22404dd51846009844809baa001305e3308b01375201297ae08acc004c18e60026eacc198c22404dd5000c02691010874726561737572790040451325980098379844809baa0018992cc004006330010018acc004cdd798129845809baa0034c103d87a800089984680802998468080099846809ba633012375660d06116026ea800cc044dd598341845809baa3068308b01375400e97ae08a9984480a48126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001642200507f409907f83fc1fe0fe848008c23404c22804dd5000c54cc2200524012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016421c0460ce6112026ea80062a6610e02920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001642180515330870149143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f7363726970742900164218046116026110026ea80062a6610c0292013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f696478290016421404660126eb0c194c21c04dd5004002c1e902241ea0f507a83d211802308901308601375400315330840149013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016420c0460c6610a026ea8c188c21404dd5000c54cc20c052401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164208051533083014914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016420804610e026108026ea80062a661040292013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f6964782900164204046600a6eb0c21804c20c04dd50020014888888896600266ebcc22804c21c04dd50039845009843809baa0068acc004cdd798329843809baa0073064308701375400d13259800cc0040069464444b3001001899b894800000a29410890120348992cc004cdc4802000c56600266e2400400e2003153308701491216578706563742064656c697665726564203c3d206d61785f64656c6976657265640016421805153308701491216578706563742064656c697665726564203e3d206d696e5f64656c697665726564001642180530010019bae308b010049bae308b01308c010044041153308601490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d2900164214046601c6eacc190c21c04dd50039806cc004dd7184500802cdd7184500984580802cc080011222598009838000c402e3300100b801cc8c8008c038004cc23004cdd81ba9002375000297adef6c6091111192cc004c0b400600513003001423404653001004804401e444453001005801c0120050014018818140ad029210e02454cc2140524128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d00164210051533085014912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e6164647265737300164210049112cc004c1a00363300122323370666e00cdc019b82003375a60c6610a026ea80080052001001375a60c26108026ea8006660066eb0c21404c20804dd50149bac305f30820137540553758610a026104026ea80aa6eb4c180c20804dd50154dd6980e1841009baa02a982f9841009baa0524888889660026605a6eb0c22c04c22004dd50349bae3022308801375460bc6110026ea800626644b300132980080140224464b30013074308d0137540031323232980099813003800cdd6180f9848809baa0059bad3094010039bad309401002488896600260f66128026ea80122b300133712660266eb4c1c8c25404dd5004984c00984a809baa00498009bab3072309501375460e4612a026ea802a6eb8c2600400e6eb8c26004c2640400d01d456600266e1c008dd69839184a809baa0098acc004cdc38009bad3073309501375401313375e6e9c014c08cc25404dd5004c5282124028a5042480514a084900a2a661260292014365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f61737365742900164248043758612602612802002612602002611c026ea8006294108b0118359846809baa3301100200140b06eb0c084c22804dd5001c4c8c96600266e1c00660026eb0c1a8c23004dd5036ccc23804c1a4c23004dd518311846009baa0053308e014c1054455534472004bd704dd618119846009baa0054888ca6002003007806c03100111112cc00400e2900044cc896600200908d01899912cc004016120031332259800983f984c009baa001899912cc004c20404c26804dd5000c4cdc04c004dd5983c184d809baa3078309b013754011002984f00984d809baa0069bac3029309b01375400d33019375a60f06136026ea8018c27804c26c04dd5000c03a6eb4c1e4c26c04dd50034dd6983c184d809baa0064069300100c803c016008806212a0284c008c27004c26404dd5000998170059bac3027309901375400908f0142580461360200a660320166eb4c2680401509801184c00802184c80802212c02309601003309701003425004899194c004c244040066eacc24404c248040066603e6eb0c094c23804dd500391bac309201308f01375400330910100248889660033001003a5191112cc0040062b30013371e008911008a518998130031984c009ba90043309801375200697ae0424c0514a0849809024456600266e1ccdc09bad30950130920137540086eb4c25404c24804dd5000803c4c96600266e240200062604000315330910149012a657870656374206d696e745f616d6f756e74203c3d20746f74616c5f76616c6964617465645f7573647200164240053001375860526124026ea802e9000488c8cc89660033001307d001a50a5142500515980099b893302b001005002899b800040018a9984a80a4812d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642500515980099b894800000a20091533095014901186578706563742061637475616c5f64656c7461203e3d2030001642500484a00a600200d375c613002003375c61300261320200280e8ca60020274800244b30013375e604c6130026ea8008dd3801c4cdc00009bad3075309801375400510014254048128dd6184c00984a809baa0033758612e026128026ea800902142240508f0142340508f010c2440400660020db375c611e026118026ea8c188c23004dd5002c01e00c80622a661140292125657870656374206d696e745f616d6f756e74203d3d20746f74616c5f64656c6976657265640016422404b3001307130100018a4001159800800c1f2264b30013090010028992cc004c064dd7184600801440060fe845008dd6984600800c1f508d01184700800a11802422004660506eacc060c22804dd50359bae3067308a01375460c06114026ea800e2a66110029201556578706563740a2020202076616c69646174655f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f72657175657374732c2073657474696e67732e726573657276655f617373657473290016421c0530010058024966002602c6eb4c198c22404dd5000c4c058dd698339844809baa0018a504218048088cc0b0dd61845809844009baa069375c60cc6110026ea8c178c22004dd5000c1cd08501226644b3001305e00f8cc004cc014dd61843809842009baa02b375860c26108026ea80b26eb0c21c04c21004dd50164dd698311842009baa02c9bad301e3084013754059306130840137540a8911112cc004cc0b8dd61846009844809baa06a375c60466112026ea8c17cc22404dd5000c660033001005802496600266e20dd698339845009baa001480022602e6eb4c1a0c22804dd5000c528210e0240493302d37586118026112026ea81a8dd718339844809baa305f30890137540033308b013066308901375460be6112026ea8004cc22c05301054455534472004bd702444b3001980080140224464b30013069308e01375400313233225980099b8900198009bab306f309201375460de6124026ea801a6eb8c2540401e6eb8c25404c2580401d01a456600266e1c004c0acdd698379849009baa0058acc004cdc39bad309501002375a60e06124026ea8016266ebcc25404c25804008c080c24804dd5002c528211e028a50423c0514a0847808c25004004dd69849808009847809baa0018a5042300460d8611c026ea8cc04800800502d4660026644653001001802c02e014800888896600200714bd7044cc896600200908c01899912cc00401611e031332259800983f184b809baa001899912cc004c20004c26404dd5000c4cc88cc88cc00800800489660020031330a001374e66140026e9c010cc28004dd4001a5eb812f5c113298009bac30a2010019bad30a20130a3010019851808012444b30013375e6e9c00cdd380444cc29004dd399852009ba7003330a401375066e0000801d2f5c00031330a401374e66148026e9c00ccc29004dd400125eb80cc01801800509f010dd6185080800a13e029800807402600f00640386eb0c0a0c26804dd50034c004dd5983b984d009baa3077309a013754011002984e80984d009baa006807cc05cdd6983b984d009baa0069bac3028309a01375400d375a60f06134026ea801a6605c602e6eb4c1dcc26804dd5003184e80984d009baa001406509401425c046136026130026ea8004cc0b402cdd61813184c009baa00484700a12a02309a010053301800a375a61320200a84b808c25c04010c2600401109501184a80801984b00801a12602375860d46118026ea81b4dd618119846009baa004998151bab301a308c0137540da6eb8c1a4c23004dd518311846009baa004cc0041b66eb8c23c04c23004dd518311846009baa004803401500c4cc074dd618119846009baa00423758612002611a026ea80052222329800984a00800cdd5984a00984a80800cc2500400eb3001307730160048a4001159800802420806264b30013096010058992cc004c07cdd71849008014400610a02848008dd6984900800c20c0509301184a0080221240242380491112cc00660020074a3222259800800c56600266e3c0112201008a518998148051984d809ba90043309b01375200697ae042580514a084b009027456600266e1ccdc09bad30980130950137540086eb4c26004c25404dd5001000c56600266e1c0066002023480024466e00004dd6983a184b809baa0024091159800998099bac302c309501375401a46466e1e600200b375c613402003375c61340261360200280f8c0c0c8c8cc0040040348966002003148002264b30013375e613c020026e9c01226eb4c27804c27c04006266006006613e0200484c008dd6184e80800a136023758613402612e026ea8008dd6184c80984b009baa0018a518a9984980a49ff6578706563740a202020206c6973742e616c6c280a20202020202073657474696e67732e726573657276655f6173736574732c0a202020202020666e28726129207b0a20202020202020206c65742028706f6c6963792c206e616d6529203d2072612e61737365740a20202020202020206c65742061637475616c5f64656c7461203d206173736574732e7175616e746974795f6f662876616c75655f64656c74612c20706f6c6963792c206e616d65290a20202020202020206c657420757365725f7265636569707473203d206c6f6f6b75705f61737365745f73756d287065725f726573657276655f61637475616c732c2072612e6173736574290a20342020202020202061637475616c5f64656c7461203d3d202d757365725f72656365697074730a2020202020207d2c0a2020202029001642480515330930149123657870656374206d696e745f616d6f756e74203d3d2073756d6d65645f616d6f756e74001642480508c0142480509001424804309401002454cc22805241466578706563742076616c69646174655f72656465656d5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f617373657429001642240483a210c02456600260b601f19800998029bac30870130840137540566eb0c184c21004dd50164dd61843809842009baa02c9bad30623084013754059375a603c6108026ea80b260c26108026ea81512222259800998171bac308c0130890137540d46eb8c08cc22404dd5182f9844809baa0018acc00660026605a6eb0c23004c22404dd50351bae3067308901375460be6112026ea800600b22325980098389845809baa0018992cc004006330010018acc004cdd798359846809baa003309001308d01375400915980099baf306a308d013754002612002611a026ea800e264b30013065308d01375400313370e6eb4c24404c23804dd50009bad306b308e01375400914a0845808c1acc23404dd5000c1f508a0141f108a0141ed02341ee0f707b83da12402308f01308c01375400307942240460d26116026ea8c1a0c22c04dd500120548acc004cc88ca6002003008803a00222259800801456600200314a314a084780a2b30010018a508acc004cc896600260ec611e026ea8006264b30013375e6128026122026ea8004c25004c24404dd5184a009848809baa0038acc004cdd798379848809baa001306e30910137546128026122026ea800e266e1e60026eacc1b8c24404dd5000cdd7184a00803cdd71837003a032300e375a60dc6122026ea800e294108e014528211c023093013090013754003086014234046122020046602000a6eb4c24404006330010039849008014c248040050034528211602423c04847808dd618339844809baa06a3308b013066308901375460be6112026ea8004cc22c05301054455534472004bd7044c8ca60026eacc23804c23c04006660526eacc064c22c04dd50361bae3068308b01375460c26116026ea800eb3001302e0068cc00401e00d48002444b3001301b375a60d6611c026ea800e266e00004dd698359847009baa00383d21160240b5080014220049112cc004cdc3acc004c1d0c04c00a29000456600200507f8992cc004c24c0400e264b3001301c375c611e02005100184100a11a02375a611e020030800142400461220200484780908b01000c56600266e1ccdc09bad309101308e0137546122020086eb4c24404c23804dd5184880802800c4cc030dd618129847009baa00623230769800802cdd7184980800cdd7184980984a00800a0303758612402611e026ea800610a0284580a2a661180292012165787065637420757364725f6d696e746564203d3d206d696e745f616d6f756e740016422c04308e0100198008354dd71846009844809baa305f308901375400300380120128a9984380a481806578706563740a2020202076616c69646174655f6469726563745f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f75747075745f696e64696365732c0a202020202020757364725f61737365742c0a202020202900164218051533087014913f6578706563742076616c69646174655f6469726563745f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f72657175657374732900164218050744218048acc004c0bc03e33001330053758610e026108026ea80acdd618309842009baa02c9bad30623084013754059375a603c6108026ea80b260c26108026ea8151222259800998169bac308b0130880137540d26eb8c088c22004dd5182f1844009baa0018acc004cc8a600200500691192cc004c1c8c23004dd5000c4c96600200319800800c56600266ebcc1b0c23804dd50019848809847009baa0048acc004cdd798359847009baa001309101308e01375400713259800981d1847009baa0018992cc004cdc4800cc004dd598369848009baa306d309001375400d375c61260200f375c61260261280200e80c2266e1c004c0a4dd698369848009baa0058a504234046eb4c24804c23c04dd5000c528211802306c308e01375400307e422c0507d422c0507c409107c83e41f20f8849808c24004c23404dd5000c1e908a0118351846009baa3069308c0137540048158cc0b0dd61845809844009baa069375c60cc6110026ea8c178c22004dd5000998450098329844009baa305e30880137540026611402981054455534472004bd7044c8ca60026eacc23404c23804006660506eacc060c22804dd50359bae3067308a01375460c06114026ea800f3001006a4001225980099b88375a60d26118026ea80092000899b80001375a60d26118026ea800a0f08448090192444b30013370eb3001307330120028a400115980080141fa264b30013092010038992cc004c06cdd71847008014400610202846008dd6984700800c1fd08f01184800801211c0242280400315980099b87337026eb4c24004c23404dd51848008021bad309001308d01375461200200a00313300b37586048611a026ea80188c8c1d6600200b375c612402003375c61240261260200280b8dd61848809847009baa0018a9984580a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206275726e5f616d6f756e740016422805153308b014912165787065637420757364725f6d696e746564203d3d206275726e5f616d6f756e740016422804308d010019800834cdd71845809844009baa305e308801375400300380120108a9984300a4814b6578706563742076616c69646174655f6469726563745f6275726e5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f61737365742900164214050734214048a5042040484080908101111919800800801912cc00400629462b30013003308901001899801001184500800c528210602421c044b300133710002900044c070006200284000907f0896600266e2000520008a60103d87a8000899805001000a0fa2264b3001001821410a264b3001001821c4c96600200304482241120891332259800800c11a264b30010018acc004c18800a264b30013045305e375400513259800800c126264b30010018992cc00400609713259800800c4c96600200304d8992cc00400609d04e827413a264b3001306a0038acc004c130c194dd500344c9660020030508992cc0040060a3051828c14626644b3001001829c4c96600200305482a41520a9132598009838001c4c96600260a600313259800800c15e264b300100182c41620b10588992cc004c1d000e02505941c46eb80050741838800a0de306d37540171598009823800c56600260da6ea802e01f05641b905641a88350c1acdd5005415506d1bae00141c060da0028358dd7000983600120da306a00141a060cc6ea801a09e831a09e8338dd7000a0d43067001419460ce00504c82641320988340c1940050631832801412a09504a82520cc3063001418460be6ea800a09082e04c01cc18802208e82fa08f047823c11d0631830000a0bc375c00260be0048300c17400505b1bac001821410905e182d80120b2370e900740f902040f902044c96600200303f81fc0fe264600660b60086eb400607e82d8c16000905644c96600200303d81ec0f6264600660b20086eb400607a82c8c15800905440e905240ea07503a81d20ac3053001414460a600503881c40e207082a0c14400504f1bad001305000281aa0a2304e00141306eb4004c13400a0648270c12c0050491bac001304a002817c0bd04b1824000a08c3758002608e00502c81620903045001410c60826ea801a05481f20548210dd6000c0a60528228c1080050401821001409e04f027813a086304000140f86080005025812c09604a8208c0f800503c181d1baa009811a06e203701b80dc06d0371991192cc004c068c0ccdd5000c4c0d0c8cdd8181c000981c181c8009bac303730343754003153303249018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c02ccc0e0dd480225eb812f5c11301233038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c3756600e60626ea8048dd7181a18189baa00132323259800800c566002603260646ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0f000a2b3001301e3037375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006071038899912cc00400607513259800800c56600260aa0051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606e60a06ea801a264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c126093132598009832001c4cc0ec048896600200519800809440c209881aa264b30010018acc004c124c188dd5000c4c96600200304e8992cc00400609f04f899912cc0040060a313259800800c14a0a5052899912cc0040060a913259800800c1560ab0558992cc004c1c000e2b300100782b44c96600200305782bc15e0af1332259800800c166264b300100182d416a0b505a8992cc004c1d400e2602060ea02305b41c86eb80050751839000a0e0375c00260e20108390c1bc01d06d415906d1bad00182aa0e0306d00141ac6eb4004c1b000a0a48368c1a80050681bac0013069002827c13d06a1833800a0ca3063375400304d418104d826c13609a8340c19400906341290611bae001419060c200282f8dd7000983000120c2305e00141706eb8004c17400905e182d800a0b2375c00260b400482d8c1600050561bae0013057002416060aa0028298c144dd500340ed04e40ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed05240ee07703b81da0ac305300141446eb0004c14800a071038414c60a00028270c14000a06d03681b40d90511827000a098304e00281a40d2069034413c60980028250c13000a06503281940c904d1825000a090304a00281840c2061030412c60900028230c12000a05d02e81740b90491823000a088304600281640b205902c411c60880028210c11000a05502a81540a90451821000a080304200281440a2051028410c608000281f0c10000a04d0268134099041181f000a078303e002812409204902440fc607800281d0c0e0dd5000c0890354089039408a045022811207a303a00140e06eb8004c0e400903a181b800a06a3033375400301d40c101d80ec07603a81c0c966002603260646ea8006264b3001301930333754003130373034375400315330324913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602260666ea8c040c0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c0660066eb0c03cc0c8dd50099191980080098019bab301130343754602260686ea8008896600200314a115980099b8f375c607000206314a3133002002303900140c881b0c004004896600200314bd7044cc0d0c0c4c0d4004cc008008c0d80050330888c966002602c00313259800800c00e264b300100180240120090048992cc004c0dc00e00d00540d06eb8005037181a000a064303037540091598009805000c4c9660020030038992cc0040060090048024012264b3001303700380340150341bae00140dc60680028190c0c0dd5002400902d205a302e37540068acc004c02000e26464b3001300930223754604c604e00514a314a08100dd6981280098109baa0048b203c407830203021001302000445268a9980b2491856616c696461746f722072657475726e65642066616c7365001365640541" + : "5927b4010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b874803246022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911919800800801912cc0040062980103d87a80008992cc004c0100062601c6604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300b0018992cc004c08800626601a6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc034dd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998079bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd69810800980e9baa0038acc004c02000626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009805000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a180d1baa002912cc004c054c068dd500144c8c8c96600260440051323259800980d000c56600260406ea800a00d1640851598009807000c4c8c966002604c0050088b2046375a604800260406ea800a2b300130190018acc004c080dd5001401a2c810a2c80f101e203c301e3754002604200716407c64b3001301e0018acc004cdc4a4008603a0031689806180e800a0388b203e37546040002604000260366ea800a2c80ca4464b30013016001899192cc004c08800a00916407c6eb4c080004c070dd5001c5660026014003159800980e1baa00380145901d45901a2034301a375400491111199119914c004cc88c966002603e60486ea80062604a6466ec0c0a4004c0a4c0a8004dd6181418129baa0018b204632330010010032259800800c5300103d87a80008992cc004cdd7981300099ba548010cc0a4c040cc0a4dd480225eb812f5c11301733029374e66052604c00266052604e00297ae04bd7044cc00c00cc0ac0090251814800a04e3756601860446ea805cdd7181298111baa002912cc004c078c08cdd500144c8c8c8cc8966002605a007133008302c0051330110020068b2054302a001375a60540046054002605200260486ea800a2c811244b3001301e302337540051323232323298009bad302c0019bad302c0049bad302c003981600124444b30013031005899806181800489980a80080545902e0c0b0004c0ac004c0a8004c0a4004c090dd500145902248966002603c60466ea800a26464646465300137586058003375a6058009375a6058007302c0024888966002606200b13300c3030009133015001132332259800981a001c0362c8188dd718188009bae303100530310048b205c181600098158009815000981480098121baa0028b2044912cc004c078c08cdd500144c8c8c8c8ca60026eb0c0b00066eb4c0b00126eb4c0b000e605800491112cc004c0c4016266018606001226602a0022646644b30013034003806c590311bae3031001375c606200a60620091640b8302c001302b001302a001302900130243754005164088911112cc004c084c098dd5002c4c8c8c8cc8966002606000713259800981398161baa00189919191919194c004c0d80066eb0c0d80166eb4c0d80126eb4c0d800e606c004911112cc004c0f001a26604e6eb0c0ec02c8966002005133029006225980080144cc07c0144cc07c0244c8c9660026070607a6ea804e2646464b3001304500289919912cc004c0f800a264b3001304900189981a1bac304800122598008014012266042609400426002609600482422c8230c110dd5001c5660026064005132598009824800c4cc0d0dd61824000912cc00400a009133021304a00213001304b002412116411860886ea800e2b3001303d0028992cc004c1240062660686eb0c1200048966002005004899811182500109800982580120908b208c30443754007159800981f80144c96600260920031330343758609000244b300100280244cc088c1280084c004c12c00904845904618221baa0038acc004c0c400a264b3001304900189981a1bac304800122598008014012266046609400426002609600482422c8230c110dd5001c5660026060005132598009824800c4cc0d0dd61824000912cc00400a009133023304a00213001304b002412116411860886ea800e2b3001302f0028992cc004c1240062660686eb0c1200048966002005004899812182500109800982580120908b208c30443754007159800980400144c96600260920031330343758609000244b300100280244cc090c1280084c004c12c00904845904618221baa0038b20844108821104220844108821104218209baa00113259800981e800c4c966002609000313302c30470010078b208a304337540071598009818800c4c966002609000313259800981f98221baa00189919192cc004c13000a266058609600626605800201716412460940026094002608a6ea80062c8218c11c0062c8228c10cdd5001c59041208230413754004608800716410860860026086002607c6ea804e2c81e04cc0b004c8966002005198009821181f9baa01d9821181f9baa3030303f375403b222598008014530103d87a80008acc004c0f00062606466088608a00497ae08cc00400e608c005337000029000a0064100821a45300132330010010032259800800c528456600266ebcc118c10cdd5182318219baa303430433754608c00260586608a6ea400d2f5c114a313300200230470014104822294294503f488c8cc00400400c896600200314bd7044cc896600266ebcc120c114dd5182418229baa303630453754004605c6608e6ea40152f5c113304700233004004001899802002000a0863046001304700141112302e303f37546086646600200200444b30010018a5eb84103d87a80008101800044c8cc8966003300130333044375460900074a14a2821a26608f30014a14c103d87a8000a60103d8798000410c6608e6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12800400e29462660040046096002822904844cc11e600294298103d87a8000a60103d8798000410c6608e6e9c0092f5c11330479800a51a60103d87a8000a60103d8798000410c6608e6e9ccc11cdd400080125eb8104320863758608c608e0026eb4c118008cc008008c11800504348888ca6002003005802400d00111112cc00400e2b30010028800c59048466002009304b0039825801660026094007375a6094005001401480210484888ca6002003004801a00222259800801456600200314a314a082322b30010018a508acc004cc010c120008c1200063300100398248014c12400500345282086411882324444646600200200a44b300100189982399bb0375200a6ea00112f5bded8c113298009bae30450019bad304600198250012444b30013372001200713304b337606ea4024dd4004002c56600266e3c02400e33001009804400a46609866ec0dd48051ba80010028800a00e89982599bb037520066ea0008cc018018005047208e1824000a08c91111919800800802912cc00400626608e66ec0dd48029ba60044bd6f7b63044ca60026eb8c1140066eacc11800660940049112cc004cdc8004801c4cc12ccdd81ba9009374c01000b15980099b8f0090038cc00402601100291982619bb037520146e9800400a2002803a26609666ec0dd48019ba600233006006001411c8238609000282324464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208a8998028029825802208a375c60880026eacc114004c11c0050450a5eb7bdb1824b30010018a518a5041051222223259800981f800c00a260060028218cdc0002001c8966002607660806ea800a26464b30013047002801c590441bad3045001304137540051640fd230433044304430440019b814800244b30010018a40011337009001198010011822800a084918219822182218221822182218221822182218221822000c8966002607660806ea800a264646465300130480019824001cc12000922259800982600244cc0a8c12c01c4cc09c0084c96600260860031323298009bad304e0019827800cdd698270012444b300130520028991919912cc004c15800e02516414c6eb8c14c004dd7182980118298009bac30510028b209e182700098249baa0028acc004c0dc006264653001375a609c003304f0019bad304e00248896600260a400513232332259800982b001c04a2c8298dd718298009bae30530023053001375860a200516413c304e001304937540051598009821000c4c8ca60026eb4c138006609e003375a609c0049112cc004c14800a264646644b300130560038094590531bae3053001375c60a600460a60026eb0c14400a2c8278609c00260926ea800a2b3001304400189919912cc004c140006264646644b300130540038084590511bae3051001375c60a200460a20026eb0c13c0062c8268dd69826800982700098249baa0028acc004c0d8006264646644b30013051003806c5904e1bad304e001375a609c004609c00260926ea800a2b3001303500189919194c004dd69827800cdd69827801cdd698278012444b30013053004807c590500c13c004c138004c124dd50014566002606800313232598009827801402e2c8260dd6982680098249baa0028acc004c03400626464b3001304f002805c5904c1bad304d0013049375400516411c8239047208e411c8239047208e30473754003164124304800130470013046001304137540051640fd223302800223375e608a60846ea8004dd3801488cdc199b82002375a606660826ea8004dd6981918209baa001912cc00400629344c966002003149a264b3001337206eb8c108c11800cdd71821000c4cc010010cc114004c11c00a2c8208c1140050431822800a0849111919800800802112cc004006200913233223322330020020012259800800c400e26530010059bae30490019bad304a0019980180198270012012304c00141286eacc11c00cdd718220009980180198248011823800a08a911919800800801912cc004006297ae08998229ba73003304600133002002304700141112232330010010032259800800c528456600266ebcc118004dd3801c528c4cc008008c11c0050412088911194c0040060090034004444b30010028800c660020073049002998021824001000a00641192304330443044304430440019b88480026e3d22104555344720048888888888888888888888888888a600260b66ea8072603603722259800980d801466002007002a4001222598009802001c4cdc00009bad30533062375400716418080d22c82ea4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320c6899802802983480220c6375c60c40026eb4c18c004c1940050631980b8020018a400122329800800c00e00480088896600200510018994c00401260cc00798008014dd71830800cdd59831000c88888c966002603c00300289801800a0cc32329800800c01a00a80088896600200510018994c00401260e000798008014dd71835800cdd69836000c0150252008306e00241b0a03880d1004183200120c491919800800801112cc004006297adef6c608991983119bb0305f001374c64660020026eacc184008896600200314bd6f7b63044c8cc194cdd818310009ba83015375a60c60026600600660ce00460ca0028318cc00c00cc190008c1880050604c0340364464b30013058305e37540031323300f00115980099baf30133060375400660c660c06ea80122b30013375e60a260c06ea8004c18cc180dd5001c40062c82f22c82f0c188c17cdd5000c5905d1828182f1baa304f305e375400530080084888888888ca600244646600200200444b30010018a5eb822660d864b30013065306a37540031306e306b37540031641a46600a0086eb4c1b4004cc008008c1b800506b48888c96600260ca60d46ea8006264b30013375e60de60d86ea8c1bcc1b0dd5182e98361baa00130553306e375200a97ae08acc004c16a60026eacc174c1b0dd5182e98361baa001802d220108747265617375727900403513259800983318361baa001899198110008992cc004c1a4c1b8dd5000c4c96600266ebcc1ccc1c0dd5183998381baa001305933072375201297ae08acc004c17a60026eacc184c1c0dd5000c02691108747265617375727900404513259800983518381baa001899198130008acc004cdd7981298391baa0034c0103d87a800089983a0029983a0009983a1ba633012375660c660e46ea800cc044dd5983198391baa30633072375400e97ae08b20e03074307137540031641bc60c460e06ea80062c83722c8370c1c8c1bcdd5000c5906d198049bac3060306e375401000a60e060da6ea80062c8358c178c1b0dd5182e98361baa0018b20d48b20d4306e306b37540031641a46600a6eb0c1b4c1a8dd50020014888888896600266ebcc1c4c1b8dd5003983898371baa0068acc004cdd7983018371baa007305f306e375400d13259800cc0040069464444b3001001899b894800000a294107120348992cc004cdc4802000c56600266e2400400e20031641b91641b930010019bae30720049bae3072307300440411641b46601c6eacc17cc1b8dd50039806cc004dd71838802cdd718389839002cc080011222598009835800c402e3300100b801cc8c8008c038004cc1cccdd81ba9002375000297adef6c6091111192cc004c0b40060051300300141d4653001004804401e444453001005801c0120050014018818140ad02920de45906c45906c2444b3001306300d8cc00488c8cdc199b803370066e0800cdd6982f18361baa00200148004004dd6982e18359baa001998019bac306c306937540526eb0c168c1a4dd50154dd6183618349baa02a9bad305b30693754055375a603860d26ea80aa60b460d26ea812522222259800998169bac3072306f37540c86eb8c088c1bcdd5182c98379baa001899912cc004ca600200500891192cc004c1bcc1d0dd5000c4c8c8ca60026604c00e0033758603e60f06ea80166eb4c1ec00e6eb4c1ec009222259800983b183d9baa0048acc004cdc4998099bad306d307c375401260fe60f86ea801260026eacc1b4c1f0dd51836983e1baa00a9bae307f0039bae307f308001003407515980099b87002375a60da60f86ea80262b30013370e0026eb4c1b8c1f0dd5004c4cdd79ba70053023307c375401314a083d2294107a452820f48b20f41bac307a307b001307a0013075375400314a08398c198c1d0dd519808801000a0583758604260e26ea800e26464b30013370e0033001375860ca60e66ea81a2660ea60c860e66ea8c174c1ccdd50029983aa601054455534472004bd704dd6181198399baa0054888ca6002003007806c03100111112cc00400e2900044cc896600260ec60f66ea8006264b30013077307c37540031337013001375660dc60fa6ea8c1b8c1f4dd51840008034c20004c1f4dd50014c20004c1f4dd5001cdd61812183e9baa0039980a1bad306e307d375400661000260fa6ea8006013375a60de60fa6ea800e6eb4c1b8c1f4dd5001a02a9800803cc2040401a61020200b308101004401d1641ec6605400e6eb0c08cc1f0dd500145907a183e8011980a8039bad307d00141ec8991919912cc00660020054a3222259800800c56600266e3c0112201008a518998120029983e9ba90043307d375200697ae041e514a083c9022456600266e1ccdc09bad307a3077375460f40066eb4c1e8c1dcdd5183d002002c4c96600266e240180062603c0031641d930013758604e60ee6ea80269000488c8cc896600330013076001a50a5141e915980099b8933029001005002899b800040018b20f48acc004cdc4a400000510048b20f441e930010059bae307d0019bae307d307e001406c653001011a4001225980099baf3024307d37540046e9c00e266e00004dd69837183e9baa0028800a0f6408c6eb0c1f4c1e8dd50019bac307c3079375400480fa2c83aa2c83a8dd5983c183c8009980f9bac30253075375400e46eb0c1e4c1d8dd5000983c000cc0041a26eb8c1d8c1ccdd5182e98399baa005803c01900c4590712cc004c1b0c04000629000456600260ec00313259800980c1bae307200189bad30730018b20e230750018b20e641c0660506eacc060c1c4dd50331bae30623071375460b660e26ea800e2c837a600200b00492cc004c058dd6983098381baa0018980b1bad30623070375400314a08371011198161bac3072306f37540c86eb8c184c1bcdd5182c98379baa0018b20da44cc896600260b201f19800998029bac306e306b37540566eb0c170c1acdd50164dd6183718359baa02c9bad305d306b3754059375a603c60d66ea80b260b860d66ea812d2222259800998171bac3073307037540ca6eb8c08cc1c0dd5182d18381baa0018cc006600200b00492cc004cdc41bad306230713754002900044c05cdd6983198389baa0018a5041bc80926605a6eb0c1ccc1c0dd50329bae30623070375460b460e06ea8006660e460c260e06ea8c168c1c0dd500099839261054455534472004bd702444b3001980080140224464b300130643075375400313233225980099b8900198009bab306a3079375460d460f26ea801a6eb8c1f001e6eb8c1f0c1f401d01a456600266e1c004c0acdd69835183c9baa0058acc004cdc39bad307c002375a60d660f26ea8016266ebcc1f0c1f4008c080c1e4dd5002c52820ee8a5041dd14a083b8c1ec004dd6983d000983b1baa0018a5041d060ce60ea6ea8cc04800800502d4660026644653001001802c02e014800888896600200714bd7044cc896600260ea60f46ea8006264b30013076307b3754003133223322330020020012259800800c4cc20804dd399841009ba70043308201375000697ae04bd7044ca60026eb0c210040066eb4c21004c21404006610a020049112cc004cdd79ba7003374e01113308601374e6610c026e9c00ccc21804dd419b800020074bd70000c4cc21804dd399843009ba70033308601375000497ae033006006001420804375861060200284080a6002013308201008984100803cc208040190091bac3023307c37540073001375660da60f86ea8c1b4c1f0dd5183f8034c1fcc1f0dd50014c1fcc1f0dd5001c02a60246eb4c1b4c1f0dd5001cdd61811983e1baa0039bad306e307c3754007330293012375a60da60f86ea800cc1fcc1f0dd5000a0288b20f4330290073758604460f66ea800a2c83c8c1f0008cc050018dd6983e000a0f4375860ca60e66ea81a0dd6181198399baa004998151bab301a307337540d06eb8c190c1ccdd5182e98399baa004cc0041a26eb8c1d8c1ccdd5182e98399baa004803401500c4cc074dd6181198399baa0042375860ee60e86ea8005222232332259800cc00400a9464444b30010018acc004cdc78022441008a5189981380419840009ba90043308001375200697ae041f114a083e1025456600266e1ccdc09bad307d307a375460fa0066eb4c1f4c1e8dd5183e802800c56600266e1c006600201f480024466e00004dd69836983e1baa0024089159800998089bac302a307a375401646466e1e6002009375c60fe003375c60fe61000200280e8c0b8c8c8cc00400402c8966002003148002264b30013375e6106020026e9c01226eb4c20c04c2100400626600600661080200483f0dd6184100800a10002375860fe60f86ea8008dd6183f183d9baa0018a518b20f08b20f08b20f08b20f0375660f660f8002b3001307230160048a4001159800983e00244c966002603c6eb8c1e000626eb4c1e40062c83b8c1ec0122c83c9076183d80122c83891641b88acc004c15803e3300133005375860dc60d66ea80acdd6182e18359baa02c9bac306e306b3754059375a60ba60d66ea80b26eb4c078c1acdd50164c170c1acdd5025a44444b30013302e375860e660e06ea8194dd7181198381baa305a30703754003159800cc004cc0b4dd6183998381baa065375c60c460e06ea8c168c1c0dd5000c0164464b3001306c307237540031323302300115980099baf30663074375400660ee60e86ea80122b30013375e60ca60e86ea8004c1dcc1d0dd5001c4c96600260c060e86ea8006266e1cdd6983c183a9baa001375a60cc60ea6ea801229410731833183a1baa0018b20e48b20e43076307337540031641c460c860e46ea8c18cc1c8dd500120548acc004cc88ca6002003008803a00222259800801456600200314a314a083b22b30010018a508acc004cc896600260e260ec6ea8006264b30013375e60f660f06ea8004c1ecc1e0dd5183d983c1baa0038acc004cdd79835183c1baa00130693078375460f660f06ea800e266e1e60026eacc1a4c1e0dd5000cdd7183d803cdd71834803a032300e375a60d260f06ea800e2941076452820ec307a307737540031641d460f00046602000a6eb4c1e000633001003983c8014c1e4005003452820e641d883b0dd6183118381baa0653307230613070375460b460e06ea8004cc1c9301054455534472004bd7044c8ca60026eacc1d4c1d8006660526eacc064c1c8dd50339bae30633072375460b860e46ea800eb3001302e0068cc00401e00d48002444b3001301b375a60cc60ea6ea800e266e00004dd69833183a9baa0038b20e640b51641c09112cc004cdc3acc004c1bcc04c00a29000456600260f200513259800980d9bae307500189bad30760018b20e830780028b20ec41cc00315980099b87337026eb4c1e0c1d4dd5183c0021bad30783075375460f000a00313300c3758604a60ea6ea80188c8c1c6600200b375c60f4003375c60f460f600280c0dd6183c983b1baa0018b20e68b20e6183a800cc0041966eb8c1ccc1c0dd5182d18381baa001801c00900945906e45906e45906e22b3001302f00f8cc004cc014dd6183718359baa02b375860b860d66ea80b26eb4c174c1acdd50164dd6980f18359baa02c982e18359baa04b48889660026605a6eb0c1c8c1bcdd50321bae3022306f375460b260de6ea80062b300133229800801401a4464b3001306d307337540031323302400115980099baf30673075375400660f060ea6ea80122b30013375e60cc60ea6ea8004c1e0c1d4dd5001c4c966002607460ea6ea8006264b3001337120033001375660d060ee6ea8c1a0c1dcdd50034dd7183d003cdd7183d183d803a030899b870013029375a60d060ee6ea801629410751bad30793076375400314a083a0c19cc1d4dd5000c59073459073183b983a1baa0018b20e430653073375460c860e66ea800902b198161bac3072306f37540c86eb8c184c1bcdd5182c98379baa001330713060306f375460b260de6ea8004cc1c53001054455534472004bd7044c8ca60026eacc1d0c1d4006660506eacc060c1c4dd50331bae30623071375460b660e26ea800f3001006a4001225980099b88375a60c860e66ea80092000899b80001375a60c860e66ea800a2c83890192444b30013370eb3001306e30120028a4001159800983c00144c96600260346eb8c1d000626eb4c1d40062c8398c1dc00a2c83a9072000c56600266e1ccdc09bad30773074375460ee0086eb4c1dcc1d0dd5183b802800c4cc02cdd61812183a1baa00623230709800802cdd7183c800cdd7183c983d000a02e375860f060ea6ea80062c83922c839060e800330010649bae3072306f375460b260de6ea800600700240211641b51641b48a5041a48349069111919800800801912cc00400629462b3001300330700018998010011838800c52820d641b84b300133710002900044c070006200283410670896600266e2000520008a60103d87a8000899805001000a0ca22646644b30013046001899912cc004c0f8c10cdd500144c8c8c8cc8966002609a00713259800982218249baa0018991919912cc004c14800e264b30013049001899192cc004c15400a01d1641486eb8c14c004c13cdd5003c566002607a00315980098279baa00780645905045904d209a304d375400d16413c6eb8c13c004dd71827801182780098251baa0018b2090304c0058b2094375c609400260940046094002609200260886ea800a2c8210c1140044c010c1180162c8218dd7182180098220009bac304200241006e1d200e899180118208019bad303f00240f51323002303f003375a607a00481da2c81c8606c002606a002606800260660026064002605a6ea80062c8158c0bc0162c8168dd6181680098168011816800981600098139baa0058b204a1919192cc004c074c088dd5000c4c8cc8966002605400313259800981098131baa00189919191919191919191919194c004c0d8006606c017303600a981b004cc0d8022606c00f3036006981b002cc0d8012606c0073758606c004911111111112cc004c108032266040608202e26604001426604001226604001026604000e26604000c26604000a2660400082660400062b30013038303d37540051323232323298009bae30460019bae30460059bae30460049bae30460039bae304600248888966002609800d13303700b225980080144cc0ac05c40a2264b30013045304a37540031323232332259800982a001c4c8c8cc896600260b00071300b305800c8b20aa375c60aa0026eb8c154008c154004dd61829802c590511bad3051001375a60a200460a200260a000260966ea80062c8248c13400904b4590490c118004c114004c110004c10c004c0f8dd500145903c45903f0c0d8004c0d4004c0d0004c0cc004c0c8004c0c4004c0c0004c0bc004c0b8004c0b4004c0b0004c09cdd5000c590251814800c590271bae302700130280013023375400316408464b3001301d3022375400313259800980e98119baa0018981398121baa0018b2044301530233754602860466ea8c098c08cdd5000c59021198049bac30133022375402e4646600200260066eacc054c090dd5180a98121baa0022259800800c528456600266e3cdd718140008114528c4cc008008c0a4005023204c30010012259800800c52f5c113302430213025001330020023026001408c44b3001301c30213754005132323259800981480144cc018c0a000c4c966002604000315980098131baa002802c590274566002602800313232598009816001401e2c8148dd7181500098131baa0028acc004c07c00626464b3001302c002803c59029181500098131baa0028b204840908120c090dd5000c590261813800981380098111baa0028b204030040042259800980d180f9baa00289919192cc004c09c00a266010604c006264b3001301e0018992cc004c0a400626464b300130210018992cc004c0b000626601a60560020131640a4604e6ea800a2b3001301500189919194c004dd69816800cdd69816801cdd698168012444b3001303100480745902e0c0b4004c0b0004c09cdd5001459025204a30253754002605000316409860486ea800a2b300130120018acc004c090dd500140162c812a2c811102218111baa0018b20483025001302500130203754005164078456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d95900201", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolOrchestratorProtocolOrchestratorWithdraw { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "592cb3010100222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0059bae0049bae0039bae0024888888888888a60022a6600c921266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998032492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a998032493172656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e00164889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038992cc00400a264646466453001222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc0040062b300130280028cc00401a33001001804c02100b402100c402102540220110088042052302600140906eb4004c09400a00a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d2444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d806c4c966002605c0071980080646600200900f807202280720248072056375a00300d40b860560028148c0ac00a01700b805c02d02c1814800a04e375a002605000500840a4604c0028120dd6800981280140150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a488966002602060386ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009817001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009819801c0520268180dd7000a066303000140b86eb8004c0bc0090301816800a056807202280720248072056375800300d806a05c302b00140a4605600500b805c02e0168160c0a40050271bad00130280028042052302600140906eb4004c09400a00a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d2444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c0b800e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c0cc00e02901340c06eb80050331818000a05c375c002605e0048180c0b400502b40390114039012403902b1bac001806c03502e1815800a052302b002805c02e01700b40b060520028138dd6800981400140210291813000a048375a002604a005005409860460028108c08c00a007003801c00d0241810800a03e301d3754007001406922323300100100322330030013002002911192cc004c044006264b3001001801c4c9660020030048024012264b3001302500380340150221bad001802204a30220014080603c6ea80122b300130090018acc004c078dd5002400e00480fa00480d901b180e1baa0039112cc004c040c070dd5001c4c9660020030028992cc004006264b300100180244c966002003132598009811000c56600266e252004302100180344c966002604e00913259800980b800c56600260486ea801a01300840951598009807800c4c9660020030098992cc00400601500a80544c966002605600700c805a050375a00300a40ac60500028130c090dd50034566002602c00315980098121baa006804c02102540210212042408460446ea801600e8120c034c08400501f40190231baa001802c01600b005409860460028108c08c00a007003801c00d0241810800a03e301d3754007001406891111112cc004c050c080dd500744c9660020030188992cc004006264b300100180d44c96600200313259800800c072264b300100180ec076264b3001302c0038acc004c06cc09cdd500344c96600200301f8992cc004006041020899912cc00400604513259800800c08e0471332259800800c096264b3001001813409a04d1332259800800c0a2264b3001001814c0a60531332259800800c0ae264b30010018992cc00400605b13259800800c566002607800513301a00e225980080144cc070034896600200519800803c6600200b198009b87480226e1d200a9b874803122232598009819981f9baa01c8992cc00400606f13259800800c4c9660020030398992cc0040062b30013048002899912cc004c0e4006264b300100181ec4c96600200303e81f44c966002609a00713302b0012259800801401e264b30010018cc0040062600460a000704240bd042821410a0848288c13800904c40fd04a1bac00181f40f904d1825000a0903046375400b1598009818800c4c96600200303d8992cc00400607d03e8992cc004c13400e26605600244b3001002803c4c96600200319800800c4c008c14000e084817a08504282141090511827001209881fa094375800303e81f209a304a0014120608c6ea80162b300130380018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109030410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c566002607400313259800800c0f6264b300100181f40fa264b3001304d003899815800912cc00400a00f13259800800c660020031300230500038212060821410a0850424144609c004826207e8250dd6000c0fa07c8268c12800504818231baa0058acc004c028006264b300100181ec4c96600200303e81f44c966002609a00713302b0012259800801401e264b30010018cc0040062600460a000704240c5042821410a0848288c13800904c40fd04a1bac00181f40f904d1825000a0903046375400b1598009804800c4c96600200303d8992cc00400607d03e8992cc004c13400e26605600244b3001002803c4c96600200319800800c4c008c14000e084818a08504282141090511827001209881fa094375800303e81f209a304a0014120608c6ea80162b300130080018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109032410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c56600266e1d200e0018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109032410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c0f10432086410c82190432086410c82184c966002607000313259800800c0f2264b30010018acc004c12c00a3300100180440f502e40f504840f607b03d81ea0983049001411c608a6ea800a2b300130300018992cc00400607913259800800c5660026096005159800981d18231baa0018992cc00400607d13259800800c4c9660020030408992cc0040062b3001304f0028cc00400e33001001806410502b410502b410504c4106083041820a0a0304d001412c609a00503f81fc0fe07e8270c12c00504918239baa00181ea08881ea09081ec0f607b03d413060920028238c114dd500140ed04220843043375400260866ea800e074822a07503a81d40e90491823000a088304600281c40e2071038411c60880028210c100dd500e40d903d09981080c112cc00400a330012225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a0064105222232330010010052259800800c4016264b3001001899802182580100344cc014c12c008cc00c00c0050491825800a0909b80480064608a608c608c0032304530460019ba548001222222323232323259800800c4c966002608060986ea800a264b3001001822c4c96600200313259800800c11e264b30010018992cc00400609313259800800c4c96600200304b8992cc004006264b3001001826c4c96600200313259800800c13e264b30010018992cc0040060a313259800800c4c9660020030538992cc004006264b300100182ac4c96600200313259800800c15e264b30010018992cc0040060b313259800800c16a0b51332259800800c172264b30010018acc004c1a800a330010188cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c164c194dd500344c96600200305e8992cc0040060bf05f82fc17e26644b3001001830c4c966002003062831418a0c51332259800800c192264b3001001832c1960cb065899912cc0040060cf13259800800c1a20d106883444cc896600200306a8992cc0040060d706b835c1ae264b3001307900389982b809112cc00400a330010128cc004c0c8c1dcdd503248c1ecc1f0c1f0c1f000644646600200200644b30010018a508acc004c00cc1f8006294626600400460fe00283c107c48c1ecc1f0c1f0c1f0c1f0c1f0c1f0c1f00066e0120029ba5480092222223259800cc004888c8cc896600260ee005159800983b9841809baa0018a60103d87a80008a6103d8798000420405159800983b001456600260ec6106026ea80062980103d87a80008a6103d87b80004204051332259800983c800c530103d87b80008acc004c1c4006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000421004842008dd69844809843009baa0038a6103d8798000420c04841808dd69843809842009baa0033083013754002840809081011840809baa00130020033001003919191919912cc004c1dc00a29422b300130760028cc004cdd79843809842009baa0014c103d87b8000a50a51420405132332259800983d0014528c56600260e40051332259800983a1844009baa3044308901375400d133710004003133712004002843008dd69845009843809baa0035980098391843009baa3042308701375400f100189806000a108028a50421004842008c21004dd50009bad3088013085013754008610e026108026ea8005081012102023081013754002610a02610c020066108026102026ea8004c20c04004c1fcdd5000cc0e4c1f8dd5003a444b300130743080013754003132330093758610a026104026ea81c08cdd79843009841809baa001002308401308101375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c21804c20c04dd50014c21804c20c04dd5000c8c8c96600260e2610a026ea8c22404c2280400a2003132598009839000c4c02ccc22404dd418061bad308a01308701375400497ae08acc004c1e800620051002421004842008c21404dd5000a1060230880100130840137540028029300103d87b8000a50a514200051980099baf9800981f1841809baa002981f1841809baa001919192cc004c1c4c21404dd518448098450080144006264b300130720018980599844809ba83044375a611402610e026ea80092f5c1159800983d000c400a2004842009084011842809baa001420c046110020026108026ea8005005260103d8798000a50a5142000514a0840009080012100023084013081013754002600e6102026ea81bd07e22b30013069307d375461020264660020026eb0c0e8c1fcdd5184100983f9baa06c2259800800c52f5c303d87a80008101800044c8cc89660033001306e3082013754610c020074a14a284000a26610a0330014a14c103d87a8000a60103d87980004200046610a026e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c2200400400e29462660040046112020028410090860144cc21406600294298103d87a8000a60103d87980004200046610a026e9c0092f5c1133085019800a51a60103d87a8000a60103d87980004200046610a026e9ccc21404dd400080125eb81080012100023758610802610a020026eb4c21004008cc008008c210040050810144c8c96600330012259800800c520008980399801001184300800a10602984180984200800cc8cc004004dd6181e9840809baa06e2259800800c52f5c113308401374e64646610c02610e020046610c0260806108026ea8004cc21804dd499912998420099b96491165369675374727563747572652e636f6e746578743a2000373266078611202610c026ea80052201001533084013372c92011d5369675374727563747572652e626f64795f70726f7465637465643a20003732660786082610c026ea80052201001533084013372c92011b5369675374727563747572652e65787465726e616c5f6161643a20003732660786084610c026ea80052201001533084013372c9201165369675374727563747572652e7061796c6f61643a2000373266078601c610c026ea8005220100132533085013372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326607a6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002421404842808dc68009bae308901308601375400266e28c008dd718209843009baa0013371460046eb8c108c21804dd500098011bae300e3086013754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e18005208004002420c04841808dc6800981f1984300a610b4a5369676e6174757265310033086013087013084013754610e026108026ea8004cc218053010140003308601375200e97ae04bd701843009843808009bac30850100133002002308601001420c05300630800137540dd375660046100026ea81b922222323233001001006223259800983e000c4c94cc22004cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660806ea400522010013259800983f1845009baa001899194c004dd7184800800cdd7184800984880800cdd71848008012444a6611c029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e00153308e013372c92011b7665726966795f65643235353139207075626c69635f6b65793a200037326608c6ea4005220100153308e013372c9201187665726966795f65643235353139207061796c6f61643a200037326608c6ea4009220100153308e013372c92011a7665726966795f65643235353139207369676e61747572653a200037326608c6ea400d22010013253308f013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a200037326608f3001001a60103d87a8000a60103d879800042380491010010019800800c00a006b950c24004004dd61847009845809baa0018a998448099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660826ea400922010014a0844008c8cc004004024896600200314c0103d87a80008992cc004cdc79bc8375c612002002009130473308f01374e00297ae08998018019848808012114023758611e02002846808dd71846009844809baa0028acc004c1d0006264a661100266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660806ea0c014005220100132533089013372c92010e416c6c4f6620726573756c743a20003732660833001001a60103d87a8000a60103d8798000422004910100100132330010010022259800800c528c5660026600c00c611e020031330020023090010018a50422404846808dd61846009844809baa0028acc004c1ec006264a661100266e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660806ea0c014005220100132533089013372c92010e416e794f6620726573756c743a20003732660833001001a60103d87a8000a60103d879800042200491010010013301100123300500500137586118026112026ea800a2b3001307d00189919912998450099b96490112436865636b696e672041744c656173743a20003732660846ea000922010013253308b013372c92011941744c656173742073617469736669656420636f756e743a20003732660866ea000522010013253308c013372c92011041744c6561737420726573756c743a20003732660893001001a60103d87a8000a60103d8798000422c04910100100133712006002646600200200444b30010018a400113322598009980500500144c0540062002846808c24404004cc008008c2480400508f011bad308d010013758611a02611c020026112026ea800a2b3001304d0018992998440099b9649111436865636b696e67204265666f72653a20003732660806ea0005220100132533089013372c92010f4265666f726520726573756c743a20003732660833001001a60103d87a8000a60103d87980004220049101001001323259800983b9845809baa0018acc004c1dcc22c04dd518478098480080144cdc49bad308f01308c0137540020071337106eb4c23c04c23004dd5000801a112028a50422404611c020026114026ea8c114c22804dd50039bad308c0130890137540051598009826000c4c94cc22004cdcb24910436865636b696e672041667465723a20003732660806ea0005220100132533089013372c92010e416674657220726573756c743a20003732660833001001a60103d87a8000a60103d87980004220049101001001323259800983b9845809baa0018acc004c1dcc22c04dd518478098480080144cdc48019bad308f01308c0137540031337100066eb4c23c04c23004dd5000a112028a50422404611c020026114026ea8c23404c22804dd50039bad308c013089013754005132533088013372c920111436865636b696e67205363726970743a20003732660806ea4005220100132533089013372c92010f53637269707420726573756c743a20003732660833001001a60103d87a8000a60103d879800042200491010010013232330010010082259800800c528456600266ebc00cc23004c24004006294626600400461220200284500908e01180719846009ba90014bd701bae308c01308901375400484300908601210c02421804843009086011843809baa001300500544c8cc88cc008008004896600200314a115980099baf30820130860100130073308501375200697ae08a51899801001184380800a100024210046eacc00cc20404dd50379bae3083010018a9983f2481956578706563740a2020202020207361746973666965645f7061796c6f616473280a20202020202020207065726d697373696f6e2c0a20202020202020207369676e6174757265735f776974685f7061796c6f6164732c0a202020202020202073656c662e76616c69646974795f72616e67652c0a202020202020202073656c662e7769746864726177616c732c0a20202020202029001641f464b30013073001899841009ba907b3308201308301308001375406a97ae08acc004c1ac006266104026ea41eccc20804c0ecc20004dd501aa5eb822b30013042001899841009ba907b33082013002308001375406a97ae08acc004cdc3a401c0031330820137520f66610402600c6100026ea80d52f5c11598009822000c4cc20804dd483d19841009841809842009842009842009842009840009baa0354bd70456600260860031330820137520f466104026106026108026108026108026108026108026100026ea80d52f5c1159800983a000c4cc20804dd483c998410098041840009baa0354bd7044cc20804dd483c9984100981e1840009baa0354bd7020fa41f483e907d20fa41f483e8c1f8dd5184100983f9baa00823082013083013083013083013083013083013083010018a9983e2481466578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e672872656465656d65722e65787472612e696e7075745f746f5f726571756573747329001641ed153307c4912f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c6629001641ec6e50dd980320dc8302264b30010018acc004c1acc1dcdd5000c4c9660020030708992cc0040060e3071899912cc0040060e713259800800c1d20e9074899912cc0040060ed13259800800c1de0ef0778992cc004c2140400e2b300100783c44c96600200307983cc1e60f31332259800800c1ee264b300100183e41f20f907c8992cc004c2280400e2602061140202307d421c046eb800508a01184380800a10a02375c002610c02010843808c2100401d0820141e1082011bad00183ba10a023082010014200046eb4004c2040400a0e8841008c1fc00507d1bac001307e002838c1c507f183e000a0f43078375400306f41d506f837c1be0de83e8c1e800907841b10761bae00141e460ec00283a0dd7000983a80120ec307300141c46eb8004c1c80090731838000a0dc375c00260de0048380c1b400506b1bae001306c00241b460d40028340c198dd50034175063417501a417501a417501a417501a417501a417501a417501a417501a417501a417506741760bb05d82ea0d6306800141986eb0004c19c00a0b505a41a060ca0028318c19400a0b105882c41610661831800a0c2306300282b415a0ad056419060c200282f8c18400a0a905482a4151062182f800a0ba305f002829414a0a5052418060ba00282d8c17400a0a1050828414105e182d800a0b2305b002827413a09d04e417060b200282b8c16400a09904c826413105a182b800a0aa3057002825412a09504a416060aa0028298c15400a09104882441210561829800a0a23053002823411a08d046415060a20028278c134dd5001411104a111194c004006009003400444464b300130460018992cc00400600d13259800800c01e00f007803c4c96600260b400700580420ae375c00282d0c15c00505518299baa0038acc004c0f8006264b300100180344c966002003007803c4c96600260b40071330380012259800801401e264b30010018cc00402a00313002305d003402900b805c02e01682f0c16c00905940210571bac001803c01d05a182b800a0aa305337540071598009822800c4c9660020030068992cc00400600f0078992cc004c16800e26607000244b3001002803c4c9660020031980080540062600460ba006805201700b805c02d05e182d80120b280420ae3758003007803a0b43057001415460a66ea800e2b300130470018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800982e801c4cc0ec004896600200500a8992cc0040063300100d800c4c008c18000d00d403a01d00e80720c2305e002417100b41686eb000601500a417460b400282c0dd6800982c801401d05a182b800a0aa30533754007159800980b800c4c9660020030068992cc00400600f007803c4c96600260b400700580420ae375a003007416860ae00282a8c14cdd5001c566002602c00313259800800c01a264b3001001803c01e00f13259800982d001c01601082b8dd6800c01d05a182b800a0aa30533754007159800980a800c4c9660020030068992cc00400600f007803c01e264b3001305a003802c0210571bae001416860ae00282a8c14cdd5001c01505020a04140828105020a0414060a26ea800a087043821c10d051180318259baa32332253304c3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea412922010013259800982118271baa00189929982719b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800982198281baa0018992cc0040062b300130453051375400313259800800c12e264b3001001826413209904c899912cc00400609d13259800982d8014401a09e82c0c1640050571bae0013058002416460ac00282a0c148dd5000c12904f412a09504a82520ae305430513754003153304f49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164138601860a06ea8c02cc140dd5000982918279baa0018a99826a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164130646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd5980698291baa300d3052375400444b30010018a508acc004cdc79bae305600104f8a51899801001182b800a0a041511300b330530014bd7044cc00c00cc15400904e1829800a0a230010013758600e60986ea80e8896600200314bd7044cc13cc130c140004cc008008c14400504e1800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100f20a45980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c826104c1bac304f002375a609a0026466ec0dd418268009ba7304e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a60a4003337149101023a200098008054c14c00600a805100a182a80144ca6002015305200199b8a489023a200098008054c14c006600e66008008004805100a182a80120a63055001414866e29220102207d00003413c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900c209e3758007133005375a0060051323371491102682700329800800cc030dc68014cdc52450127000044004444b300133710004900044006264664530010069808802ccdc599b800025980099b88002480522903045206e414466e2ccdc0000acc004cdc4000a40291481822903720a2004401866e0c00520203370c002901019b8e00400241386eb800d0521b8a4881022c20002232330010010032259800981f800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000341248248c01801913259800800c0e207113259800800c0e6264b300100181d40ea07503a899912cc00400607913259800800c566002609600513259800981d98239baa0028992cc00400607f13259800800c4c9660020030418992cc004006264b3001001821c4c9660020030448224112089132598009829801c5660026084609c6ea801a264b300100182344c966002003047823c11e08f1332259800800c126264b3001001825412a09504a8992cc004c16400e264b300130490018992cc00400609b13259800800c13a09d04e82744c96600260ba007012827a0b4375c00282e8c168005058182b1baa00b8acc004c1040062b30013056375401700f82620ae82620a6414c60a86ea802a09682b0dd7000a0b2305600141506eb8004c1540090561829800a0a2304f375400d045413104541406eb80050531828000a09c3050002821410a0850424144609c0028260c13800a081040820410104f1826000a0943048375400503e41142600e609601103d412103d81ec0f607a8260c1240050471bae00130480024124608c0028220dd6000c0e20708238c110009042206480ea06480ea264b3001001819c0ce06713230033042004375a0030334108607e00481ea264b3001001818c0c606313230033040004375a0030314100607a00481da05c81ca05d02e81740b903d181d000a070303a00281640b205902c40ec607000281b0dd6800981b80140a5038181a800a066375a002606800502640d460640028180dd60009818801408e0468190c0bc00502d1bac001302e002810408102f1816000a0543028375400d01e409501e40a46eb000603b01d40b060520028138c0a400a03701b80dc06d02a1813800a04a302700280cc06603301940a0604a0028118c084dd5007405d01e088966002601c60346ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08c00a330010038992cc004c04c0062b30013020375400500780320428acc004c02c006264b3001001803c4c9660020030088044022011132598009813801c02a0128120dd7000a04e3024001408860406ea800a2b300130120018992cc00400600f13259800981300140260108118c09000502218101baa002803203a407480e8c078dd5000c0150084015020401600b005802a0483021001407c6042005003801c00e0068110c07c00501d180d9baa003800a030222598009807180d1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002604a007008803a044375a003006409460440028100dd700098108012044301f001407460366ea800e00280c088966002601a60326ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08800a330010038992cc004c048006264b3001001803c4c966002003159800981280144c966002602a00313259800800c02a264b30010018acc004c0a000a33001001806402d00e402d025402e01700b805a0523026001409060446ea800a2b3001300d0018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c0bc00e02701240b06eb40060228178c0b000502a1bad001302b00280720583029001409c6eb4004c0a000a0168148c09800502418111baa002804a03e407c60406ea8006010811201100880440210261811800a042301f37540051598009805000c566002603e6ea800a00f0064081006407080e0c074dd5000c015008401501f401600b005802a046302000140786040005003801c00e0068108c07800501c180d1baa003800a02e22232598009806800c4c9660020030038992cc0040060090048024012264b30013021003803401501e1bae0014084603c00280e0c068dd50024566002600a00313259800800c00e264b300100180240120090048992cc004c08400e00d00540786eb8005021180f000a038301a3754009002405c80b8c060dd50019b874800a01700b805c02d01a180b980a1baa0048acc004c02000e26464b30013009301537546032603400514a314a08098dd6980c000980a1baa0048b2022404430133014001301300445268a99804a491856616c696461746f722072657475726e65642066616c7365001365640201" + : "5915b5010100222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0059bae0049bae0039bae00248888888888966003300130073754019370e90034dc3a4001370e90022444464653001300c3754003301000698080012444b300130060038cc004c04cc040dd5002488c8cc00400400c88cc00c004c00800a6e1d2002912cc004c024c044dd500144c8c8cc896600260340070058b202e375a602e0026eb8c05c008c05c004c048dd500145901024444646465300122598009808180c1baa002899191919912cc004c08800e266010604200a26601600400d16407c603e0026eb4c07c008c07c004c078004c064dd500145901748966002602060306ea800a264646464653001375a6042003375a6042009375a604200730210024888966002604c00b13300c302500913300f00100a8b204618108009810000980f800980f000980c9baa0028b202e912cc004c040c060dd500144c8c8c8c8ca60026eb0c0840066eb4c0840126eb4c08400e604200491112cc004c098016266018604a01226601e0022646644b30013029003806c590261bae3026001375c604c00a604c00916408c30210013020001301f001301e0013019375400516405d22598009808180c1baa002899191919194c004dd61810800cdd698108024dd69810801cc0840092222598009813002c4cc030c0940244cc03c0044c8cc8966002605200700d8b204c375c604c0026eb8c098014c0980122c811860420026040002603e002603c00260326ea800a2c80ba4464b30013011001899192cc004c08000a0091640746eb4c078004c068dd5001c5660026010003159800980d1baa00380145901b45901820303018375400522598009808180c1baa00289919192cc004c08000a26464b300130150018acc004c078dd5001401a2c80fa2b3001300c001899192cc004c09000a0111640846eb4c088004c078dd500145660026028003159800980f1baa00280345901f45901c2038407060386ea8004c07c00e2c80e8c966002603800315980099b8948010c06c0062d1300a301b00140691640746ea8c078004c078004c064dd50014590172444444b30013014301c375401d13232323322598009813001c4c966002603460446ea800626464646464653001302c0019bac302c0059bad302c0049bad302c0039816001244444b3001303200689980e9bac303100b225980080144cc07c0188966002005133017005133017009198009b87480226e1d200a9b874803122232598009816981a9baa01589919192cc004c0f400a2646644b300130330028992cc004c1040062660586eb0c1000048966002005004899812982100109800982180120808b207c303c3754007159800981500144c966002608200313302c3758608000244b300100280244cc094c1080084c004c10c00904045903e181e1baa0038acc004c0c800a264b300130410018998161bac30400012259800801401226604c608400426002608600482022c81f0c0f0dd5001c5660026068005132598009820800c4cc0b0dd61820000912cc00400a009133026304200213001304300241011640f860786ea800e2b3001300a0028992cc004c1040062660586eb0c1000048966002005004899813982100109800982180120808b207c303c3754007159800980480144c966002608200313302c3758608000244b300100280244cc09cc1080084c004c10c00904045903e181e1baa0038acc004c02000a264b300130410018998161bac304000122598008014012266050608400426002608600482022c81f0c0f0dd5001c56600266e1d200e0028992cc004c1040062660586eb0c1000048966002005004899814182100109800982180120808b207c303c37540071640e881d103a207440e881d103a207430393754002264b300130320018992cc004c100006266052607e00200f1640f460766ea800e2b300130290018992cc004c100006264b30013034303c3754003132323259800982200144cc090c10c00c4cc09000402e2c8208c108004c108004c0f4dd5000c5903b181f800c5903d181d9baa0038b207240e460726ea8008c0f000e2c81d0c0ec004c0ec004c0d8dd500ac5903409981200a912cc00400a330012303b303c303c0019181d981e000cdd2a400122232598009819000c4c8c96600260820050048b207c375c607e00260766ea800e2b300130290018992cc004c1000062660566eb0c0fc00489660020050058cc00401e6082005130013042002401c81fa2c81e8c0ecdd5001c5660026062003132598009820000c4cc0acdd6181f800912cc00400a00b19800803cc10400a260026084004803903f45903d181d9baa0038acc004c0cc0062646644b300130420018998169bac30410012259800801401e33001009982180144c004c11000900920828b207e375a607e002608000260766ea800e2b30013009001899192cc004c10400a0091640f86eb4c0fc004c0ecdd5001c56600260100031323259800982080140122c81f0dd6981f800981d9baa0038acc004c01c00626464b3001304100280245903e1bae303f001303b37540071640e481c9039207240e481c9039181c9baa00248888cc8966002606860786ea800a26464646464646464646464653001304c0019826005cc13002a6098013304c0089826003cc13001a609800b304c0049826001cdd61826001244444444444b3001305800c89980c182b80b89980c00509980c00489980c00409980c00389980c00309980c00289980c00209980c0018acc004c12cc14cdd500144c8c8c8c8ca60026eb8c1700066eb8c1700166eb8c1700126eb8c17000e6eb8c1700092222259800983100344cc13402c896600200513304b01719800981418301baa05191832183298329832800c88c8cc00400400c896600200314a115980098019833800c528c4cc008008c1a000506220ca918321832983298329832983298329832800cdc024005374a9001244444464b300198009111919912cc004c19000a2b30013064306c375400314c103d87a80008a6103d879800041ad1598009831801456600260c660d86ea80062980103d87a80008a6103d87b800041ad13322598009833000c530103d87b80008acc004c174006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041b88370dd6983918379baa0038a6103d879800041b48368dd6983818369baa003306c3754002835906b18351baa00130020033001003919191919912cc004c19000a29422b300130630028cc004cdd7983818369baa0014c103d87b8000a50a5141ad13233225980098338014528c56600260bc0051332259800983018389baa303a3072375400d1337100040031337120040028380dd6983998381baa00359800982f18379baa30383070375400f100189806000a0dc8a5041b88370c1b4dd50009bad3071306e375400860e060da6ea800506b20d6306a375400260dc60de00660da60d46ea8004c1b0004c1a0dd5000cc0bcc19cdd5003a444b300130613069375400313233009375860dc60d66ea81748cdd7983798361baa001002306d306a375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1bcc1b0dd50014c1bcc1b0dd5000c8c8c96600260ba60dc6ea8c1c8c1cc00a200313259800982f000c4c02ccc1c8dd418061bad30733070375400497ae08acc004c19c0062005100241b88370c1b8dd5000a0da3071001306d37540028029300103d87b8000a50a5141a91980099baf9800981a18361baa002981a18361baa001919192cc004c174c1b8dd51839183980144006264b3001305e00189805998391ba8337006eb4c1ccc1c0dd50012400297ae08acc004c19c0062005100241b88370c1b8dd5000a0da3071001306d37540028029300103d8798000a50a5141a914a0835106a20d4306d306a3754002600e60d46ea817106822b300130553066375460d464660020026eb0c0c0c1a0dd5183598341baa0592259800800c52f5c303d87a80008101800044c8cc89660033001305a306b375460de0074a14a283522660dd30014a14c103d87a8000a60103d879800041a8660dc6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c1c400400e294626600400460e4002836106f44cc1ba600294298103d87a8000a60103d879800041a8660dc6e9c0092f5c113306e9800a51a60103d87a8000a60103d879800041a8660dc6e9ccc1b8dd400080125eb8106a20d4375860da60dc0026eb4c1b4008cc008008c1b400506a44c8c9660033001306c306d00199198008009bac3033306a37540b644b30010018a5eb822660da6e9cc8c8cc1bcc1c0008cc1bcc0d8c1b4dd5000998379ba9332233714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241bc8378dc68009bae3072306f375400266e28c008dd7181b98379baa0013371460046eb8c0e0c1bcdd500098011bae300e306f3754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241b48368dc6800981a19837a610b4a5369676e617475726531003306f3070306d375460e060da6ea8004cc1bd3010140003306f375200e97ae04bd70183798380009bac306e00133002002306f00141b13006306937540b73756600460d26ea816d222232330010010052232598009833800c4c8c96600260d260e26ea8006264653001375c60ee005375c60ee60f0003375c60ee002b95183b8009bac30753072375400314a08380c8cc004004020896600200314c103d87a80008992cc004cdc79bc8375c60ee0020091303b33076374e00297ae0899801801983c00120e4375860ec00283a0dd7183998381baa0028acc004c178006264660020026eb0c1d0c1c4dd5001912cc00400629462b3001330050053075001899801001183b000c52820e041cd1598009833000c4cc038dd6183998381baa0022330040040018acc004c1a000626466e24dd6983a00099198008009bac307530760022259800800c52000899912cc004cc02002000a26022003100141cc60ec0026600400460ee00283a0c1c0dd50014566002607c003132332259800983098391baa0028acc004c184c1c8dd5183b183b801c4cdc49bad3076307337540040031337106eb4c1d8c1ccdd5001000a0e28a5041c460e80026eb4c1d0c1c4dd500198381baa30383070375400b159800981e800c4c8cc896600260c260e46ea800a2b300130613072375460ec60ee0071337120026eb4c1d8c1ccdd500144cdc40009bad307630733754004838a2941071183a0009bad30743071375400660e06ea8c1ccc1c0dd5002c4c8c8cc004004018896600200314a115980099baf003307230760018a51899801001183b800a0e241d06016660e460e660e06ea80092f5c0837106e20dc41b8837106e18371baa00144c8cc88cc008008004896600200314a115980099baf306b306f00130073306e375200697ae08a518998010011838000a0d441b46eacc00cc1a8dd502e1bae306c0018b20ce32598009830000c4cc1acdd483299835983618349baa02e4bd70456600260ae00313306b37520ca660d6606260d26ea80b92f5c1159800981a800c4cc1acdd483299835980118349baa02e4bd70456600266e1d200e0018998359ba90653306b30063069375405c97ae08acc004c0dc0062660d66ea4190cc1acc1b0c1b4c1b4c1b4c1b4c1a4dd501725eb822b300130360018998359ba90643306b306c306d306d306d306d306d3069375405c97ae08acc004c1840062660d66ea418ccc1acc020c1a4dd501725eb822660d66ea418ccc1acc0c8c1a4dd501725eb8106720ce419c833906720ce419c60ce6ea8c1acc1a0dd500411835983618361836183618361836000c590654590651b94376600c8992cc004c160c180dd5000c4c8c8c8cc896600260d4007132323322598009837001c4c02cc1b80322c8358dd718358009bae306b002306b001375860d200b16419c6eb4c19c004dd698338011833800983300098309baa0018b20be3063002418516417c305c001305b001305a001305900130543754005164149164154304c001304b001304a00130490013048001304700130460013045001304400130430013042001303d37540051640ec600660766ea8c8c8c966002606a607a6ea8006264b30013035303e375400313259800981b981f9baa0018991919912cc004c12000e200b164114608a0026eb8c114008c114004c100dd5000c5903e1821181f9baa0018b207a3007303e3754600c607c6ea8c104c0f8dd5000c5903c19198008009bac3006303e375406044b30010018a60103d87a80008992cc004c8cc004004c014dd5980498209baa30093041375400444b30010018a508acc004cdc79bae304500103f8a518998010011823000a080410d13007330420014bd7044cc00c00cc11000903e1821000a08030010012259800800c52f5c113303f303c304000133002002304100140f8600200289919912cc004c0f800626644b30013033303b375400513232323322598009822801c4c966002607260826ea8006264646644b3001304a0038992cc004c0f800626464b3001304d00280745904a1bae304b0013047375400f159800981a800c566002608e6ea801e0191641211641148228c114dd50034590471bae3047001375c608e004608e00260846ea80062c8200c1100162c8210dd71821000982100118210009820800981e1baa0028b2074303d00113004303e0058b2076375c607600260780026eb0c0e800903822646004606e0066eb4c0d400903344c8c008c0d400cdd6981980120628b205e1816000981580098150009814800981400098119baa0018b204230250058b204637586046002604600460460026044002603a6ea803a2c80d844b3001300f30173754005132323259800980f80144cc018c07800c4c9660026026003159800980e1baa002802c5901d4566002601400313232598009811001401e2c80f8dd71810000980e1baa0028acc004c04800626464b30013022002803c5901f1810000980e1baa0028b2034406880d0c068dd5000c5901c180e800980e800980c1baa0028b202c22598009807180b1baa00289919192cc004c07800a26600c603a006264b300130120018992cc004c08000626464b300130150018992cc004c08c0062660166044002013164080603c6ea800a2b3001300c00189919194c004dd69812000cdd69812001cdd698120012444b300130280048074590250c090004c08c004c078dd500145901c2038301c3754002603e00316407460366ea800a2b300130090018acc004c06cdd500140162c80e22c80c9019180c9baa0018b2036301c001301c001301737540051640544464b3001300e001899192cc004c07400a0091640686eb8c06c004c05cdd5001c566002600a0031323259800980e80140122c80d0dd7180d800980b9baa0038b202a4054602a6ea80091598009804001c4c8c966002601260226ea8c054c05800a294629410101bad3014001301037540091640388070601e6020002601e0088a4d1365640141", + Type.Tuple([PolicyId, ScriptHash, ScriptHash, ScriptHash]), + [proxyPolicyId, mintValidator, stakeValidator, managementValidator], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolOrchestratorProtocolOrchestratorPublish { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "592cb3010100222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0059bae0049bae0039bae0024888888888888a60022a6600c921266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998032492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a998032493172656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e00164889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038992cc00400a264646466453001222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc0040062b300130280028cc00401a33001001804c02100b402100c402102540220110088042052302600140906eb4004c09400a00a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d2444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d806c4c966002605c0071980080646600200900f807202280720248072056375a00300d40b860560028148c0ac00a01700b805c02d02c1814800a04e375a002605000500840a4604c0028120dd6800981280140150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a488966002602060386ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009817001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009819801c0520268180dd7000a066303000140b86eb8004c0bc0090301816800a056807202280720248072056375800300d806a05c302b00140a4605600500b805c02e0168160c0a40050271bad00130280028042052302600140906eb4004c09400a00a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d2444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c0b800e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c0cc00e02901340c06eb80050331818000a05c375c002605e0048180c0b400502b40390114039012403902b1bac001806c03502e1815800a052302b002805c02e01700b40b060520028138dd6800981400140210291813000a048375a002604a005005409860460028108c08c00a007003801c00d0241810800a03e301d3754007001406922323300100100322330030013002002911192cc004c044006264b3001001801c4c9660020030048024012264b3001302500380340150221bad001802204a30220014080603c6ea80122b300130090018acc004c078dd5002400e00480fa00480d901b180e1baa0039112cc004c040c070dd5001c4c9660020030028992cc004006264b300100180244c966002003132598009811000c56600266e252004302100180344c966002604e00913259800980b800c56600260486ea801a01300840951598009807800c4c9660020030098992cc00400601500a80544c966002605600700c805a050375a00300a40ac60500028130c090dd50034566002602c00315980098121baa006804c02102540210212042408460446ea801600e8120c034c08400501f40190231baa001802c01600b005409860460028108c08c00a007003801c00d0241810800a03e301d3754007001406891111112cc004c050c080dd500744c9660020030188992cc004006264b300100180d44c96600200313259800800c072264b300100180ec076264b3001302c0038acc004c06cc09cdd500344c96600200301f8992cc004006041020899912cc00400604513259800800c08e0471332259800800c096264b3001001813409a04d1332259800800c0a2264b3001001814c0a60531332259800800c0ae264b30010018992cc00400605b13259800800c566002607800513301a00e225980080144cc070034896600200519800803c6600200b198009b87480226e1d200a9b874803122232598009819981f9baa01c8992cc00400606f13259800800c4c9660020030398992cc0040062b30013048002899912cc004c0e4006264b300100181ec4c96600200303e81f44c966002609a00713302b0012259800801401e264b30010018cc0040062600460a000704240bd042821410a0848288c13800904c40fd04a1bac00181f40f904d1825000a0903046375400b1598009818800c4c96600200303d8992cc00400607d03e8992cc004c13400e26605600244b3001002803c4c96600200319800800c4c008c14000e084817a08504282141090511827001209881fa094375800303e81f209a304a0014120608c6ea80162b300130380018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109030410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c566002607400313259800800c0f6264b300100181f40fa264b3001304d003899815800912cc00400a00f13259800800c660020031300230500038212060821410a0850424144609c004826207e8250dd6000c0fa07c8268c12800504818231baa0058acc004c028006264b300100181ec4c96600200303e81f44c966002609a00713302b0012259800801401e264b30010018cc0040062600460a000704240c5042821410a0848288c13800904c40fd04a1bac00181f40f904d1825000a0903046375400b1598009804800c4c96600200303d8992cc00400607d03e8992cc004c13400e26605600244b3001002803c4c96600200319800800c4c008c14000e084818a08504282141090511827001209881fa094375800303e81f209a304a0014120608c6ea80162b300130080018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109032410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c56600266e1d200e0018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109032410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c0f10432086410c82190432086410c82184c966002607000313259800800c0f2264b30010018acc004c12c00a3300100180440f502e40f504840f607b03d81ea0983049001411c608a6ea800a2b300130300018992cc00400607913259800800c5660026096005159800981d18231baa0018992cc00400607d13259800800c4c9660020030408992cc0040062b3001304f0028cc00400e33001001806410502b410502b410504c4106083041820a0a0304d001412c609a00503f81fc0fe07e8270c12c00504918239baa00181ea08881ea09081ec0f607b03d413060920028238c114dd500140ed04220843043375400260866ea800e074822a07503a81d40e90491823000a088304600281c40e2071038411c60880028210c100dd500e40d903d09981080c112cc00400a330012225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a0064105222232330010010052259800800c4016264b3001001899802182580100344cc014c12c008cc00c00c0050491825800a0909b80480064608a608c608c0032304530460019ba548001222222323232323259800800c4c966002608060986ea800a264b3001001822c4c96600200313259800800c11e264b30010018992cc00400609313259800800c4c96600200304b8992cc004006264b3001001826c4c96600200313259800800c13e264b30010018992cc0040060a313259800800c4c9660020030538992cc004006264b300100182ac4c96600200313259800800c15e264b30010018992cc0040060b313259800800c16a0b51332259800800c172264b30010018acc004c1a800a330010188cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c164c194dd500344c96600200305e8992cc0040060bf05f82fc17e26644b3001001830c4c966002003062831418a0c51332259800800c192264b3001001832c1960cb065899912cc0040060cf13259800800c1a20d106883444cc896600200306a8992cc0040060d706b835c1ae264b3001307900389982b809112cc00400a330010128cc004c0c8c1dcdd503248c1ecc1f0c1f0c1f000644646600200200644b30010018a508acc004c00cc1f8006294626600400460fe00283c107c48c1ecc1f0c1f0c1f0c1f0c1f0c1f0c1f00066e0120029ba5480092222223259800cc004888c8cc896600260ee005159800983b9841809baa0018a60103d87a80008a6103d8798000420405159800983b001456600260ec6106026ea80062980103d87a80008a6103d87b80004204051332259800983c800c530103d87b80008acc004c1c4006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000421004842008dd69844809843009baa0038a6103d8798000420c04841808dd69843809842009baa0033083013754002840809081011840809baa00130020033001003919191919912cc004c1dc00a29422b300130760028cc004cdd79843809842009baa0014c103d87b8000a50a51420405132332259800983d0014528c56600260e40051332259800983a1844009baa3044308901375400d133710004003133712004002843008dd69845009843809baa0035980098391843009baa3042308701375400f100189806000a108028a50421004842008c21004dd50009bad3088013085013754008610e026108026ea8005081012102023081013754002610a02610c020066108026102026ea8004c20c04004c1fcdd5000cc0e4c1f8dd5003a444b300130743080013754003132330093758610a026104026ea81c08cdd79843009841809baa001002308401308101375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c21804c20c04dd50014c21804c20c04dd5000c8c8c96600260e2610a026ea8c22404c2280400a2003132598009839000c4c02ccc22404dd418061bad308a01308701375400497ae08acc004c1e800620051002421004842008c21404dd5000a1060230880100130840137540028029300103d87b8000a50a514200051980099baf9800981f1841809baa002981f1841809baa001919192cc004c1c4c21404dd518448098450080144006264b300130720018980599844809ba83044375a611402610e026ea80092f5c1159800983d000c400a2004842009084011842809baa001420c046110020026108026ea8005005260103d8798000a50a5142000514a0840009080012100023084013081013754002600e6102026ea81bd07e22b30013069307d375461020264660020026eb0c0e8c1fcdd5184100983f9baa06c2259800800c52f5c303d87a80008101800044c8cc89660033001306e3082013754610c020074a14a284000a26610a0330014a14c103d87a8000a60103d87980004200046610a026e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c2200400400e29462660040046112020028410090860144cc21406600294298103d87a8000a60103d87980004200046610a026e9c0092f5c1133085019800a51a60103d87a8000a60103d87980004200046610a026e9ccc21404dd400080125eb81080012100023758610802610a020026eb4c21004008cc008008c210040050810144c8c96600330012259800800c520008980399801001184300800a10602984180984200800cc8cc004004dd6181e9840809baa06e2259800800c52f5c113308401374e64646610c02610e020046610c0260806108026ea8004cc21804dd499912998420099b96491165369675374727563747572652e636f6e746578743a2000373266078611202610c026ea80052201001533084013372c92011d5369675374727563747572652e626f64795f70726f7465637465643a20003732660786082610c026ea80052201001533084013372c92011b5369675374727563747572652e65787465726e616c5f6161643a20003732660786084610c026ea80052201001533084013372c9201165369675374727563747572652e7061796c6f61643a2000373266078601c610c026ea8005220100132533085013372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326607a6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002421404842808dc68009bae308901308601375400266e28c008dd718209843009baa0013371460046eb8c108c21804dd500098011bae300e3086013754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e18005208004002420c04841808dc6800981f1984300a610b4a5369676e6174757265310033086013087013084013754610e026108026ea8004cc218053010140003308601375200e97ae04bd701843009843808009bac30850100133002002308601001420c05300630800137540dd375660046100026ea81b922222323233001001006223259800983e000c4c94cc22004cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660806ea400522010013259800983f1845009baa001899194c004dd7184800800cdd7184800984880800cdd71848008012444a6611c029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e00153308e013372c92011b7665726966795f65643235353139207075626c69635f6b65793a200037326608c6ea4005220100153308e013372c9201187665726966795f65643235353139207061796c6f61643a200037326608c6ea4009220100153308e013372c92011a7665726966795f65643235353139207369676e61747572653a200037326608c6ea400d22010013253308f013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a200037326608f3001001a60103d87a8000a60103d879800042380491010010019800800c00a006b950c24004004dd61847009845809baa0018a998448099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660826ea400922010014a0844008c8cc004004024896600200314c0103d87a80008992cc004cdc79bc8375c612002002009130473308f01374e00297ae08998018019848808012114023758611e02002846808dd71846009844809baa0028acc004c1d0006264a661100266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660806ea0c014005220100132533089013372c92010e416c6c4f6620726573756c743a20003732660833001001a60103d87a8000a60103d8798000422004910100100132330010010022259800800c528c5660026600c00c611e020031330020023090010018a50422404846808dd61846009844809baa0028acc004c1ec006264a661100266e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660806ea0c014005220100132533089013372c92010e416e794f6620726573756c743a20003732660833001001a60103d87a8000a60103d879800042200491010010013301100123300500500137586118026112026ea800a2b3001307d00189919912998450099b96490112436865636b696e672041744c656173743a20003732660846ea000922010013253308b013372c92011941744c656173742073617469736669656420636f756e743a20003732660866ea000522010013253308c013372c92011041744c6561737420726573756c743a20003732660893001001a60103d87a8000a60103d8798000422c04910100100133712006002646600200200444b30010018a400113322598009980500500144c0540062002846808c24404004cc008008c2480400508f011bad308d010013758611a02611c020026112026ea800a2b3001304d0018992998440099b9649111436865636b696e67204265666f72653a20003732660806ea0005220100132533089013372c92010f4265666f726520726573756c743a20003732660833001001a60103d87a8000a60103d87980004220049101001001323259800983b9845809baa0018acc004c1dcc22c04dd518478098480080144cdc49bad308f01308c0137540020071337106eb4c23c04c23004dd5000801a112028a50422404611c020026114026ea8c114c22804dd50039bad308c0130890137540051598009826000c4c94cc22004cdcb24910436865636b696e672041667465723a20003732660806ea0005220100132533089013372c92010e416674657220726573756c743a20003732660833001001a60103d87a8000a60103d87980004220049101001001323259800983b9845809baa0018acc004c1dcc22c04dd518478098480080144cdc48019bad308f01308c0137540031337100066eb4c23c04c23004dd5000a112028a50422404611c020026114026ea8c23404c22804dd50039bad308c013089013754005132533088013372c920111436865636b696e67205363726970743a20003732660806ea4005220100132533089013372c92010f53637269707420726573756c743a20003732660833001001a60103d87a8000a60103d879800042200491010010013232330010010082259800800c528456600266ebc00cc23004c24004006294626600400461220200284500908e01180719846009ba90014bd701bae308c01308901375400484300908601210c02421804843009086011843809baa001300500544c8cc88cc008008004896600200314a115980099baf30820130860100130073308501375200697ae08a51899801001184380800a100024210046eacc00cc20404dd50379bae3083010018a9983f2481956578706563740a2020202020207361746973666965645f7061796c6f616473280a20202020202020207065726d697373696f6e2c0a20202020202020207369676e6174757265735f776974685f7061796c6f6164732c0a202020202020202073656c662e76616c69646974795f72616e67652c0a202020202020202073656c662e7769746864726177616c732c0a20202020202029001641f464b30013073001899841009ba907b3308201308301308001375406a97ae08acc004c1ac006266104026ea41eccc20804c0ecc20004dd501aa5eb822b30013042001899841009ba907b33082013002308001375406a97ae08acc004cdc3a401c0031330820137520f66610402600c6100026ea80d52f5c11598009822000c4cc20804dd483d19841009841809842009842009842009842009840009baa0354bd70456600260860031330820137520f466104026106026108026108026108026108026108026100026ea80d52f5c1159800983a000c4cc20804dd483c998410098041840009baa0354bd7044cc20804dd483c9984100981e1840009baa0354bd7020fa41f483e907d20fa41f483e8c1f8dd5184100983f9baa00823082013083013083013083013083013083013083010018a9983e2481466578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e672872656465656d65722e65787472612e696e7075745f746f5f726571756573747329001641ed153307c4912f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c6629001641ec6e50dd980320dc8302264b30010018acc004c1acc1dcdd5000c4c9660020030708992cc0040060e3071899912cc0040060e713259800800c1d20e9074899912cc0040060ed13259800800c1de0ef0778992cc004c2140400e2b300100783c44c96600200307983cc1e60f31332259800800c1ee264b300100183e41f20f907c8992cc004c2280400e2602061140202307d421c046eb800508a01184380800a10a02375c002610c02010843808c2100401d0820141e1082011bad00183ba10a023082010014200046eb4004c2040400a0e8841008c1fc00507d1bac001307e002838c1c507f183e000a0f43078375400306f41d506f837c1be0de83e8c1e800907841b10761bae00141e460ec00283a0dd7000983a80120ec307300141c46eb8004c1c80090731838000a0dc375c00260de0048380c1b400506b1bae001306c00241b460d40028340c198dd50034175063417501a417501a417501a417501a417501a417501a417501a417501a417501a417506741760bb05d82ea0d6306800141986eb0004c19c00a0b505a41a060ca0028318c19400a0b105882c41610661831800a0c2306300282b415a0ad056419060c200282f8c18400a0a905482a4151062182f800a0ba305f002829414a0a5052418060ba00282d8c17400a0a1050828414105e182d800a0b2305b002827413a09d04e417060b200282b8c16400a09904c826413105a182b800a0aa3057002825412a09504a416060aa0028298c15400a09104882441210561829800a0a23053002823411a08d046415060a20028278c134dd5001411104a111194c004006009003400444464b300130460018992cc00400600d13259800800c01e00f007803c4c96600260b400700580420ae375c00282d0c15c00505518299baa0038acc004c0f8006264b300100180344c966002003007803c4c96600260b40071330380012259800801401e264b30010018cc00402a00313002305d003402900b805c02e01682f0c16c00905940210571bac001803c01d05a182b800a0aa305337540071598009822800c4c9660020030068992cc00400600f0078992cc004c16800e26607000244b3001002803c4c9660020031980080540062600460ba006805201700b805c02d05e182d80120b280420ae3758003007803a0b43057001415460a66ea800e2b300130470018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800982e801c4cc0ec004896600200500a8992cc0040063300100d800c4c008c18000d00d403a01d00e80720c2305e002417100b41686eb000601500a417460b400282c0dd6800982c801401d05a182b800a0aa30533754007159800980b800c4c9660020030068992cc00400600f007803c4c96600260b400700580420ae375a003007416860ae00282a8c14cdd5001c566002602c00313259800800c01a264b3001001803c01e00f13259800982d001c01601082b8dd6800c01d05a182b800a0aa30533754007159800980a800c4c9660020030068992cc00400600f007803c01e264b3001305a003802c0210571bae001416860ae00282a8c14cdd5001c01505020a04140828105020a0414060a26ea800a087043821c10d051180318259baa32332253304c3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea412922010013259800982118271baa00189929982719b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800982198281baa0018992cc0040062b300130453051375400313259800800c12e264b3001001826413209904c899912cc00400609d13259800982d8014401a09e82c0c1640050571bae0013058002416460ac00282a0c148dd5000c12904f412a09504a82520ae305430513754003153304f49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164138601860a06ea8c02cc140dd5000982918279baa0018a99826a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164130646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd5980698291baa300d3052375400444b30010018a508acc004cdc79bae305600104f8a51899801001182b800a0a041511300b330530014bd7044cc00c00cc15400904e1829800a0a230010013758600e60986ea80e8896600200314bd7044cc13cc130c140004cc008008c14400504e1800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100f20a45980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c826104c1bac304f002375a609a0026466ec0dd418268009ba7304e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a60a4003337149101023a200098008054c14c00600a805100a182a80144ca6002015305200199b8a489023a200098008054c14c006600e66008008004805100a182a80120a63055001414866e29220102207d00003413c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900c209e3758007133005375a0060051323371491102682700329800800cc030dc68014cdc52450127000044004444b300133710004900044006264664530010069808802ccdc599b800025980099b88002480522903045206e414466e2ccdc0000acc004cdc4000a40291481822903720a2004401866e0c00520203370c002901019b8e00400241386eb800d0521b8a4881022c20002232330010010032259800981f800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000341248248c01801913259800800c0e207113259800800c0e6264b300100181d40ea07503a899912cc00400607913259800800c566002609600513259800981d98239baa0028992cc00400607f13259800800c4c9660020030418992cc004006264b3001001821c4c9660020030448224112089132598009829801c5660026084609c6ea801a264b300100182344c966002003047823c11e08f1332259800800c126264b3001001825412a09504a8992cc004c16400e264b300130490018992cc00400609b13259800800c13a09d04e82744c96600260ba007012827a0b4375c00282e8c168005058182b1baa00b8acc004c1040062b30013056375401700f82620ae82620a6414c60a86ea802a09682b0dd7000a0b2305600141506eb8004c1540090561829800a0a2304f375400d045413104541406eb80050531828000a09c3050002821410a0850424144609c0028260c13800a081040820410104f1826000a0943048375400503e41142600e609601103d412103d81ec0f607a8260c1240050471bae00130480024124608c0028220dd6000c0e20708238c110009042206480ea06480ea264b3001001819c0ce06713230033042004375a0030334108607e00481ea264b3001001818c0c606313230033040004375a0030314100607a00481da05c81ca05d02e81740b903d181d000a070303a00281640b205902c40ec607000281b0dd6800981b80140a5038181a800a066375a002606800502640d460640028180dd60009818801408e0468190c0bc00502d1bac001302e002810408102f1816000a0543028375400d01e409501e40a46eb000603b01d40b060520028138c0a400a03701b80dc06d02a1813800a04a302700280cc06603301940a0604a0028118c084dd5007405d01e088966002601c60346ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08c00a330010038992cc004c04c0062b30013020375400500780320428acc004c02c006264b3001001803c4c9660020030088044022011132598009813801c02a0128120dd7000a04e3024001408860406ea800a2b300130120018992cc00400600f13259800981300140260108118c09000502218101baa002803203a407480e8c078dd5000c0150084015020401600b005802a0483021001407c6042005003801c00e0068110c07c00501d180d9baa003800a030222598009807180d1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002604a007008803a044375a003006409460440028100dd700098108012044301f001407460366ea800e00280c088966002601a60326ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08800a330010038992cc004c048006264b3001001803c4c966002003159800981280144c966002602a00313259800800c02a264b30010018acc004c0a000a33001001806402d00e402d025402e01700b805a0523026001409060446ea800a2b3001300d0018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c0bc00e02701240b06eb40060228178c0b000502a1bad001302b00280720583029001409c6eb4004c0a000a0168148c09800502418111baa002804a03e407c60406ea8006010811201100880440210261811800a042301f37540051598009805000c566002603e6ea800a00f0064081006407080e0c074dd5000c015008401501f401600b005802a046302000140786040005003801c00e0068108c07800501c180d1baa003800a02e22232598009806800c4c9660020030038992cc0040060090048024012264b30013021003803401501e1bae0014084603c00280e0c068dd50024566002600a00313259800800c00e264b300100180240120090048992cc004c08400e00d00540786eb8005021180f000a038301a3754009002405c80b8c060dd50019b874800a01700b805c02d01a180b980a1baa0048acc004c02000e26464b30013009301537546032603400514a314a08098dd6980c000980a1baa0048b2022404430133014001301300445268a99804a491856616c696461746f722072657475726e65642066616c7365001365640201" + : "5915b5010100222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0059bae0049bae0039bae00248888888888966003300130073754019370e90034dc3a4001370e90022444464653001300c3754003301000698080012444b300130060038cc004c04cc040dd5002488c8cc00400400c88cc00c004c00800a6e1d2002912cc004c024c044dd500144c8c8cc896600260340070058b202e375a602e0026eb8c05c008c05c004c048dd500145901024444646465300122598009808180c1baa002899191919912cc004c08800e266010604200a26601600400d16407c603e0026eb4c07c008c07c004c078004c064dd500145901748966002602060306ea800a264646464653001375a6042003375a6042009375a604200730210024888966002604c00b13300c302500913300f00100a8b204618108009810000980f800980f000980c9baa0028b202e912cc004c040c060dd500144c8c8c8c8ca60026eb0c0840066eb4c0840126eb4c08400e604200491112cc004c098016266018604a01226601e0022646644b30013029003806c590261bae3026001375c604c00a604c00916408c30210013020001301f001301e0013019375400516405d22598009808180c1baa002899191919194c004dd61810800cdd698108024dd69810801cc0840092222598009813002c4cc030c0940244cc03c0044c8cc8966002605200700d8b204c375c604c0026eb8c098014c0980122c811860420026040002603e002603c00260326ea800a2c80ba4464b30013011001899192cc004c08000a0091640746eb4c078004c068dd5001c5660026010003159800980d1baa00380145901b45901820303018375400522598009808180c1baa00289919192cc004c08000a26464b300130150018acc004c078dd5001401a2c80fa2b3001300c001899192cc004c09000a0111640846eb4c088004c078dd500145660026028003159800980f1baa00280345901f45901c2038407060386ea8004c07c00e2c80e8c966002603800315980099b8948010c06c0062d1300a301b00140691640746ea8c078004c078004c064dd50014590172444444b30013014301c375401d13232323322598009813001c4c966002603460446ea800626464646464653001302c0019bac302c0059bad302c0049bad302c0039816001244444b3001303200689980e9bac303100b225980080144cc07c0188966002005133017005133017009198009b87480226e1d200a9b874803122232598009816981a9baa01589919192cc004c0f400a2646644b300130330028992cc004c1040062660586eb0c1000048966002005004899812982100109800982180120808b207c303c3754007159800981500144c966002608200313302c3758608000244b300100280244cc094c1080084c004c10c00904045903e181e1baa0038acc004c0c800a264b300130410018998161bac30400012259800801401226604c608400426002608600482022c81f0c0f0dd5001c5660026068005132598009820800c4cc0b0dd61820000912cc00400a009133026304200213001304300241011640f860786ea800e2b3001300a0028992cc004c1040062660586eb0c1000048966002005004899813982100109800982180120808b207c303c3754007159800980480144c966002608200313302c3758608000244b300100280244cc09cc1080084c004c10c00904045903e181e1baa0038acc004c02000a264b300130410018998161bac304000122598008014012266050608400426002608600482022c81f0c0f0dd5001c56600266e1d200e0028992cc004c1040062660586eb0c1000048966002005004899814182100109800982180120808b207c303c37540071640e881d103a207440e881d103a207430393754002264b300130320018992cc004c100006266052607e00200f1640f460766ea800e2b300130290018992cc004c100006264b30013034303c3754003132323259800982200144cc090c10c00c4cc09000402e2c8208c108004c108004c0f4dd5000c5903b181f800c5903d181d9baa0038b207240e460726ea8008c0f000e2c81d0c0ec004c0ec004c0d8dd500ac5903409981200a912cc00400a330012303b303c303c0019181d981e000cdd2a400122232598009819000c4c8c96600260820050048b207c375c607e00260766ea800e2b300130290018992cc004c1000062660566eb0c0fc00489660020050058cc00401e6082005130013042002401c81fa2c81e8c0ecdd5001c5660026062003132598009820000c4cc0acdd6181f800912cc00400a00b19800803cc10400a260026084004803903f45903d181d9baa0038acc004c0cc0062646644b300130420018998169bac30410012259800801401e33001009982180144c004c11000900920828b207e375a607e002608000260766ea800e2b30013009001899192cc004c10400a0091640f86eb4c0fc004c0ecdd5001c56600260100031323259800982080140122c81f0dd6981f800981d9baa0038acc004c01c00626464b3001304100280245903e1bae303f001303b37540071640e481c9039207240e481c9039181c9baa00248888cc8966002606860786ea800a26464646464646464646464653001304c0019826005cc13002a6098013304c0089826003cc13001a609800b304c0049826001cdd61826001244444444444b3001305800c89980c182b80b89980c00509980c00489980c00409980c00389980c00309980c00289980c00209980c0018acc004c12cc14cdd500144c8c8c8c8ca60026eb8c1700066eb8c1700166eb8c1700126eb8c17000e6eb8c1700092222259800983100344cc13402c896600200513304b01719800981418301baa05191832183298329832800c88c8cc00400400c896600200314a115980098019833800c528c4cc008008c1a000506220ca918321832983298329832983298329832800cdc024005374a9001244444464b300198009111919912cc004c19000a2b30013064306c375400314c103d87a80008a6103d879800041ad1598009831801456600260c660d86ea80062980103d87a80008a6103d87b800041ad13322598009833000c530103d87b80008acc004c174006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041b88370dd6983918379baa0038a6103d879800041b48368dd6983818369baa003306c3754002835906b18351baa00130020033001003919191919912cc004c19000a29422b300130630028cc004cdd7983818369baa0014c103d87b8000a50a5141ad13233225980098338014528c56600260bc0051332259800983018389baa303a3072375400d1337100040031337120040028380dd6983998381baa00359800982f18379baa30383070375400f100189806000a0dc8a5041b88370c1b4dd50009bad3071306e375400860e060da6ea800506b20d6306a375400260dc60de00660da60d46ea8004c1b0004c1a0dd5000cc0bcc19cdd5003a444b300130613069375400313233009375860dc60d66ea81748cdd7983798361baa001002306d306a375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1bcc1b0dd50014c1bcc1b0dd5000c8c8c96600260ba60dc6ea8c1c8c1cc00a200313259800982f000c4c02ccc1c8dd418061bad30733070375400497ae08acc004c19c0062005100241b88370c1b8dd5000a0da3071001306d37540028029300103d87b8000a50a5141a91980099baf9800981a18361baa002981a18361baa001919192cc004c174c1b8dd51839183980144006264b3001305e00189805998391ba8337006eb4c1ccc1c0dd50012400297ae08acc004c19c0062005100241b88370c1b8dd5000a0da3071001306d37540028029300103d8798000a50a5141a914a0835106a20d4306d306a3754002600e60d46ea817106822b300130553066375460d464660020026eb0c0c0c1a0dd5183598341baa0592259800800c52f5c303d87a80008101800044c8cc89660033001305a306b375460de0074a14a283522660dd30014a14c103d87a8000a60103d879800041a8660dc6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c1c400400e294626600400460e4002836106f44cc1ba600294298103d87a8000a60103d879800041a8660dc6e9c0092f5c113306e9800a51a60103d87a8000a60103d879800041a8660dc6e9ccc1b8dd400080125eb8106a20d4375860da60dc0026eb4c1b4008cc008008c1b400506a44c8c9660033001306c306d00199198008009bac3033306a37540b644b30010018a5eb822660da6e9cc8c8cc1bcc1c0008cc1bcc0d8c1b4dd5000998379ba9332233714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241bc8378dc68009bae3072306f375400266e28c008dd7181b98379baa0013371460046eb8c0e0c1bcdd500098011bae300e306f3754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241b48368dc6800981a19837a610b4a5369676e617475726531003306f3070306d375460e060da6ea8004cc1bd3010140003306f375200e97ae04bd70183798380009bac306e00133002002306f00141b13006306937540b73756600460d26ea816d222232330010010052232598009833800c4c8c96600260d260e26ea8006264653001375c60ee005375c60ee60f0003375c60ee002b95183b8009bac30753072375400314a08380c8cc004004020896600200314c103d87a80008992cc004cdc79bc8375c60ee0020091303b33076374e00297ae0899801801983c00120e4375860ec00283a0dd7183998381baa0028acc004c178006264660020026eb0c1d0c1c4dd5001912cc00400629462b3001330050053075001899801001183b000c52820e041cd1598009833000c4cc038dd6183998381baa0022330040040018acc004c1a000626466e24dd6983a00099198008009bac307530760022259800800c52000899912cc004cc02002000a26022003100141cc60ec0026600400460ee00283a0c1c0dd50014566002607c003132332259800983098391baa0028acc004c184c1c8dd5183b183b801c4cdc49bad3076307337540040031337106eb4c1d8c1ccdd5001000a0e28a5041c460e80026eb4c1d0c1c4dd500198381baa30383070375400b159800981e800c4c8cc896600260c260e46ea800a2b300130613072375460ec60ee0071337120026eb4c1d8c1ccdd500144cdc40009bad307630733754004838a2941071183a0009bad30743071375400660e06ea8c1ccc1c0dd5002c4c8c8cc004004018896600200314a115980099baf003307230760018a51899801001183b800a0e241d06016660e460e660e06ea80092f5c0837106e20dc41b8837106e18371baa00144c8cc88cc008008004896600200314a115980099baf306b306f00130073306e375200697ae08a518998010011838000a0d441b46eacc00cc1a8dd502e1bae306c0018b20ce32598009830000c4cc1acdd483299835983618349baa02e4bd70456600260ae00313306b37520ca660d6606260d26ea80b92f5c1159800981a800c4cc1acdd483299835980118349baa02e4bd70456600266e1d200e0018998359ba90653306b30063069375405c97ae08acc004c0dc0062660d66ea4190cc1acc1b0c1b4c1b4c1b4c1b4c1a4dd501725eb822b300130360018998359ba90643306b306c306d306d306d306d306d3069375405c97ae08acc004c1840062660d66ea418ccc1acc020c1a4dd501725eb822660d66ea418ccc1acc0c8c1a4dd501725eb8106720ce419c833906720ce419c60ce6ea8c1acc1a0dd500411835983618361836183618361836000c590654590651b94376600c8992cc004c160c180dd5000c4c8c8c8cc896600260d4007132323322598009837001c4c02cc1b80322c8358dd718358009bae306b002306b001375860d200b16419c6eb4c19c004dd698338011833800983300098309baa0018b20be3063002418516417c305c001305b001305a001305900130543754005164149164154304c001304b001304a00130490013048001304700130460013045001304400130430013042001303d37540051640ec600660766ea8c8c8c966002606a607a6ea8006264b30013035303e375400313259800981b981f9baa0018991919912cc004c12000e200b164114608a0026eb8c114008c114004c100dd5000c5903e1821181f9baa0018b207a3007303e3754600c607c6ea8c104c0f8dd5000c5903c19198008009bac3006303e375406044b30010018a60103d87a80008992cc004c8cc004004c014dd5980498209baa30093041375400444b30010018a508acc004cdc79bae304500103f8a518998010011823000a080410d13007330420014bd7044cc00c00cc11000903e1821000a08030010012259800800c52f5c113303f303c304000133002002304100140f8600200289919912cc004c0f800626644b30013033303b375400513232323322598009822801c4c966002607260826ea8006264646644b3001304a0038992cc004c0f800626464b3001304d00280745904a1bae304b0013047375400f159800981a800c566002608e6ea801e0191641211641148228c114dd50034590471bae3047001375c608e004608e00260846ea80062c8200c1100162c8210dd71821000982100118210009820800981e1baa0028b2074303d00113004303e0058b2076375c607600260780026eb0c0e800903822646004606e0066eb4c0d400903344c8c008c0d400cdd6981980120628b205e1816000981580098150009814800981400098119baa0018b204230250058b204637586046002604600460460026044002603a6ea803a2c80d844b3001300f30173754005132323259800980f80144cc018c07800c4c9660026026003159800980e1baa002802c5901d4566002601400313232598009811001401e2c80f8dd71810000980e1baa0028acc004c04800626464b30013022002803c5901f1810000980e1baa0028b2034406880d0c068dd5000c5901c180e800980e800980c1baa0028b202c22598009807180b1baa00289919192cc004c07800a26600c603a006264b300130120018992cc004c08000626464b300130150018992cc004c08c0062660166044002013164080603c6ea800a2b3001300c00189919194c004dd69812000cdd69812001cdd698120012444b300130280048074590250c090004c08c004c078dd500145901c2038301c3754002603e00316407460366ea800a2b300130090018acc004c06cdd500140162c80e22c80c9019180c9baa0018b2036301c001301c001301737540051640544464b3001300e001899192cc004c07400a0091640686eb8c06c004c05cdd5001c566002600a0031323259800980e80140122c80d0dd7180d800980b9baa0038b202a4054602a6ea80091598009804001c4c8c966002601260226ea8c054c05800a294629410101bad3014001301037540091640388070601e6020002601e0088a4d1365640141", + Type.Tuple([PolicyId, ScriptHash, ScriptHash, ScriptHash]), + [proxyPolicyId, mintValidator, stakeValidator, managementValidator], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolOrchestratorProtocolOrchestratorElse { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "592cb3010100222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0059bae0049bae0039bae0024888888888888a60022a6600c921266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998032492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a998032493172656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e00164889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038992cc00400a264646466453001222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc0040062b300130280028cc00401a33001001804c02100b402100c402102540220110088042052302600140906eb4004c09400a00a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d2444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d806c4c966002605c0071980080646600200900f807202280720248072056375a00300d40b860560028148c0ac00a01700b805c02d02c1814800a04e375a002605000500840a4604c0028120dd6800981280140150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a488966002602060386ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009817001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009819801c0520268180dd7000a066303000140b86eb8004c0bc0090301816800a056807202280720248072056375800300d806a05c302b00140a4605600500b805c02e0168160c0a40050271bad00130280028042052302600140906eb4004c09400a00a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d2444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c0b800e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c0cc00e02901340c06eb80050331818000a05c375c002605e0048180c0b400502b40390114039012403902b1bac001806c03502e1815800a052302b002805c02e01700b40b060520028138dd6800981400140210291813000a048375a002604a005005409860460028108c08c00a007003801c00d0241810800a03e301d3754007001406922323300100100322330030013002002911192cc004c044006264b3001001801c4c9660020030048024012264b3001302500380340150221bad001802204a30220014080603c6ea80122b300130090018acc004c078dd5002400e00480fa00480d901b180e1baa0039112cc004c040c070dd5001c4c9660020030028992cc004006264b300100180244c966002003132598009811000c56600266e252004302100180344c966002604e00913259800980b800c56600260486ea801a01300840951598009807800c4c9660020030098992cc00400601500a80544c966002605600700c805a050375a00300a40ac60500028130c090dd50034566002602c00315980098121baa006804c02102540210212042408460446ea801600e8120c034c08400501f40190231baa001802c01600b005409860460028108c08c00a007003801c00d0241810800a03e301d3754007001406891111112cc004c050c080dd500744c9660020030188992cc004006264b300100180d44c96600200313259800800c072264b300100180ec076264b3001302c0038acc004c06cc09cdd500344c96600200301f8992cc004006041020899912cc00400604513259800800c08e0471332259800800c096264b3001001813409a04d1332259800800c0a2264b3001001814c0a60531332259800800c0ae264b30010018992cc00400605b13259800800c566002607800513301a00e225980080144cc070034896600200519800803c6600200b198009b87480226e1d200a9b874803122232598009819981f9baa01c8992cc00400606f13259800800c4c9660020030398992cc0040062b30013048002899912cc004c0e4006264b300100181ec4c96600200303e81f44c966002609a00713302b0012259800801401e264b30010018cc0040062600460a000704240bd042821410a0848288c13800904c40fd04a1bac00181f40f904d1825000a0903046375400b1598009818800c4c96600200303d8992cc00400607d03e8992cc004c13400e26605600244b3001002803c4c96600200319800800c4c008c14000e084817a08504282141090511827001209881fa094375800303e81f209a304a0014120608c6ea80162b300130380018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109030410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c566002607400313259800800c0f6264b300100181f40fa264b3001304d003899815800912cc00400a00f13259800800c660020031300230500038212060821410a0850424144609c004826207e8250dd6000c0fa07c8268c12800504818231baa0058acc004c028006264b300100181ec4c96600200303e81f44c966002609a00713302b0012259800801401e264b30010018cc0040062600460a000704240c5042821410a0848288c13800904c40fd04a1bac00181f40f904d1825000a0903046375400b1598009804800c4c96600200303d8992cc00400607d03e8992cc004c13400e26605600244b3001002803c4c96600200319800800c4c008c14000e084818a08504282141090511827001209881fa094375800303e81f209a304a0014120608c6ea80162b300130080018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109032410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c56600266e1d200e0018992cc00400607b13259800800c0fa07d132598009826801c4cc0ac00489660020050078992cc00400633001001898011828001c109032410a08504282120a2304e002413103f41286eb000607d03e413460940028240c118dd5002c0f10432086410c82190432086410c82184c966002607000313259800800c0f2264b30010018acc004c12c00a3300100180440f502e40f504840f607b03d81ea0983049001411c608a6ea800a2b300130300018992cc00400607913259800800c5660026096005159800981d18231baa0018992cc00400607d13259800800c4c9660020030408992cc0040062b3001304f0028cc00400e33001001806410502b410502b410504c4106083041820a0a0304d001412c609a00503f81fc0fe07e8270c12c00504918239baa00181ea08881ea09081ec0f607b03d413060920028238c114dd500140ed04220843043375400260866ea800e074822a07503a81d40e90491823000a088304600281c40e2071038411c60880028210c100dd500e40d903d09981080c112cc00400a330012225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a0064105222232330010010052259800800c4016264b3001001899802182580100344cc014c12c008cc00c00c0050491825800a0909b80480064608a608c608c0032304530460019ba548001222222323232323259800800c4c966002608060986ea800a264b3001001822c4c96600200313259800800c11e264b30010018992cc00400609313259800800c4c96600200304b8992cc004006264b3001001826c4c96600200313259800800c13e264b30010018992cc0040060a313259800800c4c9660020030538992cc004006264b300100182ac4c96600200313259800800c15e264b30010018992cc0040060b313259800800c16a0b51332259800800c172264b30010018acc004c1a800a330010188cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c164c194dd500344c96600200305e8992cc0040060bf05f82fc17e26644b3001001830c4c966002003062831418a0c51332259800800c192264b3001001832c1960cb065899912cc0040060cf13259800800c1a20d106883444cc896600200306a8992cc0040060d706b835c1ae264b3001307900389982b809112cc00400a330010128cc004c0c8c1dcdd503248c1ecc1f0c1f0c1f000644646600200200644b30010018a508acc004c00cc1f8006294626600400460fe00283c107c48c1ecc1f0c1f0c1f0c1f0c1f0c1f0c1f00066e0120029ba5480092222223259800cc004888c8cc896600260ee005159800983b9841809baa0018a60103d87a80008a6103d8798000420405159800983b001456600260ec6106026ea80062980103d87a80008a6103d87b80004204051332259800983c800c530103d87b80008acc004c1c4006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000421004842008dd69844809843009baa0038a6103d8798000420c04841808dd69843809842009baa0033083013754002840809081011840809baa00130020033001003919191919912cc004c1dc00a29422b300130760028cc004cdd79843809842009baa0014c103d87b8000a50a51420405132332259800983d0014528c56600260e40051332259800983a1844009baa3044308901375400d133710004003133712004002843008dd69845009843809baa0035980098391843009baa3042308701375400f100189806000a108028a50421004842008c21004dd50009bad3088013085013754008610e026108026ea8005081012102023081013754002610a02610c020066108026102026ea8004c20c04004c1fcdd5000cc0e4c1f8dd5003a444b300130743080013754003132330093758610a026104026ea81c08cdd79843009841809baa001002308401308101375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c21804c20c04dd50014c21804c20c04dd5000c8c8c96600260e2610a026ea8c22404c2280400a2003132598009839000c4c02ccc22404dd418061bad308a01308701375400497ae08acc004c1e800620051002421004842008c21404dd5000a1060230880100130840137540028029300103d87b8000a50a514200051980099baf9800981f1841809baa002981f1841809baa001919192cc004c1c4c21404dd518448098450080144006264b300130720018980599844809ba83044375a611402610e026ea80092f5c1159800983d000c400a2004842009084011842809baa001420c046110020026108026ea8005005260103d8798000a50a5142000514a0840009080012100023084013081013754002600e6102026ea81bd07e22b30013069307d375461020264660020026eb0c0e8c1fcdd5184100983f9baa06c2259800800c52f5c303d87a80008101800044c8cc89660033001306e3082013754610c020074a14a284000a26610a0330014a14c103d87a8000a60103d87980004200046610a026e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c2200400400e29462660040046112020028410090860144cc21406600294298103d87a8000a60103d87980004200046610a026e9c0092f5c1133085019800a51a60103d87a8000a60103d87980004200046610a026e9ccc21404dd400080125eb81080012100023758610802610a020026eb4c21004008cc008008c210040050810144c8c96600330012259800800c520008980399801001184300800a10602984180984200800cc8cc004004dd6181e9840809baa06e2259800800c52f5c113308401374e64646610c02610e020046610c0260806108026ea8004cc21804dd499912998420099b96491165369675374727563747572652e636f6e746578743a2000373266078611202610c026ea80052201001533084013372c92011d5369675374727563747572652e626f64795f70726f7465637465643a20003732660786082610c026ea80052201001533084013372c92011b5369675374727563747572652e65787465726e616c5f6161643a20003732660786084610c026ea80052201001533084013372c9201165369675374727563747572652e7061796c6f61643a2000373266078601c610c026ea8005220100132533085013372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326607a6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002421404842808dc68009bae308901308601375400266e28c008dd718209843009baa0013371460046eb8c108c21804dd500098011bae300e3086013754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e18005208004002420c04841808dc6800981f1984300a610b4a5369676e6174757265310033086013087013084013754610e026108026ea8004cc218053010140003308601375200e97ae04bd701843009843808009bac30850100133002002308601001420c05300630800137540dd375660046100026ea81b922222323233001001006223259800983e000c4c94cc22004cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660806ea400522010013259800983f1845009baa001899194c004dd7184800800cdd7184800984880800cdd71848008012444a6611c029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e00153308e013372c92011b7665726966795f65643235353139207075626c69635f6b65793a200037326608c6ea4005220100153308e013372c9201187665726966795f65643235353139207061796c6f61643a200037326608c6ea4009220100153308e013372c92011a7665726966795f65643235353139207369676e61747572653a200037326608c6ea400d22010013253308f013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a200037326608f3001001a60103d87a8000a60103d879800042380491010010019800800c00a006b950c24004004dd61847009845809baa0018a998448099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660826ea400922010014a0844008c8cc004004024896600200314c0103d87a80008992cc004cdc79bc8375c612002002009130473308f01374e00297ae08998018019848808012114023758611e02002846808dd71846009844809baa0028acc004c1d0006264a661100266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660806ea0c014005220100132533089013372c92010e416c6c4f6620726573756c743a20003732660833001001a60103d87a8000a60103d8798000422004910100100132330010010022259800800c528c5660026600c00c611e020031330020023090010018a50422404846808dd61846009844809baa0028acc004c1ec006264a661100266e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660806ea0c014005220100132533089013372c92010e416e794f6620726573756c743a20003732660833001001a60103d87a8000a60103d879800042200491010010013301100123300500500137586118026112026ea800a2b3001307d00189919912998450099b96490112436865636b696e672041744c656173743a20003732660846ea000922010013253308b013372c92011941744c656173742073617469736669656420636f756e743a20003732660866ea000522010013253308c013372c92011041744c6561737420726573756c743a20003732660893001001a60103d87a8000a60103d8798000422c04910100100133712006002646600200200444b30010018a400113322598009980500500144c0540062002846808c24404004cc008008c2480400508f011bad308d010013758611a02611c020026112026ea800a2b3001304d0018992998440099b9649111436865636b696e67204265666f72653a20003732660806ea0005220100132533089013372c92010f4265666f726520726573756c743a20003732660833001001a60103d87a8000a60103d87980004220049101001001323259800983b9845809baa0018acc004c1dcc22c04dd518478098480080144cdc49bad308f01308c0137540020071337106eb4c23c04c23004dd5000801a112028a50422404611c020026114026ea8c114c22804dd50039bad308c0130890137540051598009826000c4c94cc22004cdcb24910436865636b696e672041667465723a20003732660806ea0005220100132533089013372c92010e416674657220726573756c743a20003732660833001001a60103d87a8000a60103d87980004220049101001001323259800983b9845809baa0018acc004c1dcc22c04dd518478098480080144cdc48019bad308f01308c0137540031337100066eb4c23c04c23004dd5000a112028a50422404611c020026114026ea8c23404c22804dd50039bad308c013089013754005132533088013372c920111436865636b696e67205363726970743a20003732660806ea4005220100132533089013372c92010f53637269707420726573756c743a20003732660833001001a60103d87a8000a60103d879800042200491010010013232330010010082259800800c528456600266ebc00cc23004c24004006294626600400461220200284500908e01180719846009ba90014bd701bae308c01308901375400484300908601210c02421804843009086011843809baa001300500544c8cc88cc008008004896600200314a115980099baf30820130860100130073308501375200697ae08a51899801001184380800a100024210046eacc00cc20404dd50379bae3083010018a9983f2481956578706563740a2020202020207361746973666965645f7061796c6f616473280a20202020202020207065726d697373696f6e2c0a20202020202020207369676e6174757265735f776974685f7061796c6f6164732c0a202020202020202073656c662e76616c69646974795f72616e67652c0a202020202020202073656c662e7769746864726177616c732c0a20202020202029001641f464b30013073001899841009ba907b3308201308301308001375406a97ae08acc004c1ac006266104026ea41eccc20804c0ecc20004dd501aa5eb822b30013042001899841009ba907b33082013002308001375406a97ae08acc004cdc3a401c0031330820137520f66610402600c6100026ea80d52f5c11598009822000c4cc20804dd483d19841009841809842009842009842009842009840009baa0354bd70456600260860031330820137520f466104026106026108026108026108026108026108026100026ea80d52f5c1159800983a000c4cc20804dd483c998410098041840009baa0354bd7044cc20804dd483c9984100981e1840009baa0354bd7020fa41f483e907d20fa41f483e8c1f8dd5184100983f9baa00823082013083013083013083013083013083013083010018a9983e2481466578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e672872656465656d65722e65787472612e696e7075745f746f5f726571756573747329001641ed153307c4912f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c6629001641ec6e50dd980320dc8302264b30010018acc004c1acc1dcdd5000c4c9660020030708992cc0040060e3071899912cc0040060e713259800800c1d20e9074899912cc0040060ed13259800800c1de0ef0778992cc004c2140400e2b300100783c44c96600200307983cc1e60f31332259800800c1ee264b300100183e41f20f907c8992cc004c2280400e2602061140202307d421c046eb800508a01184380800a10a02375c002610c02010843808c2100401d0820141e1082011bad00183ba10a023082010014200046eb4004c2040400a0e8841008c1fc00507d1bac001307e002838c1c507f183e000a0f43078375400306f41d506f837c1be0de83e8c1e800907841b10761bae00141e460ec00283a0dd7000983a80120ec307300141c46eb8004c1c80090731838000a0dc375c00260de0048380c1b400506b1bae001306c00241b460d40028340c198dd50034175063417501a417501a417501a417501a417501a417501a417501a417501a417501a417506741760bb05d82ea0d6306800141986eb0004c19c00a0b505a41a060ca0028318c19400a0b105882c41610661831800a0c2306300282b415a0ad056419060c200282f8c18400a0a905482a4151062182f800a0ba305f002829414a0a5052418060ba00282d8c17400a0a1050828414105e182d800a0b2305b002827413a09d04e417060b200282b8c16400a09904c826413105a182b800a0aa3057002825412a09504a416060aa0028298c15400a09104882441210561829800a0a23053002823411a08d046415060a20028278c134dd5001411104a111194c004006009003400444464b300130460018992cc00400600d13259800800c01e00f007803c4c96600260b400700580420ae375c00282d0c15c00505518299baa0038acc004c0f8006264b300100180344c966002003007803c4c96600260b40071330380012259800801401e264b30010018cc00402a00313002305d003402900b805c02e01682f0c16c00905940210571bac001803c01d05a182b800a0aa305337540071598009822800c4c9660020030068992cc00400600f0078992cc004c16800e26607000244b3001002803c4c9660020031980080540062600460ba006805201700b805c02d05e182d80120b280420ae3758003007803a0b43057001415460a66ea800e2b300130470018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800982e801c4cc0ec004896600200500a8992cc0040063300100d800c4c008c18000d00d403a01d00e80720c2305e002417100b41686eb000601500a417460b400282c0dd6800982c801401d05a182b800a0aa30533754007159800980b800c4c9660020030068992cc00400600f007803c4c96600260b400700580420ae375a003007416860ae00282a8c14cdd5001c566002602c00313259800800c01a264b3001001803c01e00f13259800982d001c01601082b8dd6800c01d05a182b800a0aa30533754007159800980a800c4c9660020030068992cc00400600f007803c01e264b3001305a003802c0210571bae001416860ae00282a8c14cdd5001c01505020a04140828105020a0414060a26ea800a087043821c10d051180318259baa32332253304c3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea412922010013259800982118271baa00189929982719b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800982198281baa0018992cc0040062b300130453051375400313259800800c12e264b3001001826413209904c899912cc00400609d13259800982d8014401a09e82c0c1640050571bae0013058002416460ac00282a0c148dd5000c12904f412a09504a82520ae305430513754003153304f49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164138601860a06ea8c02cc140dd5000982918279baa0018a99826a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164130646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd5980698291baa300d3052375400444b30010018a508acc004cdc79bae305600104f8a51899801001182b800a0a041511300b330530014bd7044cc00c00cc15400904e1829800a0a230010013758600e60986ea80e8896600200314bd7044cc13cc130c140004cc008008c14400504e1800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100f20a45980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c826104c1bac304f002375a609a0026466ec0dd418268009ba7304e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a60a4003337149101023a200098008054c14c00600a805100a182a80144ca6002015305200199b8a489023a200098008054c14c006600e66008008004805100a182a80120a63055001414866e29220102207d00003413c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900c209e3758007133005375a0060051323371491102682700329800800cc030dc68014cdc52450127000044004444b300133710004900044006264664530010069808802ccdc599b800025980099b88002480522903045206e414466e2ccdc0000acc004cdc4000a40291481822903720a2004401866e0c00520203370c002901019b8e00400241386eb800d0521b8a4881022c20002232330010010032259800981f800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000341248248c01801913259800800c0e207113259800800c0e6264b300100181d40ea07503a899912cc00400607913259800800c566002609600513259800981d98239baa0028992cc00400607f13259800800c4c9660020030418992cc004006264b3001001821c4c9660020030448224112089132598009829801c5660026084609c6ea801a264b300100182344c966002003047823c11e08f1332259800800c126264b3001001825412a09504a8992cc004c16400e264b300130490018992cc00400609b13259800800c13a09d04e82744c96600260ba007012827a0b4375c00282e8c168005058182b1baa00b8acc004c1040062b30013056375401700f82620ae82620a6414c60a86ea802a09682b0dd7000a0b2305600141506eb8004c1540090561829800a0a2304f375400d045413104541406eb80050531828000a09c3050002821410a0850424144609c0028260c13800a081040820410104f1826000a0943048375400503e41142600e609601103d412103d81ec0f607a8260c1240050471bae00130480024124608c0028220dd6000c0e20708238c110009042206480ea06480ea264b3001001819c0ce06713230033042004375a0030334108607e00481ea264b3001001818c0c606313230033040004375a0030314100607a00481da05c81ca05d02e81740b903d181d000a070303a00281640b205902c40ec607000281b0dd6800981b80140a5038181a800a066375a002606800502640d460640028180dd60009818801408e0468190c0bc00502d1bac001302e002810408102f1816000a0543028375400d01e409501e40a46eb000603b01d40b060520028138c0a400a03701b80dc06d02a1813800a04a302700280cc06603301940a0604a0028118c084dd5007405d01e088966002601c60346ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08c00a330010038992cc004c04c0062b30013020375400500780320428acc004c02c006264b3001001803c4c9660020030088044022011132598009813801c02a0128120dd7000a04e3024001408860406ea800a2b300130120018992cc00400600f13259800981300140260108118c09000502218101baa002803203a407480e8c078dd5000c0150084015020401600b005802a0483021001407c6042005003801c00e0068110c07c00501d180d9baa003800a030222598009807180d1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002604a007008803a044375a003006409460440028100dd700098108012044301f001407460366ea800e00280c088966002601a60326ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08800a330010038992cc004c048006264b3001001803c4c966002003159800981280144c966002602a00313259800800c02a264b30010018acc004c0a000a33001001806402d00e402d025402e01700b805a0523026001409060446ea800a2b3001300d0018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c0bc00e02701240b06eb40060228178c0b000502a1bad001302b00280720583029001409c6eb4004c0a000a0168148c09800502418111baa002804a03e407c60406ea8006010811201100880440210261811800a042301f37540051598009805000c566002603e6ea800a00f0064081006407080e0c074dd5000c015008401501f401600b005802a046302000140786040005003801c00e0068108c07800501c180d1baa003800a02e22232598009806800c4c9660020030038992cc0040060090048024012264b30013021003803401501e1bae0014084603c00280e0c068dd50024566002600a00313259800800c00e264b300100180240120090048992cc004c08400e00d00540786eb8005021180f000a038301a3754009002405c80b8c060dd50019b874800a01700b805c02d01a180b980a1baa0048acc004c02000e26464b30013009301537546032603400514a314a08098dd6980c000980a1baa0048b2022404430133014001301300445268a99804a491856616c696461746f722072657475726e65642066616c7365001365640201" + : "5915b5010100222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0059bae0049bae0039bae00248888888888966003300130073754019370e90034dc3a4001370e90022444464653001300c3754003301000698080012444b300130060038cc004c04cc040dd5002488c8cc00400400c88cc00c004c00800a6e1d2002912cc004c024c044dd500144c8c8cc896600260340070058b202e375a602e0026eb8c05c008c05c004c048dd500145901024444646465300122598009808180c1baa002899191919912cc004c08800e266010604200a26601600400d16407c603e0026eb4c07c008c07c004c078004c064dd500145901748966002602060306ea800a264646464653001375a6042003375a6042009375a604200730210024888966002604c00b13300c302500913300f00100a8b204618108009810000980f800980f000980c9baa0028b202e912cc004c040c060dd500144c8c8c8c8ca60026eb0c0840066eb4c0840126eb4c08400e604200491112cc004c098016266018604a01226601e0022646644b30013029003806c590261bae3026001375c604c00a604c00916408c30210013020001301f001301e0013019375400516405d22598009808180c1baa002899191919194c004dd61810800cdd698108024dd69810801cc0840092222598009813002c4cc030c0940244cc03c0044c8cc8966002605200700d8b204c375c604c0026eb8c098014c0980122c811860420026040002603e002603c00260326ea800a2c80ba4464b30013011001899192cc004c08000a0091640746eb4c078004c068dd5001c5660026010003159800980d1baa00380145901b45901820303018375400522598009808180c1baa00289919192cc004c08000a26464b300130150018acc004c078dd5001401a2c80fa2b3001300c001899192cc004c09000a0111640846eb4c088004c078dd500145660026028003159800980f1baa00280345901f45901c2038407060386ea8004c07c00e2c80e8c966002603800315980099b8948010c06c0062d1300a301b00140691640746ea8c078004c078004c064dd50014590172444444b30013014301c375401d13232323322598009813001c4c966002603460446ea800626464646464653001302c0019bac302c0059bad302c0049bad302c0039816001244444b3001303200689980e9bac303100b225980080144cc07c0188966002005133017005133017009198009b87480226e1d200a9b874803122232598009816981a9baa01589919192cc004c0f400a2646644b300130330028992cc004c1040062660586eb0c1000048966002005004899812982100109800982180120808b207c303c3754007159800981500144c966002608200313302c3758608000244b300100280244cc094c1080084c004c10c00904045903e181e1baa0038acc004c0c800a264b300130410018998161bac30400012259800801401226604c608400426002608600482022c81f0c0f0dd5001c5660026068005132598009820800c4cc0b0dd61820000912cc00400a009133026304200213001304300241011640f860786ea800e2b3001300a0028992cc004c1040062660586eb0c1000048966002005004899813982100109800982180120808b207c303c3754007159800980480144c966002608200313302c3758608000244b300100280244cc09cc1080084c004c10c00904045903e181e1baa0038acc004c02000a264b300130410018998161bac304000122598008014012266050608400426002608600482022c81f0c0f0dd5001c56600266e1d200e0028992cc004c1040062660586eb0c1000048966002005004899814182100109800982180120808b207c303c37540071640e881d103a207440e881d103a207430393754002264b300130320018992cc004c100006266052607e00200f1640f460766ea800e2b300130290018992cc004c100006264b30013034303c3754003132323259800982200144cc090c10c00c4cc09000402e2c8208c108004c108004c0f4dd5000c5903b181f800c5903d181d9baa0038b207240e460726ea8008c0f000e2c81d0c0ec004c0ec004c0d8dd500ac5903409981200a912cc00400a330012303b303c303c0019181d981e000cdd2a400122232598009819000c4c8c96600260820050048b207c375c607e00260766ea800e2b300130290018992cc004c1000062660566eb0c0fc00489660020050058cc00401e6082005130013042002401c81fa2c81e8c0ecdd5001c5660026062003132598009820000c4cc0acdd6181f800912cc00400a00b19800803cc10400a260026084004803903f45903d181d9baa0038acc004c0cc0062646644b300130420018998169bac30410012259800801401e33001009982180144c004c11000900920828b207e375a607e002608000260766ea800e2b30013009001899192cc004c10400a0091640f86eb4c0fc004c0ecdd5001c56600260100031323259800982080140122c81f0dd6981f800981d9baa0038acc004c01c00626464b3001304100280245903e1bae303f001303b37540071640e481c9039207240e481c9039181c9baa00248888cc8966002606860786ea800a26464646464646464646464653001304c0019826005cc13002a6098013304c0089826003cc13001a609800b304c0049826001cdd61826001244444444444b3001305800c89980c182b80b89980c00509980c00489980c00409980c00389980c00309980c00289980c00209980c0018acc004c12cc14cdd500144c8c8c8c8ca60026eb8c1700066eb8c1700166eb8c1700126eb8c17000e6eb8c1700092222259800983100344cc13402c896600200513304b01719800981418301baa05191832183298329832800c88c8cc00400400c896600200314a115980098019833800c528c4cc008008c1a000506220ca918321832983298329832983298329832800cdc024005374a9001244444464b300198009111919912cc004c19000a2b30013064306c375400314c103d87a80008a6103d879800041ad1598009831801456600260c660d86ea80062980103d87a80008a6103d87b800041ad13322598009833000c530103d87b80008acc004c174006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041b88370dd6983918379baa0038a6103d879800041b48368dd6983818369baa003306c3754002835906b18351baa00130020033001003919191919912cc004c19000a29422b300130630028cc004cdd7983818369baa0014c103d87b8000a50a5141ad13233225980098338014528c56600260bc0051332259800983018389baa303a3072375400d1337100040031337120040028380dd6983998381baa00359800982f18379baa30383070375400f100189806000a0dc8a5041b88370c1b4dd50009bad3071306e375400860e060da6ea800506b20d6306a375400260dc60de00660da60d46ea8004c1b0004c1a0dd5000cc0bcc19cdd5003a444b300130613069375400313233009375860dc60d66ea81748cdd7983798361baa001002306d306a375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1bcc1b0dd50014c1bcc1b0dd5000c8c8c96600260ba60dc6ea8c1c8c1cc00a200313259800982f000c4c02ccc1c8dd418061bad30733070375400497ae08acc004c19c0062005100241b88370c1b8dd5000a0da3071001306d37540028029300103d87b8000a50a5141a91980099baf9800981a18361baa002981a18361baa001919192cc004c174c1b8dd51839183980144006264b3001305e00189805998391ba8337006eb4c1ccc1c0dd50012400297ae08acc004c19c0062005100241b88370c1b8dd5000a0da3071001306d37540028029300103d8798000a50a5141a914a0835106a20d4306d306a3754002600e60d46ea817106822b300130553066375460d464660020026eb0c0c0c1a0dd5183598341baa0592259800800c52f5c303d87a80008101800044c8cc89660033001305a306b375460de0074a14a283522660dd30014a14c103d87a8000a60103d879800041a8660dc6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c1c400400e294626600400460e4002836106f44cc1ba600294298103d87a8000a60103d879800041a8660dc6e9c0092f5c113306e9800a51a60103d87a8000a60103d879800041a8660dc6e9ccc1b8dd400080125eb8106a20d4375860da60dc0026eb4c1b4008cc008008c1b400506a44c8c9660033001306c306d00199198008009bac3033306a37540b644b30010018a5eb822660da6e9cc8c8cc1bcc1c0008cc1bcc0d8c1b4dd5000998379ba9332233714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241bc8378dc68009bae3072306f375400266e28c008dd7181b98379baa0013371460046eb8c0e0c1bcdd500098011bae300e306f3754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241b48368dc6800981a19837a610b4a5369676e617475726531003306f3070306d375460e060da6ea8004cc1bd3010140003306f375200e97ae04bd70183798380009bac306e00133002002306f00141b13006306937540b73756600460d26ea816d222232330010010052232598009833800c4c8c96600260d260e26ea8006264653001375c60ee005375c60ee60f0003375c60ee002b95183b8009bac30753072375400314a08380c8cc004004020896600200314c103d87a80008992cc004cdc79bc8375c60ee0020091303b33076374e00297ae0899801801983c00120e4375860ec00283a0dd7183998381baa0028acc004c178006264660020026eb0c1d0c1c4dd5001912cc00400629462b3001330050053075001899801001183b000c52820e041cd1598009833000c4cc038dd6183998381baa0022330040040018acc004c1a000626466e24dd6983a00099198008009bac307530760022259800800c52000899912cc004cc02002000a26022003100141cc60ec0026600400460ee00283a0c1c0dd50014566002607c003132332259800983098391baa0028acc004c184c1c8dd5183b183b801c4cdc49bad3076307337540040031337106eb4c1d8c1ccdd5001000a0e28a5041c460e80026eb4c1d0c1c4dd500198381baa30383070375400b159800981e800c4c8cc896600260c260e46ea800a2b300130613072375460ec60ee0071337120026eb4c1d8c1ccdd500144cdc40009bad307630733754004838a2941071183a0009bad30743071375400660e06ea8c1ccc1c0dd5002c4c8c8cc004004018896600200314a115980099baf003307230760018a51899801001183b800a0e241d06016660e460e660e06ea80092f5c0837106e20dc41b8837106e18371baa00144c8cc88cc008008004896600200314a115980099baf306b306f00130073306e375200697ae08a518998010011838000a0d441b46eacc00cc1a8dd502e1bae306c0018b20ce32598009830000c4cc1acdd483299835983618349baa02e4bd70456600260ae00313306b37520ca660d6606260d26ea80b92f5c1159800981a800c4cc1acdd483299835980118349baa02e4bd70456600266e1d200e0018998359ba90653306b30063069375405c97ae08acc004c0dc0062660d66ea4190cc1acc1b0c1b4c1b4c1b4c1b4c1a4dd501725eb822b300130360018998359ba90643306b306c306d306d306d306d306d3069375405c97ae08acc004c1840062660d66ea418ccc1acc020c1a4dd501725eb822660d66ea418ccc1acc0c8c1a4dd501725eb8106720ce419c833906720ce419c60ce6ea8c1acc1a0dd500411835983618361836183618361836000c590654590651b94376600c8992cc004c160c180dd5000c4c8c8c8cc896600260d4007132323322598009837001c4c02cc1b80322c8358dd718358009bae306b002306b001375860d200b16419c6eb4c19c004dd698338011833800983300098309baa0018b20be3063002418516417c305c001305b001305a001305900130543754005164149164154304c001304b001304a00130490013048001304700130460013045001304400130430013042001303d37540051640ec600660766ea8c8c8c966002606a607a6ea8006264b30013035303e375400313259800981b981f9baa0018991919912cc004c12000e200b164114608a0026eb8c114008c114004c100dd5000c5903e1821181f9baa0018b207a3007303e3754600c607c6ea8c104c0f8dd5000c5903c19198008009bac3006303e375406044b30010018a60103d87a80008992cc004c8cc004004c014dd5980498209baa30093041375400444b30010018a508acc004cdc79bae304500103f8a518998010011823000a080410d13007330420014bd7044cc00c00cc11000903e1821000a08030010012259800800c52f5c113303f303c304000133002002304100140f8600200289919912cc004c0f800626644b30013033303b375400513232323322598009822801c4c966002607260826ea8006264646644b3001304a0038992cc004c0f800626464b3001304d00280745904a1bae304b0013047375400f159800981a800c566002608e6ea801e0191641211641148228c114dd50034590471bae3047001375c608e004608e00260846ea80062c8200c1100162c8210dd71821000982100118210009820800981e1baa0028b2074303d00113004303e0058b2076375c607600260780026eb0c0e800903822646004606e0066eb4c0d400903344c8c008c0d400cdd6981980120628b205e1816000981580098150009814800981400098119baa0018b204230250058b204637586046002604600460460026044002603a6ea803a2c80d844b3001300f30173754005132323259800980f80144cc018c07800c4c9660026026003159800980e1baa002802c5901d4566002601400313232598009811001401e2c80f8dd71810000980e1baa0028acc004c04800626464b30013022002803c5901f1810000980e1baa0028b2034406880d0c068dd5000c5901c180e800980e800980c1baa0028b202c22598009807180b1baa00289919192cc004c07800a26600c603a006264b300130120018992cc004c08000626464b300130150018992cc004c08c0062660166044002013164080603c6ea800a2b3001300c00189919194c004dd69812000cdd69812001cdd698120012444b300130280048074590250c090004c08c004c078dd500145901c2038301c3754002603e00316407460366ea800a2b300130090018acc004c06cdd500140162c80e22c80c9019180c9baa0018b2036301c001301c001301737540051640544464b3001300e001899192cc004c07400a0091640686eb8c06c004c05cdd5001c566002600a0031323259800980e80140122c80d0dd7180d800980b9baa0038b202a4054602a6ea80091598009804001c4c8c966002601260226ea8c054c05800a294629410101bad3014001301037540091640388070601e6020002601e0088a4d1365640141", + Type.Tuple([PolicyId, ScriptHash, ScriptHash, ScriptHash]), + [proxyPolicyId, mintValidator, stakeValidator, managementValidator], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolStakeProtocolStakeWithdraw { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594076010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692013265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495d6578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d20726571756573742e616d6f756e7400168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491765787065637420757364725f6d696e746564203d3d203000168a99801a49756578706563740a2020202076616c69646174655f7661756c745f6e6f5f74726173685f746f6b656e73280a2020202020207661756c745f696e7075742c0a2020202020207661756c745f6f75747075742c0a20202020202073657474696e67732e72656769737472792e757364722c0a202020202900168a99801a49a96578706563740a20202020216c6973742e616e79280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a2020202020202020696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2073657474696e67732e756e7374616b65645f7969656c645f706f742e7061796d656e745f63726564656e7469616c0a2020202020207d2c0a202020202900168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d65720016488888888888888966003300130143754035370e90034dc3a4001370e9002244446465300130193754003301d006980e8012444b300130060038cc004c080c074dd500248c084c088c088006460426044003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba54800246042604460446044604460446044604460446044003374a90012444444444446466446464b30010018cc004889660026034605e6ea800e264b300100180144c96600200313259800800c012264b30010018acc004c0e000a330010038992cc004c07c0062b300130353754005007803206c8acc004c050006264b3001001803c4c966002003008804402201113259800981e001c02a01281c8dd7000a078303900140dc606a6ea800a2b3001301e0018992cc00400600f13259800981d801402601081c0c0e4005037181a9baa002803206440c88190c0ccdd5000c01500b4015035401600b005802a072303600140d0606c005003801c00e00681b8c0d000503218181baa003800a05a9112cc004c068c0bcdd5001c4c9660020030028992cc004006264b300100180244c96600200313259800981a800c56600266e252004303400180344c9660026074009132598009810800c566002606e6ea801a01300840e1159800980b000c4c9660020030098992cc00400601500a80544c966002607c00700c805a076375a00300a40f8607600281c8c0dcdd500345660026040003159800981b9baa006804c0210384021034206840d0606a6ea801600e81b8c050c0d000503240190361baa001802c01600b00540e4606c00281a0c0d800a007003801c00d037181a000a0643030375400700140b522259800980d18179baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c9660026074007008803a06e375a00300640e8606e00281a8dd7000981b001206e303400140c860606ea800e002816a44464b3001301b0018992cc00400600713259800800c0120090048992cc004c0e000e00d00540d46eb400600881c0c0d400503318189baa0048acc004c0400062b3001303137540090038012064801205c40b8605e6ea800d222298009112cc004c078c0ccdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003159800981f80146600200d19800800c0260108062010807201081e20110088044021040181e800a076375a002607800500540f4607400281c0c0e800a007003801c00d03b181c000a06c3034375400700140c522259800980f18199baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c036264b300130450038cc00403233001004807c039012403901440390421bad001806a08a30420014100608400500b805c02e0168218c10000503e1bad001303f0028042080303d00140ec6eb4004c0f000a00a81e8c0e8005038181d001400e007003801a076303800140d860686ea800e002818a444b3001301e3033375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c11400e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c12800e029013411c6eb800504a1823800a08a375c002608c0048238c1100050424039012403901440390421bac001806c0350451821000a0803042002805c02e01700b410c608000281f0dd6800981f8014021040181e800a076375a002607800500540f4607400281c0c0e800a007003801c00d03b181c000a06c3034375400700140c522259800980f18199baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c4c966002608a00719800806466002009159800800c03a264b3001001807c03e01f00f899912cc00400602313259800800c04a02501280944c9660026094007014809a08e375c0028250c11c0050451bae0013046002411c6088002821201c809201c80a201c8210dd6000c03601a8228c1080050401821001402e01700b805a086304000140f86eb4004c0fc00a0108200c0f400503b1bad001303c002802a07a303a00140e06074005003801c00e00681d8c0e0005036181a1baa003800a0624888966002603e60686ea8026264b3001001811c4c96600200313259800800c096264b30010018992cc00400604f13259800800c0a2051132598009820001c566002604c60766ea801a264b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e899912cc00400606113259800800c0c6063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c4c9660020030388992cc0040062b30013050002899816007112cc00400a26605c01a44b30010028cc00401e330010058992cc004c0ecc140dd500cc4c96600200303f8992cc004006264b3001001820c4c966002003159800982c80144cc8966002608200313259800800c116264b3001001823411a264b3001305e00389981d000912cc00400a00f13259800800c660020031300230610038252052825412a09504a418860be00482ea08e82d8dd6000c11a08c82f0c16c005059182b9baa0058acc004c0d8006264b3001001822c4c96600200304682344c96600260bc00713303a0012259800801401e264b30010018cc0040062600460c200704a40a504a825412a0948310c17c00905d411d05b1bac001823411905e182d800a0b23057375400b1598009820000c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094815209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea80162b300130420018992cc00400608b13259800800c11a08d13259800982f001c4cc0e800489660020050078992cc00400633001001898011830801c12902a412a09504a82520c4305f0024175047416c6eb000608d046417860b600282c8c15cdd5002c566002606a00313259800800c116264b3001001823411a264b3001305e00389981d000912cc00400a00f13259800800c660020031300230610038252056825412a09504a418860be00482ea08e82d8dd6000c11a08c82f0c16c005059182b9baa0058acc004c0d0006264b3001001822c4c96600200304682344c96600260bc00713303a0012259800801401e264b30010018cc0040062600460c200704a40ad04a825412a0948310c17c00905d411d05b1bac001823411905e182d800a0b23057375400b1598009819800c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094816209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea80162b30013370e9007000c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094816209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea801608882a105420a8415082a105420a84150264b300130400018992cc00400608913259800800c56600260b800519800800c02208a814a08a82ca08b045822c11505d182d000a0b030563754005159800981a800c4c9660020030448992cc0040062b3001305c0028acc004c108c15cdd5000c4c9660020030468992cc004006264b300100182444c966002003159800983000146600200719800800c0320928172092817209282ea093049824c125061182f000a0b8305e002823c11e08f047417c60b800282d0c160dd5000c1150554115059411608b045822a0ba305a001416060ac6ea800a0868299053182a1baa001305437540070424159042821410a08482d0c15c005055182b801410208104082020b03055001414c60a26ea806607c82704cc0c00548966002005133223259800981f982a1baa001899912cc004c104c158dd5000c660026eb4c168c15cdd5000cc168c15cdd5181c182b9baa02b9112cc00400a298103d87a80008acc004c1100062606a660b860ba00497ae08cc00400e60bc005337000029000a006415c82da44646600200200644b30010018a508acc004c00cc178006294626600400460be00282c105c48c16cc170c170c170c170c170c170c170c170c170c170c170006444b300130393059375460ba646600200200644b30010018a5eb84103d87a80008101800044c8cc89660033001303e305e375460c40074a14a282e22660c330014a14c103d87a8000a60103d87980004170660c26e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c19000400e294626600400460ca00282f106244cc186600294298103d87a8000a60103d87980004170660c26e9c0092f5c11330619800a51a60103d87a8000a60103d87980004170660c26e9ccc184dd400080125eb8105c20b8375860c060c20026eb4c180008cc008008c18000505d44ca6002003004801d200040044444b30010038acc00400a2003153305c49112657870656374205b5d203d206c6973745f620016417d159800801454cc1712411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260c4007306200299912cc004c01c00a266e0000cdd6982098301baa0028a9982f24811a6578706563742076616c69646174696f6e2872657175657374290016417460c20066eb4c18400900420be417d153305849012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e6469636573290016415d222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01905d44cc014014c19001105d1bae305d001375a60bc00260c000282f0c8c8cc004004018896600200300389919912cc004cdc8804801456600266e3c02400a20030064179133005005306500441786eb8c178004dd5982f8009830800a0be14bd6f7b6300a4001222598009822182c9baa0038992cc00400600513259800800c00e0070038992cc004c18400e00b00441786eb40060068308c17800505c182d1baa003800a0ae911919800800801912cc004006297ae0899912cc004cdd79830182e9baa3060305d3754607c60ba6ea8008c0d8cc17cdd4802a5eb822660be00466008008003133004004001416860bc00260be00282e2460b660b860b860b8003222232330010010052259800800c4cc17ccdd81ba9005375000897adef6c608994c004dd7182e800cdd6982f000cc1880092225980099b9000900389983199bb037520126ea00200162b30013371e01200719800804c022005233064337606ea4028dd40008014400500744cc18ccdd81ba900337500046600c00c00282f105e0c18000505e48888c8cc004004014896600200313305f337606ea4014dd300225eb7bdb1822653001375c60ba003375660bc003306200248896600266e4002400e2660c666ec0dd48049ba60080058acc004cdc7804801c6600201300880148cc190cdd81ba900a374c0020051001401d133063337606ea400cdd300119803003000a0bc417830600014179259800800c528c52820b2891111192cc004c11c00600513003001416866e0001000e6e0520009111919800800802112cc004006200913233223322330020020012259800800c400e26530010059bae30610019bad30620019980180198330012012306400141886eacc17c00cdd7182e000998018019830801182f800a0ba911194c0040060090034004444b30010028acc0040062946294105e456600200314a11598009980218300011830000c6600200730610029830800a0068a50416882f105e488966002608860b26ea800e264b300100180144c96600200313259800800c012264b30010018992cc00400600d13259800800c4c9660020030088992cc004c19800a330010078cc004016264b3001304d0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b300130420018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001304c0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001304e0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f132598009836801c5660020030108992cc004006023011808c04626644b3001001809c4c96600200301480a4052029132598009839001c05a02a8378dd7000a0e4306f00141b46eb8004c1b800906f1836000a0d480820d4375800300f807a0da306a00141a06eb4004c1a400a0188350c19c00506518319baa0048acc004c104006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e264b3001306d003808c04106a1bad001807a0da306a00141a06eb4004c1a400a0188350c19c00506518319baa0048acc004c100006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e26644b3001001808c4c966002003012809404a264b3001307000380a404d06d1bad00180920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001303f0018992cc00400601713259800800c03201900c8992cc004c1a800e01d00d419c6eb40060188350c19c00506518319baa0048acc004cdc3a401c00313259800800c02e264b30010018064032019132598009835001c03a01a8338dd6800c03106a1833800a0ca3063375400900a4180830106020c04180830106020c03061375400700940d500940e1009418c60c80028310c19000a00f007803c01d0651831000a0c03062002802c01600b005418c60c000282f0c18000a007003801c00d061182f000a0b8305a3754007001415d2259800800c5268992cc00400629344c96600266e40dd7182d182f0019bae305a0018998020021982e800982f801454cc1652401326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f726465720016416060ba00282d8c17400505a4dc4a40013710900024444444444444444444453001306b37540293013013914c004cc0500088cdd7983918379baa3072306f375460a060de6ea8004c120cc1c4dd480125eb8294294506b488ca6002003003801200222259800801440062653001004983b001e6002005375c60e2003375660e4003222223259800980a800c00a2600600283a8c8ca6002003006802a00222259800801440062653001004984000801e6002005375c60f6003375a60f8003005406c8020c1f800907c2809a020401060e800483924646600200200444b30010018a5eb7bdb182264660e466ec0c1bc004dd319198008009bab30710022259800800c52f5bded8c1132330753376060e40026ea0c038dd6983980099801801983b801183a800a0e6330030033074002307200141c1222259800982d000c528c4cdc48009919800800802912cc0040062900044cc896600266ebcc1dcc1d0dd5001003c4cdc0000cc004dd5982a983a1baa0029bae30770069bae3055006405d100141c460ea0026600400460ec002839906d4c00c00d2222222329800911919800800801112cc004006297ae089983d192cc004c18cc1e0dd5000c4c1f0c1e4dd5000c54cc1dd24013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641d86600a0086eb4c1ec004cc008008c1f000507948888c96600260c660f06ea8006264b30013375e60fa60f46ea8c1f4c1e8dd5182d983d1baa00130533307c375200a97ae08acc004c16660026eacc16cc1e8dd5182d983d1baa001802d2210d7374616b696e675f7661756c74004075132598009832183d1baa0018992cc0040063300100189983f1ba898009bab305d307c375460ba60f86ea800e00d489045553447200407c660fc60fe60f86ea8004cc1f800d2f5c1070407907083841c20e0840808c1f8c1ecdd5000c1b9078182e183d1baa305b307a375400315330784901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd15330784914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea80062a660ee92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641d86600a008003222232598009831983c1baa0018992cc004cdd7983e983d1baa307d307a375400260a6660f86ea40152f5c1159800982ccc004dd5982d983d1baa001802d2210d7374616b696e675f7661756c74004075132598009832183d1baa0018992cc004006330010018acc004cdd7980e183e1baa0034c103d87a800089983f1ba898009bab305d307c3754007006a441045553447200407c660fc60fe60f86ea8004cc1f800d2f5c1153307a490126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001641e5070407907083841c20e0840808c1f8c1ecdd5000c54cc1e524012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001641e060b860f46ea80062a660f092014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd153307849141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea80062a660ee92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641d86600a008003222222225980099baf307f307c375400e60fe60f86ea801a2b30013375e60bc60f86ea801cc174c1f0dd500344c9660033001001a5191112cc0040062602e00514a083f101744c96600266e240100062b30013371200200710018a9983e2481216578706563742064656c697665726564203c3d206d61785f64656c697665726564001641ed153307c491216578706563742064656c697665726564203e3d206d696e5f64656c697665726564001641ed30010019bae3080010049bae3080013081010044081153307b490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641e86601a6eacc174c1f0dd500398064c004dd7183f802cdd7183f984000802cc05c011222598009834800c402e3300100b801cc8c8008c038004cc20404cdd81ba9002375000297adef6c6091111192cc004c08800600513003001420804653001004804401e444453001005801c01200500140188121408101d20f8454cc1e924128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d001641e5153307a4912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e61646472657373001641e52229800998041bab305830773754004600e6eacc160c1dcdd5182c183b9baa003a5191112cc0040062b30013371e008911008a518acc004cdc7802002c4cdc7801a4410455534472008a5041e083c2294107820224888896600260ae01b19800998029bac307c307937540426eb0c168c1e4dd5013cdd6183e183c9baa027982d183c9baa04e4889660026601c6eb0c1fcc1f0dd50309bae307f307c375460ac60f86ea80062b30019800998111bac307f307c37540c2466ebcc20004c1f4dd5184000983e9baa305e307d375400261000260fa6ea8c088c1f4dd5001528528a0f28992cc004c048006264646644b300130170028acc0056600260d600514a31301600141f91332259800cc00400a01522325980098379842809baa0018992cc004006330010018acc004cdd798139843809baa003308a01308701375400915980099baf30683087013754002611402610e026ea800e2b3001337126eb4c1a0c21c04dd5001cc004dd598341843809baa30683087013754009375c61140200b375c60d000a8152264b3001306630870137540031325980099b87375a6118020026eb4c1a8c22404dd5002c4cdc39bad308c01308d01001375a60d66112026ea80162941086011844009baa0018a5042140460d2610e026ea80060fe84200a0fc84200a0fa84200a0f880fa0f907c83e41f108c011844809843009baa00183ca106023067308501375460cc610a026ea800901c44c8ca60026eb4c220040066644653001001803c03e01c800888896600200714800226644b300100484300c4cc896600200b08901899912cc004c1ecc24004dd5000c4cdc04c004dd598391848809baa3072309101375400d3094013091013754003309401309101375400900f9bad3072309101375400900b9bad3073309101375400959800983d80944dd698391848809baa004899b83337046eb4c1c8c24404dd5002009008a11c024069300100a802c00e004805211802847008c24c04014cc070028dd6984900802a12002309001004309101004423804611c02006611e02006846008dd618339842809baa06a33087013066308501375460be610a026ea8028cc21c05300106457355534472004bd704dd69844008012444b300198009845809846008054c22c04c230040126eb8c1a4c22004dd518311844009baa00d40411323322598009810800c56600266e1c018cdc0006002c56600266e1e60026eacc0e0c22c04dd50384dd718361845809baa3065308b0137540214890573555344720040b800b159800983acc004dd5981c1845809baa0709bae306c308b01375460ca6116026ea804291104555344720040b9198009bac306d308b0137540e13030308b0137540213308d01306c308b01375460ca6116026ea8040cc234053001054455534472004bd70400501a41f508801454cc224052412c6578706563742073757364725f6d696e746564203d3d20746f74616c5f73757364725f64656c6976657265640016422005153308901491566578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202b20746f74616c5f73757364725f64656c69766572656400164220051533089014910f65787065637420666565203e3d20300016422004b3001301e00a8acc004cdc499b8200300933704002015149a2a6610e029201626578706563740a2020202020207661756c745f757364725f696e202a2063697263756c6174696e675f73757364725f6265666f7265203e3d20746f74616c5f73757364725f64656c697665726564202a207661756c745f757364725f6265666f7265001642180515980099b890030018a4d15330870149012d657870656374207661756c745f757364725f696e203e3d20746f74616c5f73757364725f64656c6976657265640016421804843008cdc080680099b8100100883ca10a02184400800cc004dd618329841809baa0689bae3023308301375460ba6106026ea80226eb8c190c20c04dd5182e9841809baa008816201a8a9984080a49466578706563742076616c69646174655f7374616b655f696e70757473286f726465725f696e707574732c207374616b655f72657175657374732c20757364725f6173736574290016420004660446eb0c21004c20404dd50331bae3063308101375460b66102026ea8018cc20c04c188c20404dd5182d9840809baa00633083014c01054455534472004bd70454cc1fd2413d6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c207661756c745f757364725f6265666f7265203e2030001641f9153307f491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001641f86eb4c20804004dd6984100801184100800cc004dd6184000983e9baa0629bae301d307d375460ae60fa6ea800a6eb8c178c1f4dd5182b983e9baa00281420108a9983da4811c65787065637420746f74616c5f757364725f7374616b6564203e2030001641e93001003801496600260246eb4c178c1f4dd5000c56600260246eb4c17cc1f4dd5000c4c19cdd69815183e9baa0018a5041e914a083d102041b107941ad07922b3001305600d8cc004cc014dd6183e183c9baa021375860b460f26ea809e6eb0c1f0c1e4dd5013cc168c1e4dd50272444b30013300e375860fe60f86ea8184dd7183f983e1baa3056307c3754003159800cc004cc088dd6183f983e1baa06123375e61000260fa6ea8c20004c1f4dd5182f183e9baa001308001307d3754604460fa6ea800a94294507944c966002602400313232332259800980b000c566002602c00519800994c004006013480010011112cc00400a200319800801cc2200400a64b3001301b375a6064610a026ea80062b3001337126eb4c0c8c21404dd500099b83337046eb4c198c21404dd500080280344cdc00011bad3032308501375400315330830149012065787065637420722e666f7266656974203c3d20726571756573745f7573647200164208051533083014911565787065637420722e666f7266656974203e3d20300016420804610e020048019085014cc088dd61842009840809baa066375c60c66102026ea8c16cc20404dd50034cc20c04c188c20404dd5182d9840809baa00633083014c106457355534472004bd702444b30019800801402e4464b30013070308601375400313259800800c6600200315980099baf302830880137540066116026110026ea80122b30013375e60d26110026ea8004c22c04c22004dd5001c56600266e24dd698349844009baa00398009bab3069308801375460d26110026ea80126eb8c22c040166eb8c1a401502b44c96600260cc6110026ea800626464b30013370e6eb4c23804008dd698361845809baa0068acc004cdc39bad308e01001375a60da6116026ea801a266e1cdd69847009847808009bad3038308b01375400d14a084400a2941088011847008009844809baa0018a5042180460d46110026ea80061000284280a0fe84280a0fc84280a0fa81020fb07d83ec1f508d011845009843809baa00183d2108023068308601375460ce610c026ea800901d456600266e1e60026eacc0c4c21004dd5034cdd718329842009baa305e308401375401348905735553447200409c603e0111323298009bad3089010019991194c00400600f010807a002222259800801c52000899912cc00401210e031332259800802c2280626644b3001307c30910137540031337013001375660e66124026ea8c1ccc24804dd50034c25404c24804dd5000cc25404c24804dd5002403e6eb4c1ccc24804dd5002402e6eb4c1d0c24804dd50024cdc099b83337046eb4c1ccc24804dd50020090099bad303f309201375400880da6002015005801c00900a42340508f01184a008029980e8051bad309301005424404612202008612402008847808c23c0400cc2400400d08d011bac306830860137540d6661100260ce610c026ea8c180c21804dd50059984400a601054455534472004bd704dd69844808012444b30019800984600984680805cc23004c234040126eb8c1a8c22404dd518319844809baa00e404515980099b870013370266e040240080222b30013370e00666e040280362b3001307398009bab303630890137540dd375c60d46112026ea8c18cc22404dd50075220104555344720040b1198009bac306b30890137540dd302e308901375401d3308b01306a308901375460c66112026ea8038cc22c053001054455534472004bd70402101841ed08601454cc21c05241536578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e65640016421805153308701491576578706563740a202020207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20746f74616c5f757364725f64656c697665726564202d20746f74616c5f666f7266656974001642180507a42180430890100198009bac306630840137540d3375c60486108026ea8c178c21004dd5004cdd718329842009baa305e308401375401302d403915330820149012a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e656400164204051533082014914b6578706563742076616c69646174655f756e7374616b655f696e70757473286f726465725f696e707574732c20756e7374616b655f72657175657374732c2073757364725f61737365742900164204048a9983fa49236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001641f9153307f4911c657870656374207661756c745f757364725f6265666f7265203e2030001641f86eb4c20804004dd6984100801184100800cc004dd6184000983e9baa0629bae301d307d375460ae60fa6ea800a6eb8c178c1f4dd5182b983e9baa00281420108a9983da4811d65787065637420746f74616c5f73757364725f6275726e6564203e2030001641e93001003801496600260246eb4c178c1f4dd5000c4c048dd6982f983e9baa0018a5041e881020d883ca0d683c914a083b10760896600266e2000520008a6103d87a8000899804001000a0e422a660aa92013665787065637420536f6d65287661756c745f6f75747075745f69647829203d2065787472612e7661756c745f6f75747075745f696478001641506eb4c160c154dd5000982c182c982c982c982c982c982a9baa0038a99829a4813465787065637420536f6d65287661756c745f696e7075745f69647829203d2065787472612e7661756c745f696e7075745f69647800164148600260a86ea8008c154c148dd50131182b182b982b982b982b800c4c96600200304082044c9660020030418992cc004006085042821410a26644b300100182244c966002003159800982e00144c966002608660b06ea800a264b3001001823c4c96600200313259800800c126264b30010018992cc00400609713259800800c13209904c82644c96600260c80071598009825182f9baa0068992cc00400609d13259800800c13e09f04f827c4cc89660020030518992cc0040060a5052829414a264b3001306a0038992cc004c144006264b300100182ac4c96600200305682b415a0ad132598009837001c04a0ae8358dd7000a0dc306b00141a460ce6ea802e2b300130460018acc004c19cdd5005c03e0a883420a8832106418329baa00a829a0ce375c0028350c19c0050651bae0013066002419c60c80028310c180dd5003413505d41350611bae001419060c200282f8c18400a09504a8254129062182f800a0ba305f0028244122091048418060ba00282d8c164dd5001411905609803982e0044115059411608b045822a0ba305a00141606eb8004c16400905a182b800a0aa375800304082020b03055002414d03d408103d408113259800800c0fa07d03e8991801982b0021bad00181f20ac3053002414513259800800c0f207903c8991801982a0021bad00181e20a83051002413d039413503981cc0e60728288c13800504c182700140de06f03781ba09e304c00141286eb4004c12c00a0688260c1240050471bad0013048002818a092304600141106eb0004c11400a05d02e411860860028208dd6000982100140ae0568218c10000503e181e1baa006814a072814a07a37580030288142080303d00140ec607a005026813409a04c81f0c0ec005039181d80140920490248122078303900140dc606a6ea8026044819080d406a03501a40c8664464b30013019302e37540031302f32337606066002606660680026eb0c0c8c0bcdd5000c54cc0b52418b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc028cc0ccdd480225eb812f5c11300c33033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756600c60586ea8044dd7181798161baa00132323259800800c5660026030605a6ea8006264b300100180ec4c96600200301e80f407a03d1332259800800c082264b30010018acc004c0dc00a2b3001301d3032375400313259800800c08a264b30010018992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c96600200313259800800c0aa264b30010018992cc00400605913259800800c4c96600200302e8992cc004006264b300100181844c96600200313259800800c0ca264b30010018992cc00400606913259800800c4c9660020030368992cc00400606f037899912cc00400607313259800800c56600260a00051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606c60966ea801a264b300100181dc4c96600200303c81e40f20791332259800800c0fa264b300100181fc0fe07f03f899912cc00400608313259800800c10a08504282144cc89660020030448992cc00400608b045822c11626644b3001001823c4c966002003048824412209113259800982f801c4cc0ec048896600200519800809440c209681a2264b30010018acc004c120c174dd5000c4c96600200304d8992cc00400609d04e899912cc0040060a113259800800c1460a3051899912cc0040060a713259800800c1520a90548992cc004c1ac00e2b300100782ac4c96600200305682b415a0ad1332259800800c162264b300100182cc1660b30598992cc004c1c000e2602060e002305a41b46eb80050701836800a0d6375c00260d80108368c1a801d06841550681bad00182a20d6306800141986eb4004c19c00a0a28340c1940050631bac001306400282741390651831000a0c0305e375400304c416d04c82641320988318c18000905e412505c1bae001417c60b800282d0dd7000982d80120b83059001415c6eb8004c160009059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270c130dd500340e904940e902240e902240e902240e902240e902240e902240e902240e902240e902240e904d40ea07503a81d20a2304e00141306eb0004c13400a06f037413860960028248c12c00a06b03581ac0d504c1824800a08e3049002819c0ce0670334128608e0028228c11c00a063031818c0c50481822800a0863045002817c0be05f02f411860860028208c10c00a05b02d816c0b50441820800a07e3041002815c0ae05702b4108607e00281e8c0fc00a053029814c0a5040181e800a076303d002813c09e04f02740f8607600281c8c0ec00a04b025812c09503c181c800a06e3039002811c08e04702340e8606e00281a8c0ccdd5000c08503040850344086043021810a070303500140cc6eb8004c0d00090351819000a060302e375400301c40ad01c80e40720388198c9660026030605a6ea8006264b30013018302e375400313032302f3754003153302d4913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06020605c6ea8c03cc0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac64660020026eb0c03cc0b8dd5009912cc0040062980103d87a80008992cc004c8cc004004c014dd5980918189baa30123031375400444b30010018a508acc004cdc79bae303500102e8a51899801001181b000a05e40cd1300b330320014bd7044cc00c00cc0d000902d1819000a06030010012259800800c52f5c113302f302c303000133002002303100140b8444b30013016302b375400713259800800c00a264b30010018992cc00400600913259800800c566002606800519800801c4c966002603600313259800800c01e264b30010018acc004c0dc00a264b3001301e0018992cc00400601513259800800c566002607400519800800c032016807201681ba01700b805c02d03b181c000a06c303437540051598009809800c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c9660026082007013809207c375a0030114104607c00281e0dd6800981e801403903e181d800a072375a002607400500b40ec607000281b0c0d0dd5001402503120623032375400300840d1008804402201081c0c0d400503318189baa0028acc004c0400062b3001303137540050078032064803205c40b8605e6ea800600a804200a818a00b005802c0150351819000a0603032002801c00e00700340cc60600028170c0b0dd5001c005029111194c004006009003400444464b3001301a0018992cc00400600d13259800800c01e00f007803c4c966002606e0070058042068375c00281b8c0d000503218181baa0038acc004c03c006264b300100180344c966002003007803c4c966002606e0071330130012259800801401e264b30010018cc00402a00313002303a003402900b805c02e01681d8c0e000903640210341bac001803c01d037181a000a06430303754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0dc00e26602600244b3001002803c4c966002003198008054006260046074006805201700b805c02d03b181c001206c80420683758003007803a06e303400140c860606ea800e2b3001301b0018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981d001c4cc058004896600200500a8992cc0040063300100d800c4c008c0f400d00d403a01d00e807207c303b00240e500b40dc6eb000601500a40e8606e00281a8dd6800981b001401d037181a000a064303037540071598009807000c4c9660020030068992cc00400600f007803c4c966002606e0070058042068375a00300740dc60680028190c0c0dd5001c566002601a00313259800800c01a264b3001001803c01e00f13259800981b801c01601081a0dd6800c01d037181a000a064303037540071598009806000c4c9660020030068992cc00400600f007803c01e264b30013037003802c0210341bae00140dc60680028190c0c0dd5001c01502d205a40b4816902d205a40b4605c6ea8008888c966002602c00313259800800c00e264b300100180240120090048992cc004c0cc00e00d00540c06eb80050331818000a05c302c37540091598009805800c4c9660020030038992cc0040060090048024012264b3001303300380340150301bae00140cc60600028170c0b0dd500240090292052302a37540068acc004c02000e26464b30013009301e37546044604600514a314a080e0dd69810800980e9baa0048b20344068301c301d001301c00445268a998092491856616c696461746f722072657475726e65642066616c7365001365640441" + : "592264010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba54800246022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911192cc004c05c00626464b300130230028024590201bae3021001301d37540071598009806000c4c966002604400313300e3758604200244b3001002802c6600200f3023002898009812001200e408516407c603a6ea800e2b300130160018992cc004c08800626601c6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c56600260300031323322598009812000c4cc040dd61811800912cc00400a00f19800804cc09400a26002604c00480490234590211bad30210013022001301d37540071598009805800c4c8c96600260460050048b2040375a6042002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd71810800980e9baa0038b2036406c80d901b2036406c80d8c06cdd5001488c966002602c0031323259800981100140122c80f8dd71810000980e1baa0038acc004c02c00626464b3001302200280245901f1bae3020001301c375400716406880d0c068dd500148966002602a60346ea800a2646464b30013022002899192cc004c0680062b3001302037540050068b20428acc004c03c00626464b300130260028044590231bad302400130203754005159800980c800c56600260406ea800a00d16408516407880f101e180f1baa00130210038b203e3259800980f000c56600266e252004301d0018b44c034c07400501c45901f1baa30200013020001301b3754005164065223259800980b000c4c8c96600260440050048b203e375a604000260386ea800e2b3001300b0018acc004c070dd5001c00a2c80ea2c80d101a180d1baa00248888cc88cc8a6002664464b3001301e302337540031302432337606050002605060520026eb0c09cc090dd5000c590221919800800801912cc004006298103d87a80008992cc004cdd7981280099ba548010cc0a0c03ccc0a0dd480225eb812f5c11301133028374e66050604a00266050604c00297ae04bd7044cc00c00cc0a80090241814000a04c3756601660426ea8058dd7181218109baa002912cc004c074c088dd500144c8c8c8cc89660026058007133008302b0051330100020068b20523029001375a60520046052002605000260466ea800a2c810a44b3001301d302237540051323232323298009bad302b0019bad302b0049bad302b003981580124444b30013030005899806181780489980a00080545902d0c0ac004c0a8004c0a4004c0a0004c08cdd500145902148966002603a60446ea800a26464646465300137586056003375a6056009375a6056007302b0024888966002606000b13300c302f0091330140011323322598009819801c0362c8180dd718180009bae303000530300048b205a181580098150009814800981400098119baa0028b2042912cc004c074c088dd500144c8c8c8c8ca60026eb0c0ac0066eb4c0ac0126eb4c0ac00e605600491112cc004c0c0016266018605e0122660280022646644b30013033003806c590301bae3030001375c606000a60600091640b4302b001302a0013029001302800130233754005164084911112cc004c080c094dd5002c4c8c8c8cc8966002605e00713259800981318159baa00189919191919194c004c0d40066eb0c0d40166eb4c0d40126eb4c0d400e606a004911112cc004c0ec01a26604e6eb0c0e802c8966002005133029006225980080144cc07c0144cc07c0244c966002606c60766ea804a2646464b3001304300289919912cc004c0f000a264b300130470018998199bac304600122598008014012266040609000426002609200482322c8220c108dd5001c5660026062005132598009823800c4cc0ccdd61823000912cc00400a0091330203048002130013049002411916411060846ea800e2b3001303b0028992cc004c11c0062660666eb0c11800489660020050048998109824001098009824801208c8b208830423754007159800981e80144c966002608e0031330333758608c00244b300100280244cc084c1200084c004c12400904645904418211baa0038acc004c0c000a264b300130470018998199bac304600122598008014012266044609000426002609200482322c8220c108dd5001c566002605e005132598009823800c4cc0ccdd61823000912cc00400a0091330223048002130013049002411916411060846ea800e2b3001302e0028992cc004c11c0062660666eb0c11800489660020050048998119824001098009824801208c8b20883042375400715980099b874803800a264b300130470018998199bac304600122598008014012266046609000426002609200482322c8220c108dd5001c59040208041008201040208041008200c0fcdd50008992cc004c0ec006264b300130460018998151822800803c5904318209baa0038acc004c0c0006264b300130460018992cc004c0f4c108dd5000c4c8c8c966002609400513302b304900313302b00100b8b208e3048001304800130433754003164104608a00316410c60826ea800e2c81f903f181f9baa00230420038b208030410013041001303c37540251640e826605602444b300100289991192cc004c0e8c0fcdd5000c4cc8966002607860826ea800633001375a608a60846ea8006608a60846ea8c0ccc108dd5010c8896600200514c0103d87a80008acc004c0fc006260606608e609000497ae08cc00400e6092005337000029000a006410c823244646600200200644b30010018a508acc004c00cc12400629462660040046094002822104748c118c11cc11cc11cc11cc11cc11cc11cc11cc11cc11cc11c006444b30013034304437546090646600200200644b30010018a5eb84103d87a80008101800044c8cc89660033001303930493754609a0074a14a2824226609930014a14c103d87a8000a60103d87980004120660986e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c13c00400e294626600400460a0002825104d44cc132600294298103d87a8000a60103d87980004120660986e9c0092f5c113304c9800a51a60103d87a8000a60103d87980004120660986e9ccc130dd400080125eb8104820903758609660980026eb4c12c008cc008008c12c00504844ca6002003004801d200040044444b30010038acc00400a2003164129198008024c13400e609a005332259800980380144cdc00019bad303c304b375400516412460980066eb4c13000900420948b208691119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c824a26600a00a609e0088248dd718240009bad3049001304b001412464646600200200c44b3001001801c4c8cc896600266e4402400a2b30013371e0120051001803209489980280298280022094375c60920026eacc128004c13000504a0a5eb7bdb18052000912cc004c0f8c10cdd500144c8c96600260940050038b208e375a609000260886ea800a2c821244646600200200644b30010018a5eb8226644b30013375e609660906ea8c12cc120dd5181c98241baa00230313304a375200a97ae089982500119802002000c4cc01001000504618248009825000a08e91823182398239823800c8888c8cc004004014896600200313304a337606ea4014dd400225eb7bdb1822653001375c6090003375a6092003304d00248896600266e4002400e26609c66ec0dd48049ba80080058acc004cdc7804801c6600201300880148cc13ccdd81ba900a37500020051001401d13304e337606ea400cdd400119803003000a0944128304b0014125222232330010010052259800800c4cc128cdd81ba9005374c00897adef6c608994c004dd71824000cdd59824800cc1340092225980099b9000900389982719bb037520126e980200162b30013371e01200719800804c02200523304f337606ea4028dd30008014400500744cc138cdd81ba9003374c0046600c00c002825104a0c12c005049496600200314a314a0822224444464b3001304200180144c00c00504619b800040039b8148002444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c1300066eb4c1340066600600660a20048048c13c00504d1bab304a003375c608e00266006006609800460940028242444653001001802400d0011112cc00400a2b30010018a518a504125159800800c5284566002660086096004609600319800801cc13000a6098002801a2941046209241252259800981f18219baa0028991919194c004c12c0066096007304b002488966002609e00913302e304e00713302b002132598009823000c4c8ca60026eb4c14400660a4003375a60a20049112cc004c15400a264646644b300130590038094590561bae3056001375c60ac00460ac0026eb0c15000a2c829060a200260986ea800a2b3001303b001899194c004dd69828800cc1480066eb4c14400922259800982a80144c8c8cc896600260b20070128b20ac375c60ac0026eb8c158008c158004dd6182a0014590520c144004c130dd50014566002608a0031323298009bad30510019829000cdd698288012444b300130550028991919912cc004c16400e0251641586eb8c158004dd7182b001182b0009bac30540028b20a4182880098261baa0028acc004c11c0062646644b300130530018991919912cc004c15c00e0211641506eb8c150004dd7182a001182a0009bac30520018b20a0375a60a000260a200260986ea800a2b3001303a0018991919912cc004c15000e01b1641446eb4c144004dd69828801182880098261baa0028acc004c0e400626464653001375a60a4003375a60a4007375a60a40049112cc004c15801201f16414c30520013051001304c3754005159800981c000c4c8c96600260a400500b8b209e375a60a000260986ea800a2b30013370e9007000c4c8c96600260a400500b8b209e375a60a000260986ea800a2c825104a20944128825104a2094412860946ea80062c826060960026094002609200260886ea800a2c821244b30010018a4d13259800800c5268992cc004cdc81bae30453049003375c608a00313300400433048001304a0028b2088304800141186090002822a6e2520009b88480012222222222222222222229800982b1baa0149809809c8a600266028004466ebcc174c168dd5182e982d1baa304b305a37540026086660b86ea40092f5c14a14a282ba44653001001801c0090011112cc00400a200313298008024c18400f30010029bae305c0019bab305d00191111192cc004c0540060051300300141846465300100180340150011112cc00400a200313298008024c1ac00f30010029bae30660019bad3067001802a036401060d20048339404d0102008305f0024175232330010010022259800800c52f5bded8c11323305d3376060b40026e98c8cc004004dd5982e001112cc004006297adef6c608991983019bb0305d0013750601c6eb4c178004cc00c00cc188008c18000505e19801801982f801182e800a0b691112cc004c1540062946266e24004c8cc004004014896600200314800226644b30013375e60c460be6ea800801e266e0000660026eacc140c17cdd50014dd718310034dd71828003202e8800a0ba3060001330020023061001417882ca60060069111111194c00488c8cc004004008896600200314bd7044cc194c96600260bc60c66ea8006260ce60c86ea80062c8310cc014010dd69833000998010011833800a0c89111192cc004c178c18cdd5000c4c96600266ebcc1a0c194dd5183418329baa305630653754002609c660ce6ea40152f5c1159800982a4c004dd5982b18329baa305630653754003005a450d7374616b696e675f7661756c7400407513259800982f98329baa0018991980f0008998349ba898009bab30583067375460b060ce6ea800e00d4881045553447200407c660d260d460ce6ea8004cc1a400d2f5c060d260cc6ea80062c8320c15cc194dd5182b18329baa0018b20c68b20c63067306437540031641886600a00800322223259800982f18319baa0018992cc004cdd7983418329baa306830653754002609c660ce6ea40152f5c1159800982a4c004dd5982b18329baa001802d22010d7374616b696e675f7661756c7400407513259800982f98329baa0018991980f0008acc004cdd7980e18339baa0034c0103d87a80008998349ba898009bab305830673754007006a441045553447200407c660d260d460ce6ea8004cc1a400d2f5c116419460d260cc6ea80062c8320c15cc194dd5000c59063459063183398321baa0018b20c433005004001911111112cc004cdd7983518339baa007306a3067375400d15980099baf30593067375400e60b060ce6ea801a264b30019800800d28c888966002003130170028a5041a880ba264b30013371200800315980099b890010038800c590674590674c0040066eb8c1ac0126eb8c1acc1b0011020459066198069bab30583067375400e60193001375c60d400b375c60d460d600b301700448896600260c8003100b8cc00402e0073232002300e0013306c337606ea4008dd4000a5eb7bdb1824444464b3001302200180144c00c00506e194c004012011007911114c004016007004801400500620485020407483411641951641952229800998041bab305330623754004600e6eacc14cc188dd5182998311baa003a5191112cc0040062b30013371e0089101008a518acc004cdc7802002c4cdc7801a4410455534472008a5041908322294106420224888896600260a401b19800998029bac3067306437540426eb0c154c190dd5013cdd6183398321baa027982a98321baa0454889660026601c6eb0c1a8c19cdd502e1bae306a3067375460a260ce6ea80062b30019800998111bac306a306737540b8466ebcc1acc1a0dd5183598341baa30593068375400260d660d06ea8c088c1a0dd5001528528a0ca8992cc004c048006264646644b300130170028acc0056600260cc00514a31301600141a91332259800cc00400a015223259800983518381baa0018991980f8008acc004cdd7981398391baa00330753072375400915980099baf30633072375400260ea60e46ea800e2b3001337126eb4c18cc1c8dd5001cc004dd5983198391baa306330723754009375c60ea00b375c60c600a8152264b30013061307237540031325980099b87375a60ee0026eb4c194c1d0dd5002c4cdc39bad30773078001375a60cc60e86ea8016294107218399baa0018a5041c460c860e46ea80062c83822c83822c8380c1d0c1c4dd5000c5906f183118381baa30613070375400480e22646644b30019800983a183a8044c1d0c1d400a6eb8c188c1c4dd5182d98389baa00b4039132332259800980f800c56600266e1cdd6983b80299b8000a0048acc004cdc3cc004dd5981b183a1baa0699bae30653074375460bc60e86ea803a91010573555344720040b000915980098374c004dd5981b183a1baa0699bae30653074375460bc60e86ea803a91104555344720040b1198009bac3066307437540d3302e3074375401d3307630653074375460bc60e86ea8038cc1d93001054455534472004bd7040050184590724590724590724590722cc004c0700222b30013371266e0800801ccdc100080445268b20e08acc004cdc4801000c5268b20e041c066e0402c004cdc09bad30740030068b20de30730013322329800800c01a01d00d40044444b30010038a400113322598009838983b1baa001899b8098009bab30683077375460d060ee6ea8c1e801660f460ee6ea800660f460ee6ea800a015375a60d060ee6ea800a00f375a60d260ee6ea800ab3001307100d89bad30683077375400513370666e08dd69834183b9baa00200d00c41d480aa600200d307b005983d8024c1ec00d006459075183c0011980b8031bad307800141d86eb0c184c1bcdd503219838983018379baa3059306f3754012660e298106457355534472004bd704c004dd6183018371baa0639bae3023306e375460b060dc6ea80226eb8c17cc1b8dd5182c18371baa008816201a8b20d833022375860de60d86ea8184dd7182f18361baa3056306c375400c660dc60ba60d86ea8c158c1b0dd5003198372601054455534472004bd7045906a45906a1bad306d001375a60da00460da0033001375860d660d06ea81766eb8c074c1a0dd5182918341baa0029bae30593068375460a460d06ea800a05080422c8332600200700292cc004c048dd6982c98341baa0018acc004c048dd6982d18341baa001898311bad302a3068375400314a08332294106620408b20ca8b20ca456600260a201b19800998029bac3067306437540426eb0c154c190dd5013cdd6183398321baa027982a98321baa0454889660026601c6eb0c1a8c19cdd502e1bae306a3067375460a260ce6ea80062b30019800998111bac306a306737540b8466ebcc1acc1a0dd5183598341baa30593068375400260d660d06ea8c088c1a0dd5001528528a0ca8992cc004c048006264646644b300130160018acc004c05800a33001329800800c0269000200222259800801440063300100398398014c96600260366eb4c0c8c1c0dd5000c56600266e24dd6981918381baa0013370666e08dd6983098381baa001005006899b80002375a606460e06ea80062c83722c8370c1c800900320e0998111bac306f306c37540c26eb8c178c1b0dd5182b18361baa00699837182e98361baa3056306c375400c660dc98106457355534472004bd702444b30019800801402e4464b3001306b307137540031323302000115980099baf30283073375400660ec60e66ea80122b30013375e60c860e66ea8004c1d8c1ccdd5001c56600266e24dd6983218399baa00398009bab30643073375460c860e66ea80126eb8c1d80166eb8c19001502b44c96600260c260e66ea800626464b30013370e6eb4c1e4008dd69833983b1baa0068acc004cdc39bad3079001375a60d060ec6ea801a266e1cdd6983c983d0009bad30383076375400d14a083a22941074183c800983a1baa0018a5041c860ca60e66ea80062c838a2c838a2c8388c1d4c1c8dd5000c59070183198389baa30623071375400480ea2b30013370f30013756606260de6ea81926eb8c180c1bcdd5182c98379baa009a44105735553447200409c603e0111323259800cc004c1d0c1d402260e860ea003375c60c460e26ea8c16cc1c4dd5005a01c8acc004cdc39bad30740023370266e04018cc88ca6002003007808403d00111112cc00400e2900044cc896600260e660f06ea8006266e0260026eacc1a8c1e4dd51835183c9baa307c005983e183c9baa001983e183c9baa002805cdd69835183c9baa002803cdd69835983c9baa00299b813370666e08dd69835183c9baa00200e00f375a607660f26ea80090174c00401a60fa00b307d004983e801a00c8b20ee307a00233019006375a60f400283c0dd6183198389baa0663307330623071375460b660e26ea802ccc1cd3001054455534472004bd70002c56600266e1cdd6983a00099b8100700a8acc004c1ae60026eacc0ccc1c4dd50334dd7183118389baa305b3071375401748904555344720040a5198009bac3063307137540cd302b307137540173307330623071375460b660e26ea802ccc1cd3001054455534472004bd70401501545906f45906f45906f45906f183a000cc004dd6183098379baa0649bae3024306f375460b260de6ea80266eb8c180c1bcdd5182c98379baa009816a01c8b20da8b20da45906a45906a1bad306d001375a60da00460da0033001375860d660d06ea81766eb8c074c1a0dd5182918341baa0029bae30593068375460a460d06ea800a05080422c8332600200700292cc004c048dd6982c98341baa001898091bad305a3068375400314a083310204590654590652294106220c4112cc004cdc4000a400114c103d87a8000899804001000a0bc22c8200dd6982198201baa001304330443044304430443044304037540071640f86002607e6ea8008c100c0f4dd500e118209821182118211821000c4c8cc896600260880031332259800981e18209baa002899191919912cc004c12c00e264b3001304230473754003132323322598009828001c4c966002608e00313232598009829801403a2c8280dd7182880098269baa0078acc004c0f00062b3001304d375400f00c8b209c8b2096412c60966ea801a2c8268dd718268009bae304d002304d00130483754003164118609400b1641206eb8c120004c120008c120004c11c004c108dd50014590401821800898021822002c590411bae304100130420013758608000481f2264600460800066eb4c0f800903c44c8c008c0f800cdd6981e00120748b2070181a800981a00098198009819000981880098161baa0018b2054302e0058b205837586058002605800460580026056002604c6ea80162c8120646464b3001301c302137540031323322598009814800c4c9660026040604a6ea8006264646464646464646464646530013035001981a805cc0d402a606a0133035008981a803cc0d401a606a00b3035004981a801cdd6181a801244444444444b3001304100c899810182000b8998100050998100048998100040998100038998100030998100028998100020998100018acc004c0dcc0f0dd500144c8c8c8c8ca60026eb8c1140066eb8c1140166eb8c1140126eb8c11400e6eb8c1140092222259800982580344cc0dc02c896600200513302b01710288992cc004c110c124dd5000c4c8c8c8cc896600260a600713232332259800982b801c4c02cc15c0322c82a0dd7182a0009bae30540023054001375860a400b1641406eb4c140004dd698280011828000982780098251baa0018b2090304c00241291641203045001304400130430013042001303d37540051640ed1640f8303500130340013033001303200130310013030001302f001302e001302d001302c001302b0013026375400316409060500031640986eb8c098004c09c004c088dd5000c59020192cc004c070c084dd5000c4c966002603860446ea80062604c60466ea80062c8108c050c088dd5180998111baa30253022375400316408064660020026eb0c04cc088dd500b912cc004006298103d87a80008992cc004c8cc004004c014dd5980b18129baa30163025375400444b30010018a508acc004cdc79bae30290010238a518998010011815000a048409d1300f330260014bd7044cc00c00cc0a00090221813000a04830010012259800800c52f5c113302330203024001330020023025001408844b3001301b30203754005132323259800981400144cc018c09c00c4c966002603e00315980098129baa002802c590264566002602800313232598009815801401e2c8140dd7181480098129baa0028acc004c07800626464b3001302b002803c59028181480098129baa0028b2046408c8118c08cdd5000c590251813000981300098109baa0028b203e30040042259800980c980f1baa00289919192cc004c09800a266010604a006264b3001301d0018992cc004c0a000626464b300130200018992cc004c0ac00626601a60540020131640a0604c6ea800a2b3001301500189919194c004dd69816000cdd69816001cdd698160012444b3001303000480745902d0c0b0004c0ac004c098dd5001459024204830243754002604e00316409460466ea800a2b300130120018acc004c08cdd500140162c81222c810902118109baa0018b204630240013024001301f3754005164074456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d9590021", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolStakeProtocolStakePublish { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594076010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692013265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495d6578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d20726571756573742e616d6f756e7400168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491765787065637420757364725f6d696e746564203d3d203000168a99801a49756578706563740a2020202076616c69646174655f7661756c745f6e6f5f74726173685f746f6b656e73280a2020202020207661756c745f696e7075742c0a2020202020207661756c745f6f75747075742c0a20202020202073657474696e67732e72656769737472792e757364722c0a202020202900168a99801a49a96578706563740a20202020216c6973742e616e79280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a2020202020202020696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2073657474696e67732e756e7374616b65645f7969656c645f706f742e7061796d656e745f63726564656e7469616c0a2020202020207d2c0a202020202900168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d65720016488888888888888966003300130143754035370e90034dc3a4001370e9002244446465300130193754003301d006980e8012444b300130060038cc004c080c074dd500248c084c088c088006460426044003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba54800246042604460446044604460446044604460446044003374a90012444444444446466446464b30010018cc004889660026034605e6ea800e264b300100180144c96600200313259800800c012264b30010018acc004c0e000a330010038992cc004c07c0062b300130353754005007803206c8acc004c050006264b3001001803c4c966002003008804402201113259800981e001c02a01281c8dd7000a078303900140dc606a6ea800a2b3001301e0018992cc00400600f13259800981d801402601081c0c0e4005037181a9baa002803206440c88190c0ccdd5000c01500b4015035401600b005802a072303600140d0606c005003801c00e00681b8c0d000503218181baa003800a05a9112cc004c068c0bcdd5001c4c9660020030028992cc004006264b300100180244c96600200313259800981a800c56600266e252004303400180344c9660026074009132598009810800c566002606e6ea801a01300840e1159800980b000c4c9660020030098992cc00400601500a80544c966002607c00700c805a076375a00300a40f8607600281c8c0dcdd500345660026040003159800981b9baa006804c0210384021034206840d0606a6ea801600e81b8c050c0d000503240190361baa001802c01600b00540e4606c00281a0c0d800a007003801c00d037181a000a0643030375400700140b522259800980d18179baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c9660026074007008803a06e375a00300640e8606e00281a8dd7000981b001206e303400140c860606ea800e002816a44464b3001301b0018992cc00400600713259800800c0120090048992cc004c0e000e00d00540d46eb400600881c0c0d400503318189baa0048acc004c0400062b3001303137540090038012064801205c40b8605e6ea800d222298009112cc004c078c0ccdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003159800981f80146600200d19800800c0260108062010807201081e20110088044021040181e800a076375a002607800500540f4607400281c0c0e800a007003801c00d03b181c000a06c3034375400700140c522259800980f18199baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c036264b300130450038cc00403233001004807c039012403901440390421bad001806a08a30420014100608400500b805c02e0168218c10000503e1bad001303f0028042080303d00140ec6eb4004c0f000a00a81e8c0e8005038181d001400e007003801a076303800140d860686ea800e002818a444b3001301e3033375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c11400e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c12800e029013411c6eb800504a1823800a08a375c002608c0048238c1100050424039012403901440390421bac001806c0350451821000a0803042002805c02e01700b410c608000281f0dd6800981f8014021040181e800a076375a002607800500540f4607400281c0c0e800a007003801c00d03b181c000a06c3034375400700140c522259800980f18199baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c4c966002608a00719800806466002009159800800c03a264b3001001807c03e01f00f899912cc00400602313259800800c04a02501280944c9660026094007014809a08e375c0028250c11c0050451bae0013046002411c6088002821201c809201c80a201c8210dd6000c03601a8228c1080050401821001402e01700b805a086304000140f86eb4004c0fc00a0108200c0f400503b1bad001303c002802a07a303a00140e06074005003801c00e00681d8c0e0005036181a1baa003800a0624888966002603e60686ea8026264b3001001811c4c96600200313259800800c096264b30010018992cc00400604f13259800800c0a2051132598009820001c566002604c60766ea801a264b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e899912cc00400606113259800800c0c6063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c4c9660020030388992cc0040062b30013050002899816007112cc00400a26605c01a44b30010028cc00401e330010058992cc004c0ecc140dd500cc4c96600200303f8992cc004006264b3001001820c4c966002003159800982c80144cc8966002608200313259800800c116264b3001001823411a264b3001305e00389981d000912cc00400a00f13259800800c660020031300230610038252052825412a09504a418860be00482ea08e82d8dd6000c11a08c82f0c16c005059182b9baa0058acc004c0d8006264b3001001822c4c96600200304682344c96600260bc00713303a0012259800801401e264b30010018cc0040062600460c200704a40a504a825412a0948310c17c00905d411d05b1bac001823411905e182d800a0b23057375400b1598009820000c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094815209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea80162b300130420018992cc00400608b13259800800c11a08d13259800982f001c4cc0e800489660020050078992cc00400633001001898011830801c12902a412a09504a82520c4305f0024175047416c6eb000608d046417860b600282c8c15cdd5002c566002606a00313259800800c116264b3001001823411a264b3001305e00389981d000912cc00400a00f13259800800c660020031300230610038252056825412a09504a418860be00482ea08e82d8dd6000c11a08c82f0c16c005059182b9baa0058acc004c0d0006264b3001001822c4c96600200304682344c96600260bc00713303a0012259800801401e264b30010018cc0040062600460c200704a40ad04a825412a0948310c17c00905d411d05b1bac001823411905e182d800a0b23057375400b1598009819800c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094816209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea80162b30013370e9007000c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094816209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea801608882a105420a8415082a105420a84150264b300130400018992cc00400608913259800800c56600260b800519800800c02208a814a08a82ca08b045822c11505d182d000a0b030563754005159800981a800c4c9660020030448992cc0040062b3001305c0028acc004c108c15cdd5000c4c9660020030468992cc004006264b300100182444c966002003159800983000146600200719800800c0320928172092817209282ea093049824c125061182f000a0b8305e002823c11e08f047417c60b800282d0c160dd5000c1150554115059411608b045822a0ba305a001416060ac6ea800a0868299053182a1baa001305437540070424159042821410a08482d0c15c005055182b801410208104082020b03055001414c60a26ea806607c82704cc0c00548966002005133223259800981f982a1baa001899912cc004c104c158dd5000c660026eb4c168c15cdd5000cc168c15cdd5181c182b9baa02b9112cc00400a298103d87a80008acc004c1100062606a660b860ba00497ae08cc00400e60bc005337000029000a006415c82da44646600200200644b30010018a508acc004c00cc178006294626600400460be00282c105c48c16cc170c170c170c170c170c170c170c170c170c170c170006444b300130393059375460ba646600200200644b30010018a5eb84103d87a80008101800044c8cc89660033001303e305e375460c40074a14a282e22660c330014a14c103d87a8000a60103d87980004170660c26e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c19000400e294626600400460ca00282f106244cc186600294298103d87a8000a60103d87980004170660c26e9c0092f5c11330619800a51a60103d87a8000a60103d87980004170660c26e9ccc184dd400080125eb8105c20b8375860c060c20026eb4c180008cc008008c18000505d44ca6002003004801d200040044444b30010038acc00400a2003153305c49112657870656374205b5d203d206c6973745f620016417d159800801454cc1712411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260c4007306200299912cc004c01c00a266e0000cdd6982098301baa0028a9982f24811a6578706563742076616c69646174696f6e2872657175657374290016417460c20066eb4c18400900420be417d153305849012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e6469636573290016415d222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01905d44cc014014c19001105d1bae305d001375a60bc00260c000282f0c8c8cc004004018896600200300389919912cc004cdc8804801456600266e3c02400a20030064179133005005306500441786eb8c178004dd5982f8009830800a0be14bd6f7b6300a4001222598009822182c9baa0038992cc00400600513259800800c00e0070038992cc004c18400e00b00441786eb40060068308c17800505c182d1baa003800a0ae911919800800801912cc004006297ae0899912cc004cdd79830182e9baa3060305d3754607c60ba6ea8008c0d8cc17cdd4802a5eb822660be00466008008003133004004001416860bc00260be00282e2460b660b860b860b8003222232330010010052259800800c4cc17ccdd81ba9005375000897adef6c608994c004dd7182e800cdd6982f000cc1880092225980099b9000900389983199bb037520126ea00200162b30013371e01200719800804c022005233064337606ea4028dd40008014400500744cc18ccdd81ba900337500046600c00c00282f105e0c18000505e48888c8cc004004014896600200313305f337606ea4014dd300225eb7bdb1822653001375c60ba003375660bc003306200248896600266e4002400e2660c666ec0dd48049ba60080058acc004cdc7804801c6600201300880148cc190cdd81ba900a374c0020051001401d133063337606ea400cdd300119803003000a0bc417830600014179259800800c528c52820b2891111192cc004c11c00600513003001416866e0001000e6e0520009111919800800802112cc004006200913233223322330020020012259800800c400e26530010059bae30610019bad30620019980180198330012012306400141886eacc17c00cdd7182e000998018019830801182f800a0ba911194c0040060090034004444b30010028acc0040062946294105e456600200314a11598009980218300011830000c6600200730610029830800a0068a50416882f105e488966002608860b26ea800e264b300100180144c96600200313259800800c012264b30010018992cc00400600d13259800800c4c9660020030088992cc004c19800a330010078cc004016264b3001304d0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b300130420018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001304c0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001304e0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f132598009836801c5660020030108992cc004006023011808c04626644b3001001809c4c96600200301480a4052029132598009839001c05a02a8378dd7000a0e4306f00141b46eb8004c1b800906f1836000a0d480820d4375800300f807a0da306a00141a06eb4004c1a400a0188350c19c00506518319baa0048acc004c104006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e264b3001306d003808c04106a1bad001807a0da306a00141a06eb4004c1a400a0188350c19c00506518319baa0048acc004c100006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e26644b3001001808c4c966002003012809404a264b3001307000380a404d06d1bad00180920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001303f0018992cc00400601713259800800c03201900c8992cc004c1a800e01d00d419c6eb40060188350c19c00506518319baa0048acc004cdc3a401c00313259800800c02e264b30010018064032019132598009835001c03a01a8338dd6800c03106a1833800a0ca3063375400900a4180830106020c04180830106020c03061375400700940d500940e1009418c60c80028310c19000a00f007803c01d0651831000a0c03062002802c01600b005418c60c000282f0c18000a007003801c00d061182f000a0b8305a3754007001415d2259800800c5268992cc00400629344c96600266e40dd7182d182f0019bae305a0018998020021982e800982f801454cc1652401326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f726465720016416060ba00282d8c17400505a4dc4a40013710900024444444444444444444453001306b37540293013013914c004cc0500088cdd7983918379baa3072306f375460a060de6ea8004c120cc1c4dd480125eb8294294506b488ca6002003003801200222259800801440062653001004983b001e6002005375c60e2003375660e4003222223259800980a800c00a2600600283a8c8ca6002003006802a00222259800801440062653001004984000801e6002005375c60f6003375a60f8003005406c8020c1f800907c2809a020401060e800483924646600200200444b30010018a5eb7bdb182264660e466ec0c1bc004dd319198008009bab30710022259800800c52f5bded8c1132330753376060e40026ea0c038dd6983980099801801983b801183a800a0e6330030033074002307200141c1222259800982d000c528c4cdc48009919800800802912cc0040062900044cc896600266ebcc1dcc1d0dd5001003c4cdc0000cc004dd5982a983a1baa0029bae30770069bae3055006405d100141c460ea0026600400460ec002839906d4c00c00d2222222329800911919800800801112cc004006297ae089983d192cc004c18cc1e0dd5000c4c1f0c1e4dd5000c54cc1dd24013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641d86600a0086eb4c1ec004cc008008c1f000507948888c96600260c660f06ea8006264b30013375e60fa60f46ea8c1f4c1e8dd5182d983d1baa00130533307c375200a97ae08acc004c16660026eacc16cc1e8dd5182d983d1baa001802d2210d7374616b696e675f7661756c74004075132598009832183d1baa0018992cc0040063300100189983f1ba898009bab305d307c375460ba60f86ea800e00d489045553447200407c660fc60fe60f86ea8004cc1f800d2f5c1070407907083841c20e0840808c1f8c1ecdd5000c1b9078182e183d1baa305b307a375400315330784901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd15330784914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea80062a660ee92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641d86600a008003222232598009831983c1baa0018992cc004cdd7983e983d1baa307d307a375400260a6660f86ea40152f5c1159800982ccc004dd5982d983d1baa001802d2210d7374616b696e675f7661756c74004075132598009832183d1baa0018992cc004006330010018acc004cdd7980e183e1baa0034c103d87a800089983f1ba898009bab305d307c3754007006a441045553447200407c660fc60fe60f86ea8004cc1f800d2f5c1153307a490126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001641e5070407907083841c20e0840808c1f8c1ecdd5000c54cc1e524012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001641e060b860f46ea80062a660f092014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd153307849141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea80062a660ee92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641d86600a008003222222225980099baf307f307c375400e60fe60f86ea801a2b30013375e60bc60f86ea801cc174c1f0dd500344c9660033001001a5191112cc0040062602e00514a083f101744c96600266e240100062b30013371200200710018a9983e2481216578706563742064656c697665726564203c3d206d61785f64656c697665726564001641ed153307c491216578706563742064656c697665726564203e3d206d696e5f64656c697665726564001641ed30010019bae3080010049bae3080013081010044081153307b490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641e86601a6eacc174c1f0dd500398064c004dd7183f802cdd7183f984000802cc05c011222598009834800c402e3300100b801cc8c8008c038004cc20404cdd81ba9002375000297adef6c6091111192cc004c08800600513003001420804653001004804401e444453001005801c01200500140188121408101d20f8454cc1e924128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d001641e5153307a4912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e61646472657373001641e52229800998041bab305830773754004600e6eacc160c1dcdd5182c183b9baa003a5191112cc0040062b30013371e008911008a518acc004cdc7802002c4cdc7801a4410455534472008a5041e083c2294107820224888896600260ae01b19800998029bac307c307937540426eb0c168c1e4dd5013cdd6183e183c9baa027982d183c9baa04e4889660026601c6eb0c1fcc1f0dd50309bae307f307c375460ac60f86ea80062b30019800998111bac307f307c37540c2466ebcc20004c1f4dd5184000983e9baa305e307d375400261000260fa6ea8c088c1f4dd5001528528a0f28992cc004c048006264646644b300130170028acc0056600260d600514a31301600141f91332259800cc00400a01522325980098379842809baa0018992cc004006330010018acc004cdd798139843809baa003308a01308701375400915980099baf30683087013754002611402610e026ea800e2b3001337126eb4c1a0c21c04dd5001cc004dd598341843809baa30683087013754009375c61140200b375c60d000a8152264b3001306630870137540031325980099b87375a6118020026eb4c1a8c22404dd5002c4cdc39bad308c01308d01001375a60d66112026ea80162941086011844009baa0018a5042140460d2610e026ea80060fe84200a0fc84200a0fa84200a0f880fa0f907c83e41f108c011844809843009baa00183ca106023067308501375460cc610a026ea800901c44c8ca60026eb4c220040066644653001001803c03e01c800888896600200714800226644b300100484300c4cc896600200b08901899912cc004c1ecc24004dd5000c4cdc04c004dd598391848809baa3072309101375400d3094013091013754003309401309101375400900f9bad3072309101375400900b9bad3073309101375400959800983d80944dd698391848809baa004899b83337046eb4c1c8c24404dd5002009008a11c024069300100a802c00e004805211802847008c24c04014cc070028dd6984900802a12002309001004309101004423804611c02006611e02006846008dd618339842809baa06a33087013066308501375460be610a026ea8028cc21c05300106457355534472004bd704dd69844008012444b300198009845809846008054c22c04c230040126eb8c1a4c22004dd518311844009baa00d40411323322598009810800c56600266e1c018cdc0006002c56600266e1e60026eacc0e0c22c04dd50384dd718361845809baa3065308b0137540214890573555344720040b800b159800983acc004dd5981c1845809baa0709bae306c308b01375460ca6116026ea804291104555344720040b9198009bac306d308b0137540e13030308b0137540213308d01306c308b01375460ca6116026ea8040cc234053001054455534472004bd70400501a41f508801454cc224052412c6578706563742073757364725f6d696e746564203d3d20746f74616c5f73757364725f64656c6976657265640016422005153308901491566578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202b20746f74616c5f73757364725f64656c69766572656400164220051533089014910f65787065637420666565203e3d20300016422004b3001301e00a8acc004cdc499b8200300933704002015149a2a6610e029201626578706563740a2020202020207661756c745f757364725f696e202a2063697263756c6174696e675f73757364725f6265666f7265203e3d20746f74616c5f73757364725f64656c697665726564202a207661756c745f757364725f6265666f7265001642180515980099b890030018a4d15330870149012d657870656374207661756c745f757364725f696e203e3d20746f74616c5f73757364725f64656c6976657265640016421804843008cdc080680099b8100100883ca10a02184400800cc004dd618329841809baa0689bae3023308301375460ba6106026ea80226eb8c190c20c04dd5182e9841809baa008816201a8a9984080a49466578706563742076616c69646174655f7374616b655f696e70757473286f726465725f696e707574732c207374616b655f72657175657374732c20757364725f6173736574290016420004660446eb0c21004c20404dd50331bae3063308101375460b66102026ea8018cc20c04c188c20404dd5182d9840809baa00633083014c01054455534472004bd70454cc1fd2413d6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c207661756c745f757364725f6265666f7265203e2030001641f9153307f491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001641f86eb4c20804004dd6984100801184100800cc004dd6184000983e9baa0629bae301d307d375460ae60fa6ea800a6eb8c178c1f4dd5182b983e9baa00281420108a9983da4811c65787065637420746f74616c5f757364725f7374616b6564203e2030001641e93001003801496600260246eb4c178c1f4dd5000c56600260246eb4c17cc1f4dd5000c4c19cdd69815183e9baa0018a5041e914a083d102041b107941ad07922b3001305600d8cc004cc014dd6183e183c9baa021375860b460f26ea809e6eb0c1f0c1e4dd5013cc168c1e4dd50272444b30013300e375860fe60f86ea8184dd7183f983e1baa3056307c3754003159800cc004cc088dd6183f983e1baa06123375e61000260fa6ea8c20004c1f4dd5182f183e9baa001308001307d3754604460fa6ea800a94294507944c966002602400313232332259800980b000c566002602c00519800994c004006013480010011112cc00400a200319800801cc2200400a64b3001301b375a6064610a026ea80062b3001337126eb4c0c8c21404dd500099b83337046eb4c198c21404dd500080280344cdc00011bad3032308501375400315330830149012065787065637420722e666f7266656974203c3d20726571756573745f7573647200164208051533083014911565787065637420722e666f7266656974203e3d20300016420804610e020048019085014cc088dd61842009840809baa066375c60c66102026ea8c16cc20404dd50034cc20c04c188c20404dd5182d9840809baa00633083014c106457355534472004bd702444b30019800801402e4464b30013070308601375400313259800800c6600200315980099baf302830880137540066116026110026ea80122b30013375e60d26110026ea8004c22c04c22004dd5001c56600266e24dd698349844009baa00398009bab3069308801375460d26110026ea80126eb8c22c040166eb8c1a401502b44c96600260cc6110026ea800626464b30013370e6eb4c23804008dd698361845809baa0068acc004cdc39bad308e01001375a60da6116026ea801a266e1cdd69847009847808009bad3038308b01375400d14a084400a2941088011847008009844809baa0018a5042180460d46110026ea80061000284280a0fe84280a0fc84280a0fa81020fb07d83ec1f508d011845009843809baa00183d2108023068308601375460ce610c026ea800901d456600266e1e60026eacc0c4c21004dd5034cdd718329842009baa305e308401375401348905735553447200409c603e0111323298009bad3089010019991194c00400600f010807a002222259800801c52000899912cc00401210e031332259800802c2280626644b3001307c30910137540031337013001375660e66124026ea8c1ccc24804dd50034c25404c24804dd5000cc25404c24804dd5002403e6eb4c1ccc24804dd5002402e6eb4c1d0c24804dd50024cdc099b83337046eb4c1ccc24804dd50020090099bad303f309201375400880da6002015005801c00900a42340508f01184a008029980e8051bad309301005424404612202008612402008847808c23c0400cc2400400d08d011bac306830860137540d6661100260ce610c026ea8c180c21804dd50059984400a601054455534472004bd704dd69844808012444b30019800984600984680805cc23004c234040126eb8c1a8c22404dd518319844809baa00e404515980099b870013370266e040240080222b30013370e00666e040280362b3001307398009bab303630890137540dd375c60d46112026ea8c18cc22404dd50075220104555344720040b1198009bac306b30890137540dd302e308901375401d3308b01306a308901375460c66112026ea8038cc22c053001054455534472004bd70402101841ed08601454cc21c05241536578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e65640016421805153308701491576578706563740a202020207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20746f74616c5f757364725f64656c697665726564202d20746f74616c5f666f7266656974001642180507a42180430890100198009bac306630840137540d3375c60486108026ea8c178c21004dd5004cdd718329842009baa305e308401375401302d403915330820149012a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e656400164204051533082014914b6578706563742076616c69646174655f756e7374616b655f696e70757473286f726465725f696e707574732c20756e7374616b655f72657175657374732c2073757364725f61737365742900164204048a9983fa49236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001641f9153307f4911c657870656374207661756c745f757364725f6265666f7265203e2030001641f86eb4c20804004dd6984100801184100800cc004dd6184000983e9baa0629bae301d307d375460ae60fa6ea800a6eb8c178c1f4dd5182b983e9baa00281420108a9983da4811d65787065637420746f74616c5f73757364725f6275726e6564203e2030001641e93001003801496600260246eb4c178c1f4dd5000c4c048dd6982f983e9baa0018a5041e881020d883ca0d683c914a083b10760896600266e2000520008a6103d87a8000899804001000a0e422a660aa92013665787065637420536f6d65287661756c745f6f75747075745f69647829203d2065787472612e7661756c745f6f75747075745f696478001641506eb4c160c154dd5000982c182c982c982c982c982c982a9baa0038a99829a4813465787065637420536f6d65287661756c745f696e7075745f69647829203d2065787472612e7661756c745f696e7075745f69647800164148600260a86ea8008c154c148dd50131182b182b982b982b982b800c4c96600200304082044c9660020030418992cc004006085042821410a26644b300100182244c966002003159800982e00144c966002608660b06ea800a264b3001001823c4c96600200313259800800c126264b30010018992cc00400609713259800800c13209904c82644c96600260c80071598009825182f9baa0068992cc00400609d13259800800c13e09f04f827c4cc89660020030518992cc0040060a5052829414a264b3001306a0038992cc004c144006264b300100182ac4c96600200305682b415a0ad132598009837001c04a0ae8358dd7000a0dc306b00141a460ce6ea802e2b300130460018acc004c19cdd5005c03e0a883420a8832106418329baa00a829a0ce375c0028350c19c0050651bae0013066002419c60c80028310c180dd5003413505d41350611bae001419060c200282f8c18400a09504a8254129062182f800a0ba305f0028244122091048418060ba00282d8c164dd5001411905609803982e0044115059411608b045822a0ba305a00141606eb8004c16400905a182b800a0aa375800304082020b03055002414d03d408103d408113259800800c0fa07d03e8991801982b0021bad00181f20ac3053002414513259800800c0f207903c8991801982a0021bad00181e20a83051002413d039413503981cc0e60728288c13800504c182700140de06f03781ba09e304c00141286eb4004c12c00a0688260c1240050471bad0013048002818a092304600141106eb0004c11400a05d02e411860860028208dd6000982100140ae0568218c10000503e181e1baa006814a072814a07a37580030288142080303d00140ec607a005026813409a04c81f0c0ec005039181d80140920490248122078303900140dc606a6ea8026044819080d406a03501a40c8664464b30013019302e37540031302f32337606066002606660680026eb0c0c8c0bcdd5000c54cc0b52418b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc028cc0ccdd480225eb812f5c11300c33033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756600c60586ea8044dd7181798161baa00132323259800800c5660026030605a6ea8006264b300100180ec4c96600200301e80f407a03d1332259800800c082264b30010018acc004c0dc00a2b3001301d3032375400313259800800c08a264b30010018992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c96600200313259800800c0aa264b30010018992cc00400605913259800800c4c96600200302e8992cc004006264b300100181844c96600200313259800800c0ca264b30010018992cc00400606913259800800c4c9660020030368992cc00400606f037899912cc00400607313259800800c56600260a00051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606c60966ea801a264b300100181dc4c96600200303c81e40f20791332259800800c0fa264b300100181fc0fe07f03f899912cc00400608313259800800c10a08504282144cc89660020030448992cc00400608b045822c11626644b3001001823c4c966002003048824412209113259800982f801c4cc0ec048896600200519800809440c209681a2264b30010018acc004c120c174dd5000c4c96600200304d8992cc00400609d04e899912cc0040060a113259800800c1460a3051899912cc0040060a713259800800c1520a90548992cc004c1ac00e2b300100782ac4c96600200305682b415a0ad1332259800800c162264b300100182cc1660b30598992cc004c1c000e2602060e002305a41b46eb80050701836800a0d6375c00260d80108368c1a801d06841550681bad00182a20d6306800141986eb4004c19c00a0a28340c1940050631bac001306400282741390651831000a0c0305e375400304c416d04c82641320988318c18000905e412505c1bae001417c60b800282d0dd7000982d80120b83059001415c6eb8004c160009059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270c130dd500340e904940e902240e902240e902240e902240e902240e902240e902240e902240e902240e904d40ea07503a81d20a2304e00141306eb0004c13400a06f037413860960028248c12c00a06b03581ac0d504c1824800a08e3049002819c0ce0670334128608e0028228c11c00a063031818c0c50481822800a0863045002817c0be05f02f411860860028208c10c00a05b02d816c0b50441820800a07e3041002815c0ae05702b4108607e00281e8c0fc00a053029814c0a5040181e800a076303d002813c09e04f02740f8607600281c8c0ec00a04b025812c09503c181c800a06e3039002811c08e04702340e8606e00281a8c0ccdd5000c08503040850344086043021810a070303500140cc6eb8004c0d00090351819000a060302e375400301c40ad01c80e40720388198c9660026030605a6ea8006264b30013018302e375400313032302f3754003153302d4913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06020605c6ea8c03cc0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac64660020026eb0c03cc0b8dd5009912cc0040062980103d87a80008992cc004c8cc004004c014dd5980918189baa30123031375400444b30010018a508acc004cdc79bae303500102e8a51899801001181b000a05e40cd1300b330320014bd7044cc00c00cc0d000902d1819000a06030010012259800800c52f5c113302f302c303000133002002303100140b8444b30013016302b375400713259800800c00a264b30010018992cc00400600913259800800c566002606800519800801c4c966002603600313259800800c01e264b30010018acc004c0dc00a264b3001301e0018992cc00400601513259800800c566002607400519800800c032016807201681ba01700b805c02d03b181c000a06c303437540051598009809800c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c9660026082007013809207c375a0030114104607c00281e0dd6800981e801403903e181d800a072375a002607400500b40ec607000281b0c0d0dd5001402503120623032375400300840d1008804402201081c0c0d400503318189baa0028acc004c0400062b3001303137540050078032064803205c40b8605e6ea800600a804200a818a00b005802c0150351819000a0603032002801c00e00700340cc60600028170c0b0dd5001c005029111194c004006009003400444464b3001301a0018992cc00400600d13259800800c01e00f007803c4c966002606e0070058042068375c00281b8c0d000503218181baa0038acc004c03c006264b300100180344c966002003007803c4c966002606e0071330130012259800801401e264b30010018cc00402a00313002303a003402900b805c02e01681d8c0e000903640210341bac001803c01d037181a000a06430303754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0dc00e26602600244b3001002803c4c966002003198008054006260046074006805201700b805c02d03b181c001206c80420683758003007803a06e303400140c860606ea800e2b3001301b0018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981d001c4cc058004896600200500a8992cc0040063300100d800c4c008c0f400d00d403a01d00e807207c303b00240e500b40dc6eb000601500a40e8606e00281a8dd6800981b001401d037181a000a064303037540071598009807000c4c9660020030068992cc00400600f007803c4c966002606e0070058042068375a00300740dc60680028190c0c0dd5001c566002601a00313259800800c01a264b3001001803c01e00f13259800981b801c01601081a0dd6800c01d037181a000a064303037540071598009806000c4c9660020030068992cc00400600f007803c01e264b30013037003802c0210341bae00140dc60680028190c0c0dd5001c01502d205a40b4816902d205a40b4605c6ea8008888c966002602c00313259800800c00e264b300100180240120090048992cc004c0cc00e00d00540c06eb80050331818000a05c302c37540091598009805800c4c9660020030038992cc0040060090048024012264b3001303300380340150301bae00140cc60600028170c0b0dd500240090292052302a37540068acc004c02000e26464b30013009301e37546044604600514a314a080e0dd69810800980e9baa0048b20344068301c301d001301c00445268a998092491856616c696461746f722072657475726e65642066616c7365001365640441" + : "592264010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba54800246022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911192cc004c05c00626464b300130230028024590201bae3021001301d37540071598009806000c4c966002604400313300e3758604200244b3001002802c6600200f3023002898009812001200e408516407c603a6ea800e2b300130160018992cc004c08800626601c6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c56600260300031323322598009812000c4cc040dd61811800912cc00400a00f19800804cc09400a26002604c00480490234590211bad30210013022001301d37540071598009805800c4c8c96600260460050048b2040375a6042002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd71810800980e9baa0038b2036406c80d901b2036406c80d8c06cdd5001488c966002602c0031323259800981100140122c80f8dd71810000980e1baa0038acc004c02c00626464b3001302200280245901f1bae3020001301c375400716406880d0c068dd500148966002602a60346ea800a2646464b30013022002899192cc004c0680062b3001302037540050068b20428acc004c03c00626464b300130260028044590231bad302400130203754005159800980c800c56600260406ea800a00d16408516407880f101e180f1baa00130210038b203e3259800980f000c56600266e252004301d0018b44c034c07400501c45901f1baa30200013020001301b3754005164065223259800980b000c4c8c96600260440050048b203e375a604000260386ea800e2b3001300b0018acc004c070dd5001c00a2c80ea2c80d101a180d1baa00248888cc88cc8a6002664464b3001301e302337540031302432337606050002605060520026eb0c09cc090dd5000c590221919800800801912cc004006298103d87a80008992cc004cdd7981280099ba548010cc0a0c03ccc0a0dd480225eb812f5c11301133028374e66050604a00266050604c00297ae04bd7044cc00c00cc0a80090241814000a04c3756601660426ea8058dd7181218109baa002912cc004c074c088dd500144c8c8c8cc89660026058007133008302b0051330100020068b20523029001375a60520046052002605000260466ea800a2c810a44b3001301d302237540051323232323298009bad302b0019bad302b0049bad302b003981580124444b30013030005899806181780489980a00080545902d0c0ac004c0a8004c0a4004c0a0004c08cdd500145902148966002603a60446ea800a26464646465300137586056003375a6056009375a6056007302b0024888966002606000b13300c302f0091330140011323322598009819801c0362c8180dd718180009bae303000530300048b205a181580098150009814800981400098119baa0028b2042912cc004c074c088dd500144c8c8c8c8ca60026eb0c0ac0066eb4c0ac0126eb4c0ac00e605600491112cc004c0c0016266018605e0122660280022646644b30013033003806c590301bae3030001375c606000a60600091640b4302b001302a0013029001302800130233754005164084911112cc004c080c094dd5002c4c8c8c8cc8966002605e00713259800981318159baa00189919191919194c004c0d40066eb0c0d40166eb4c0d40126eb4c0d400e606a004911112cc004c0ec01a26604e6eb0c0e802c8966002005133029006225980080144cc07c0144cc07c0244c966002606c60766ea804a2646464b3001304300289919912cc004c0f000a264b300130470018998199bac304600122598008014012266040609000426002609200482322c8220c108dd5001c5660026062005132598009823800c4cc0ccdd61823000912cc00400a0091330203048002130013049002411916411060846ea800e2b3001303b0028992cc004c11c0062660666eb0c11800489660020050048998109824001098009824801208c8b208830423754007159800981e80144c966002608e0031330333758608c00244b300100280244cc084c1200084c004c12400904645904418211baa0038acc004c0c000a264b300130470018998199bac304600122598008014012266044609000426002609200482322c8220c108dd5001c566002605e005132598009823800c4cc0ccdd61823000912cc00400a0091330223048002130013049002411916411060846ea800e2b3001302e0028992cc004c11c0062660666eb0c11800489660020050048998119824001098009824801208c8b20883042375400715980099b874803800a264b300130470018998199bac304600122598008014012266046609000426002609200482322c8220c108dd5001c59040208041008201040208041008200c0fcdd50008992cc004c0ec006264b300130460018998151822800803c5904318209baa0038acc004c0c0006264b300130460018992cc004c0f4c108dd5000c4c8c8c966002609400513302b304900313302b00100b8b208e3048001304800130433754003164104608a00316410c60826ea800e2c81f903f181f9baa00230420038b208030410013041001303c37540251640e826605602444b300100289991192cc004c0e8c0fcdd5000c4cc8966002607860826ea800633001375a608a60846ea8006608a60846ea8c0ccc108dd5010c8896600200514c0103d87a80008acc004c0fc006260606608e609000497ae08cc00400e6092005337000029000a006410c823244646600200200644b30010018a508acc004c00cc12400629462660040046094002822104748c118c11cc11cc11cc11cc11cc11cc11cc11cc11cc11cc11c006444b30013034304437546090646600200200644b30010018a5eb84103d87a80008101800044c8cc89660033001303930493754609a0074a14a2824226609930014a14c103d87a8000a60103d87980004120660986e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c13c00400e294626600400460a0002825104d44cc132600294298103d87a8000a60103d87980004120660986e9c0092f5c113304c9800a51a60103d87a8000a60103d87980004120660986e9ccc130dd400080125eb8104820903758609660980026eb4c12c008cc008008c12c00504844ca6002003004801d200040044444b30010038acc00400a2003164129198008024c13400e609a005332259800980380144cdc00019bad303c304b375400516412460980066eb4c13000900420948b208691119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c824a26600a00a609e0088248dd718240009bad3049001304b001412464646600200200c44b3001001801c4c8cc896600266e4402400a2b30013371e0120051001803209489980280298280022094375c60920026eacc128004c13000504a0a5eb7bdb18052000912cc004c0f8c10cdd500144c8c96600260940050038b208e375a609000260886ea800a2c821244646600200200644b30010018a5eb8226644b30013375e609660906ea8c12cc120dd5181c98241baa00230313304a375200a97ae089982500119802002000c4cc01001000504618248009825000a08e91823182398239823800c8888c8cc004004014896600200313304a337606ea4014dd400225eb7bdb1822653001375c6090003375a6092003304d00248896600266e4002400e26609c66ec0dd48049ba80080058acc004cdc7804801c6600201300880148cc13ccdd81ba900a37500020051001401d13304e337606ea400cdd400119803003000a0944128304b0014125222232330010010052259800800c4cc128cdd81ba9005374c00897adef6c608994c004dd71824000cdd59824800cc1340092225980099b9000900389982719bb037520126e980200162b30013371e01200719800804c02200523304f337606ea4028dd30008014400500744cc138cdd81ba9003374c0046600c00c002825104a0c12c005049496600200314a314a0822224444464b3001304200180144c00c00504619b800040039b8148002444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c1300066eb4c1340066600600660a20048048c13c00504d1bab304a003375c608e00266006006609800460940028242444653001001802400d0011112cc00400a2b30010018a518a504125159800800c5284566002660086096004609600319800801cc13000a6098002801a2941046209241252259800981f18219baa0028991919194c004c12c0066096007304b002488966002609e00913302e304e00713302b002132598009823000c4c8ca60026eb4c14400660a4003375a60a20049112cc004c15400a264646644b300130590038094590561bae3056001375c60ac00460ac0026eb0c15000a2c829060a200260986ea800a2b3001303b001899194c004dd69828800cc1480066eb4c14400922259800982a80144c8c8cc896600260b20070128b20ac375c60ac0026eb8c158008c158004dd6182a0014590520c144004c130dd50014566002608a0031323298009bad30510019829000cdd698288012444b300130550028991919912cc004c16400e0251641586eb8c158004dd7182b001182b0009bac30540028b20a4182880098261baa0028acc004c11c0062646644b300130530018991919912cc004c15c00e0211641506eb8c150004dd7182a001182a0009bac30520018b20a0375a60a000260a200260986ea800a2b3001303a0018991919912cc004c15000e01b1641446eb4c144004dd69828801182880098261baa0028acc004c0e400626464653001375a60a4003375a60a4007375a60a40049112cc004c15801201f16414c30520013051001304c3754005159800981c000c4c8c96600260a400500b8b209e375a60a000260986ea800a2b30013370e9007000c4c8c96600260a400500b8b209e375a60a000260986ea800a2c825104a20944128825104a2094412860946ea80062c826060960026094002609200260886ea800a2c821244b30010018a4d13259800800c5268992cc004cdc81bae30453049003375c608a00313300400433048001304a0028b2088304800141186090002822a6e2520009b88480012222222222222222222229800982b1baa0149809809c8a600266028004466ebcc174c168dd5182e982d1baa304b305a37540026086660b86ea40092f5c14a14a282ba44653001001801c0090011112cc00400a200313298008024c18400f30010029bae305c0019bab305d00191111192cc004c0540060051300300141846465300100180340150011112cc00400a200313298008024c1ac00f30010029bae30660019bad3067001802a036401060d20048339404d0102008305f0024175232330010010022259800800c52f5bded8c11323305d3376060b40026e98c8cc004004dd5982e001112cc004006297adef6c608991983019bb0305d0013750601c6eb4c178004cc00c00cc188008c18000505e19801801982f801182e800a0b691112cc004c1540062946266e24004c8cc004004014896600200314800226644b30013375e60c460be6ea800801e266e0000660026eacc140c17cdd50014dd718310034dd71828003202e8800a0ba3060001330020023061001417882ca60060069111111194c00488c8cc004004008896600200314bd7044cc194c96600260bc60c66ea8006260ce60c86ea80062c8310cc014010dd69833000998010011833800a0c89111192cc004c178c18cdd5000c4c96600266ebcc1a0c194dd5183418329baa305630653754002609c660ce6ea40152f5c1159800982a4c004dd5982b18329baa305630653754003005a450d7374616b696e675f7661756c7400407513259800982f98329baa0018991980f0008998349ba898009bab30583067375460b060ce6ea800e00d4881045553447200407c660d260d460ce6ea8004cc1a400d2f5c060d260cc6ea80062c8320c15cc194dd5182b18329baa0018b20c68b20c63067306437540031641886600a00800322223259800982f18319baa0018992cc004cdd7983418329baa306830653754002609c660ce6ea40152f5c1159800982a4c004dd5982b18329baa001802d22010d7374616b696e675f7661756c7400407513259800982f98329baa0018991980f0008acc004cdd7980e18339baa0034c0103d87a80008998349ba898009bab305830673754007006a441045553447200407c660d260d460ce6ea8004cc1a400d2f5c116419460d260cc6ea80062c8320c15cc194dd5000c59063459063183398321baa0018b20c433005004001911111112cc004cdd7983518339baa007306a3067375400d15980099baf30593067375400e60b060ce6ea801a264b30019800800d28c888966002003130170028a5041a880ba264b30013371200800315980099b890010038800c590674590674c0040066eb8c1ac0126eb8c1acc1b0011020459066198069bab30583067375400e60193001375c60d400b375c60d460d600b301700448896600260c8003100b8cc00402e0073232002300e0013306c337606ea4008dd4000a5eb7bdb1824444464b3001302200180144c00c00506e194c004012011007911114c004016007004801400500620485020407483411641951641952229800998041bab305330623754004600e6eacc14cc188dd5182998311baa003a5191112cc0040062b30013371e0089101008a518acc004cdc7802002c4cdc7801a4410455534472008a5041908322294106420224888896600260a401b19800998029bac3067306437540426eb0c154c190dd5013cdd6183398321baa027982a98321baa0454889660026601c6eb0c1a8c19cdd502e1bae306a3067375460a260ce6ea80062b30019800998111bac306a306737540b8466ebcc1acc1a0dd5183598341baa30593068375400260d660d06ea8c088c1a0dd5001528528a0ca8992cc004c048006264646644b300130170028acc0056600260cc00514a31301600141a91332259800cc00400a015223259800983518381baa0018991980f8008acc004cdd7981398391baa00330753072375400915980099baf30633072375400260ea60e46ea800e2b3001337126eb4c18cc1c8dd5001cc004dd5983198391baa306330723754009375c60ea00b375c60c600a8152264b30013061307237540031325980099b87375a60ee0026eb4c194c1d0dd5002c4cdc39bad30773078001375a60cc60e86ea8016294107218399baa0018a5041c460c860e46ea80062c83822c83822c8380c1d0c1c4dd5000c5906f183118381baa30613070375400480e22646644b30019800983a183a8044c1d0c1d400a6eb8c188c1c4dd5182d98389baa00b4039132332259800980f800c56600266e1cdd6983b80299b8000a0048acc004cdc3cc004dd5981b183a1baa0699bae30653074375460bc60e86ea803a91010573555344720040b000915980098374c004dd5981b183a1baa0699bae30653074375460bc60e86ea803a91104555344720040b1198009bac3066307437540d3302e3074375401d3307630653074375460bc60e86ea8038cc1d93001054455534472004bd7040050184590724590724590724590722cc004c0700222b30013371266e0800801ccdc100080445268b20e08acc004cdc4801000c5268b20e041c066e0402c004cdc09bad30740030068b20de30730013322329800800c01a01d00d40044444b30010038a400113322598009838983b1baa001899b8098009bab30683077375460d060ee6ea8c1e801660f460ee6ea800660f460ee6ea800a015375a60d060ee6ea800a00f375a60d260ee6ea800ab3001307100d89bad30683077375400513370666e08dd69834183b9baa00200d00c41d480aa600200d307b005983d8024c1ec00d006459075183c0011980b8031bad307800141d86eb0c184c1bcdd503219838983018379baa3059306f3754012660e298106457355534472004bd704c004dd6183018371baa0639bae3023306e375460b060dc6ea80226eb8c17cc1b8dd5182c18371baa008816201a8b20d833022375860de60d86ea8184dd7182f18361baa3056306c375400c660dc60ba60d86ea8c158c1b0dd5003198372601054455534472004bd7045906a45906a1bad306d001375a60da00460da0033001375860d660d06ea81766eb8c074c1a0dd5182918341baa0029bae30593068375460a460d06ea800a05080422c8332600200700292cc004c048dd6982c98341baa0018acc004c048dd6982d18341baa001898311bad302a3068375400314a08332294106620408b20ca8b20ca456600260a201b19800998029bac3067306437540426eb0c154c190dd5013cdd6183398321baa027982a98321baa0454889660026601c6eb0c1a8c19cdd502e1bae306a3067375460a260ce6ea80062b30019800998111bac306a306737540b8466ebcc1acc1a0dd5183598341baa30593068375400260d660d06ea8c088c1a0dd5001528528a0ca8992cc004c048006264646644b300130160018acc004c05800a33001329800800c0269000200222259800801440063300100398398014c96600260366eb4c0c8c1c0dd5000c56600266e24dd6981918381baa0013370666e08dd6983098381baa001005006899b80002375a606460e06ea80062c83722c8370c1c800900320e0998111bac306f306c37540c26eb8c178c1b0dd5182b18361baa00699837182e98361baa3056306c375400c660dc98106457355534472004bd702444b30019800801402e4464b3001306b307137540031323302000115980099baf30283073375400660ec60e66ea80122b30013375e60c860e66ea8004c1d8c1ccdd5001c56600266e24dd6983218399baa00398009bab30643073375460c860e66ea80126eb8c1d80166eb8c19001502b44c96600260c260e66ea800626464b30013370e6eb4c1e4008dd69833983b1baa0068acc004cdc39bad3079001375a60d060ec6ea801a266e1cdd6983c983d0009bad30383076375400d14a083a22941074183c800983a1baa0018a5041c860ca60e66ea80062c838a2c838a2c8388c1d4c1c8dd5000c59070183198389baa30623071375400480ea2b30013370f30013756606260de6ea81926eb8c180c1bcdd5182c98379baa009a44105735553447200409c603e0111323259800cc004c1d0c1d402260e860ea003375c60c460e26ea8c16cc1c4dd5005a01c8acc004cdc39bad30740023370266e04018cc88ca6002003007808403d00111112cc00400e2900044cc896600260e660f06ea8006266e0260026eacc1a8c1e4dd51835183c9baa307c005983e183c9baa001983e183c9baa002805cdd69835183c9baa002803cdd69835983c9baa00299b813370666e08dd69835183c9baa00200e00f375a607660f26ea80090174c00401a60fa00b307d004983e801a00c8b20ee307a00233019006375a60f400283c0dd6183198389baa0663307330623071375460b660e26ea802ccc1cd3001054455534472004bd70002c56600266e1cdd6983a00099b8100700a8acc004c1ae60026eacc0ccc1c4dd50334dd7183118389baa305b3071375401748904555344720040a5198009bac3063307137540cd302b307137540173307330623071375460b660e26ea802ccc1cd3001054455534472004bd70401501545906f45906f45906f45906f183a000cc004dd6183098379baa0649bae3024306f375460b260de6ea80266eb8c180c1bcdd5182c98379baa009816a01c8b20da8b20da45906a45906a1bad306d001375a60da00460da0033001375860d660d06ea81766eb8c074c1a0dd5182918341baa0029bae30593068375460a460d06ea800a05080422c8332600200700292cc004c048dd6982c98341baa001898091bad305a3068375400314a083310204590654590652294106220c4112cc004cdc4000a400114c103d87a8000899804001000a0bc22c8200dd6982198201baa001304330443044304430443044304037540071640f86002607e6ea8008c100c0f4dd500e118209821182118211821000c4c8cc896600260880031332259800981e18209baa002899191919912cc004c12c00e264b3001304230473754003132323322598009828001c4c966002608e00313232598009829801403a2c8280dd7182880098269baa0078acc004c0f00062b3001304d375400f00c8b209c8b2096412c60966ea801a2c8268dd718268009bae304d002304d00130483754003164118609400b1641206eb8c120004c120008c120004c11c004c108dd50014590401821800898021822002c590411bae304100130420013758608000481f2264600460800066eb4c0f800903c44c8c008c0f800cdd6981e00120748b2070181a800981a00098198009819000981880098161baa0018b2054302e0058b205837586058002605800460580026056002604c6ea80162c8120646464b3001301c302137540031323322598009814800c4c9660026040604a6ea8006264646464646464646464646530013035001981a805cc0d402a606a0133035008981a803cc0d401a606a00b3035004981a801cdd6181a801244444444444b3001304100c899810182000b8998100050998100048998100040998100038998100030998100028998100020998100018acc004c0dcc0f0dd500144c8c8c8c8ca60026eb8c1140066eb8c1140166eb8c1140126eb8c11400e6eb8c1140092222259800982580344cc0dc02c896600200513302b01710288992cc004c110c124dd5000c4c8c8c8cc896600260a600713232332259800982b801c4c02cc15c0322c82a0dd7182a0009bae30540023054001375860a400b1641406eb4c140004dd698280011828000982780098251baa0018b2090304c00241291641203045001304400130430013042001303d37540051640ed1640f8303500130340013033001303200130310013030001302f001302e001302d001302c001302b0013026375400316409060500031640986eb8c098004c09c004c088dd5000c59020192cc004c070c084dd5000c4c966002603860446ea80062604c60466ea80062c8108c050c088dd5180998111baa30253022375400316408064660020026eb0c04cc088dd500b912cc004006298103d87a80008992cc004c8cc004004c014dd5980b18129baa30163025375400444b30010018a508acc004cdc79bae30290010238a518998010011815000a048409d1300f330260014bd7044cc00c00cc0a00090221813000a04830010012259800800c52f5c113302330203024001330020023025001408844b3001301b30203754005132323259800981400144cc018c09c00c4c966002603e00315980098129baa002802c590264566002602800313232598009815801401e2c8140dd7181480098129baa0028acc004c07800626464b3001302b002803c59028181480098129baa0028b2046408c8118c08cdd5000c590251813000981300098109baa0028b203e30040042259800980c980f1baa00289919192cc004c09800a266010604a006264b3001301d0018992cc004c0a000626464b300130200018992cc004c0ac00626601a60540020131640a0604c6ea800a2b3001301500189919194c004dd69816000cdd69816001cdd698160012444b3001303000480745902d0c0b0004c0ac004c098dd5001459024204830243754002604e00316409460466ea800a2b300130120018acc004c08cdd500140162c81222c810902118109baa0018b204630240013024001301f3754005164074456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d9590021", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProtocolStakeProtocolStakeElse { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594076010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692013265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495d6578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d20726571756573742e616d6f756e7400168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491765787065637420757364725f6d696e746564203d3d203000168a99801a49756578706563740a2020202076616c69646174655f7661756c745f6e6f5f74726173685f746f6b656e73280a2020202020207661756c745f696e7075742c0a2020202020207661756c745f6f75747075742c0a20202020202073657474696e67732e72656769737472792e757364722c0a202020202900168a99801a49a96578706563740a20202020216c6973742e616e79280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a2020202020202020696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2073657474696e67732e756e7374616b65645f7969656c645f706f742e7061796d656e745f63726564656e7469616c0a2020202020207d2c0a202020202900168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d65720016488888888888888966003300130143754035370e90034dc3a4001370e9002244446465300130193754003301d006980e8012444b300130060038cc004c080c074dd500248c084c088c088006460426044003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba54800246042604460446044604460446044604460446044003374a90012444444444446466446464b30010018cc004889660026034605e6ea800e264b300100180144c96600200313259800800c012264b30010018acc004c0e000a330010038992cc004c07c0062b300130353754005007803206c8acc004c050006264b3001001803c4c966002003008804402201113259800981e001c02a01281c8dd7000a078303900140dc606a6ea800a2b3001301e0018992cc00400600f13259800981d801402601081c0c0e4005037181a9baa002803206440c88190c0ccdd5000c01500b4015035401600b005802a072303600140d0606c005003801c00e00681b8c0d000503218181baa003800a05a9112cc004c068c0bcdd5001c4c9660020030028992cc004006264b300100180244c96600200313259800981a800c56600266e252004303400180344c9660026074009132598009810800c566002606e6ea801a01300840e1159800980b000c4c9660020030098992cc00400601500a80544c966002607c00700c805a076375a00300a40f8607600281c8c0dcdd500345660026040003159800981b9baa006804c0210384021034206840d0606a6ea801600e81b8c050c0d000503240190361baa001802c01600b00540e4606c00281a0c0d800a007003801c00d037181a000a0643030375400700140b522259800980d18179baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c9660026074007008803a06e375a00300640e8606e00281a8dd7000981b001206e303400140c860606ea800e002816a44464b3001301b0018992cc00400600713259800800c0120090048992cc004c0e000e00d00540d46eb400600881c0c0d400503318189baa0048acc004c0400062b3001303137540090038012064801205c40b8605e6ea800d222298009112cc004c078c0ccdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003159800981f80146600200d19800800c0260108062010807201081e20110088044021040181e800a076375a002607800500540f4607400281c0c0e800a007003801c00d03b181c000a06c3034375400700140c522259800980f18199baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c036264b300130450038cc00403233001004807c039012403901440390421bad001806a08a30420014100608400500b805c02e0168218c10000503e1bad001303f0028042080303d00140ec6eb4004c0f000a00a81e8c0e8005038181d001400e007003801a076303800140d860686ea800e002818a444b3001301e3033375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c11400e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c12800e029013411c6eb800504a1823800a08a375c002608c0048238c1100050424039012403901440390421bac001806c0350451821000a0803042002805c02e01700b410c608000281f0dd6800981f8014021040181e800a076375a002607800500540f4607400281c0c0e800a007003801c00d03b181c000a06c3034375400700140c522259800980f18199baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c4c966002608a00719800806466002009159800800c03a264b3001001807c03e01f00f899912cc00400602313259800800c04a02501280944c9660026094007014809a08e375c0028250c11c0050451bae0013046002411c6088002821201c809201c80a201c8210dd6000c03601a8228c1080050401821001402e01700b805a086304000140f86eb4004c0fc00a0108200c0f400503b1bad001303c002802a07a303a00140e06074005003801c00e00681d8c0e0005036181a1baa003800a0624888966002603e60686ea8026264b3001001811c4c96600200313259800800c096264b30010018992cc00400604f13259800800c0a2051132598009820001c566002604c60766ea801a264b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e899912cc00400606113259800800c0c6063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c4c9660020030388992cc0040062b30013050002899816007112cc00400a26605c01a44b30010028cc00401e330010058992cc004c0ecc140dd500cc4c96600200303f8992cc004006264b3001001820c4c966002003159800982c80144cc8966002608200313259800800c116264b3001001823411a264b3001305e00389981d000912cc00400a00f13259800800c660020031300230610038252052825412a09504a418860be00482ea08e82d8dd6000c11a08c82f0c16c005059182b9baa0058acc004c0d8006264b3001001822c4c96600200304682344c96600260bc00713303a0012259800801401e264b30010018cc0040062600460c200704a40a504a825412a0948310c17c00905d411d05b1bac001823411905e182d800a0b23057375400b1598009820000c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094815209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea80162b300130420018992cc00400608b13259800800c11a08d13259800982f001c4cc0e800489660020050078992cc00400633001001898011830801c12902a412a09504a82520c4305f0024175047416c6eb000608d046417860b600282c8c15cdd5002c566002606a00313259800800c116264b3001001823411a264b3001305e00389981d000912cc00400a00f13259800800c660020031300230610038252056825412a09504a418860be00482ea08e82d8dd6000c11a08c82f0c16c005059182b9baa0058acc004c0d0006264b3001001822c4c96600200304682344c96600260bc00713303a0012259800801401e264b30010018cc0040062600460c200704a40ad04a825412a0948310c17c00905d411d05b1bac001823411905e182d800a0b23057375400b1598009819800c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094816209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea80162b30013370e9007000c4c9660020030458992cc00400608d0468992cc004c17800e26607400244b3001002803c4c96600200319800800c4c008c18400e094816209504a8254129062182f80120ba823a0b6375800304682320bc305b001416460ae6ea801608882a105420a8415082a105420a84150264b300130400018992cc00400608913259800800c56600260b800519800800c02208a814a08a82ca08b045822c11505d182d000a0b030563754005159800981a800c4c9660020030448992cc0040062b3001305c0028acc004c108c15cdd5000c4c9660020030468992cc004006264b300100182444c966002003159800983000146600200719800800c0320928172092817209282ea093049824c125061182f000a0b8305e002823c11e08f047417c60b800282d0c160dd5000c1150554115059411608b045822a0ba305a001416060ac6ea800a0868299053182a1baa001305437540070424159042821410a08482d0c15c005055182b801410208104082020b03055001414c60a26ea806607c82704cc0c00548966002005133223259800981f982a1baa001899912cc004c104c158dd5000c660026eb4c168c15cdd5000cc168c15cdd5181c182b9baa02b9112cc00400a298103d87a80008acc004c1100062606a660b860ba00497ae08cc00400e60bc005337000029000a006415c82da44646600200200644b30010018a508acc004c00cc178006294626600400460be00282c105c48c16cc170c170c170c170c170c170c170c170c170c170c170006444b300130393059375460ba646600200200644b30010018a5eb84103d87a80008101800044c8cc89660033001303e305e375460c40074a14a282e22660c330014a14c103d87a8000a60103d87980004170660c26e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c19000400e294626600400460ca00282f106244cc186600294298103d87a8000a60103d87980004170660c26e9c0092f5c11330619800a51a60103d87a8000a60103d87980004170660c26e9ccc184dd400080125eb8105c20b8375860c060c20026eb4c180008cc008008c18000505d44ca6002003004801d200040044444b30010038acc00400a2003153305c49112657870656374205b5d203d206c6973745f620016417d159800801454cc1712411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260c4007306200299912cc004c01c00a266e0000cdd6982098301baa0028a9982f24811a6578706563742076616c69646174696f6e2872657175657374290016417460c20066eb4c18400900420be417d153305849012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e6469636573290016415d222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01905d44cc014014c19001105d1bae305d001375a60bc00260c000282f0c8c8cc004004018896600200300389919912cc004cdc8804801456600266e3c02400a20030064179133005005306500441786eb8c178004dd5982f8009830800a0be14bd6f7b6300a4001222598009822182c9baa0038992cc00400600513259800800c00e0070038992cc004c18400e00b00441786eb40060068308c17800505c182d1baa003800a0ae911919800800801912cc004006297ae0899912cc004cdd79830182e9baa3060305d3754607c60ba6ea8008c0d8cc17cdd4802a5eb822660be00466008008003133004004001416860bc00260be00282e2460b660b860b860b8003222232330010010052259800800c4cc17ccdd81ba9005375000897adef6c608994c004dd7182e800cdd6982f000cc1880092225980099b9000900389983199bb037520126ea00200162b30013371e01200719800804c022005233064337606ea4028dd40008014400500744cc18ccdd81ba900337500046600c00c00282f105e0c18000505e48888c8cc004004014896600200313305f337606ea4014dd300225eb7bdb1822653001375c60ba003375660bc003306200248896600266e4002400e2660c666ec0dd48049ba60080058acc004cdc7804801c6600201300880148cc190cdd81ba900a374c0020051001401d133063337606ea400cdd300119803003000a0bc417830600014179259800800c528c52820b2891111192cc004c11c00600513003001416866e0001000e6e0520009111919800800802112cc004006200913233223322330020020012259800800c400e26530010059bae30610019bad30620019980180198330012012306400141886eacc17c00cdd7182e000998018019830801182f800a0ba911194c0040060090034004444b30010028acc0040062946294105e456600200314a11598009980218300011830000c6600200730610029830800a0068a50416882f105e488966002608860b26ea800e264b300100180144c96600200313259800800c012264b30010018992cc00400600d13259800800c4c9660020030088992cc004c19800a330010078cc004016264b3001304d0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b300130420018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001304c0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009838001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800983a801c0660308390dd7000a0ea307200141c06eb8004c1c40090721837800a0da809a0da375800301280920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001304e0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f132598009836801c5660020030108992cc004006023011808c04626644b3001001809c4c96600200301480a4052029132598009839001c05a02a8378dd7000a0e4306f00141b46eb8004c1b800906f1836000a0d480820d4375800300f807a0da306a00141a06eb4004c1a400a0188350c19c00506518319baa0048acc004c104006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e264b3001306d003808c04106a1bad001807a0da306a00141a06eb4004c1a400a0188350c19c00506518319baa0048acc004c100006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e26644b3001001808c4c966002003012809404a264b3001307000380a404d06d1bad00180920e0306d00141ac6eb4004c1b000a01e8368c1a80050681bad001306900280620d43067001419460c66ea80122b3001303f0018992cc00400601713259800800c03201900c8992cc004c1a800e01d00d419c6eb40060188350c19c00506518319baa0048acc004cdc3a401c00313259800800c02e264b30010018064032019132598009835001c03a01a8338dd6800c03106a1833800a0ca3063375400900a4180830106020c04180830106020c03061375400700940d500940e1009418c60c80028310c19000a00f007803c01d0651831000a0c03062002802c01600b005418c60c000282f0c18000a007003801c00d061182f000a0b8305a3754007001415d2259800800c5268992cc00400629344c96600266e40dd7182d182f0019bae305a0018998020021982e800982f801454cc1652401326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f726465720016416060ba00282d8c17400505a4dc4a40013710900024444444444444444444453001306b37540293013013914c004cc0500088cdd7983918379baa3072306f375460a060de6ea8004c120cc1c4dd480125eb8294294506b488ca6002003003801200222259800801440062653001004983b001e6002005375c60e2003375660e4003222223259800980a800c00a2600600283a8c8ca6002003006802a00222259800801440062653001004984000801e6002005375c60f6003375a60f8003005406c8020c1f800907c2809a020401060e800483924646600200200444b30010018a5eb7bdb182264660e466ec0c1bc004dd319198008009bab30710022259800800c52f5bded8c1132330753376060e40026ea0c038dd6983980099801801983b801183a800a0e6330030033074002307200141c1222259800982d000c528c4cdc48009919800800802912cc0040062900044cc896600266ebcc1dcc1d0dd5001003c4cdc0000cc004dd5982a983a1baa0029bae30770069bae3055006405d100141c460ea0026600400460ec002839906d4c00c00d2222222329800911919800800801112cc004006297ae089983d192cc004c18cc1e0dd5000c4c1f0c1e4dd5000c54cc1dd24013965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641d86600a0086eb4c1ec004cc008008c1f000507948888c96600260c660f06ea8006264b30013375e60fa60f46ea8c1f4c1e8dd5182d983d1baa00130533307c375200a97ae08acc004c16660026eacc16cc1e8dd5182d983d1baa001802d2210d7374616b696e675f7661756c74004075132598009832183d1baa0018992cc0040063300100189983f1ba898009bab305d307c375460ba60f86ea800e00d489045553447200407c660fc60fe60f86ea8004cc1f800d2f5c1070407907083841c20e0840808c1f8c1ecdd5000c1b9078182e183d1baa305b307a375400315330784901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd15330784914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea80062a660ee92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641d86600a008003222232598009831983c1baa0018992cc004cdd7983e983d1baa307d307a375400260a6660f86ea40152f5c1159800982ccc004dd5982d983d1baa001802d2210d7374616b696e675f7661756c74004075132598009832183d1baa0018992cc004006330010018acc004cdd7980e183e1baa0034c103d87a800089983f1ba898009bab305d307c3754007006a441045553447200407c660fc60fe60f86ea8004cc1f800d2f5c1153307a490126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001641e5070407907083841c20e0840808c1f8c1ecdd5000c54cc1e524012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001641e060b860f46ea80062a660f092014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641dd153307849141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641dc60f860f26ea80062a660ee92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641d86600a008003222222225980099baf307f307c375400e60fe60f86ea801a2b30013375e60bc60f86ea801cc174c1f0dd500344c9660033001001a5191112cc0040062602e00514a083f101744c96600266e240100062b30013371200200710018a9983e2481216578706563742064656c697665726564203c3d206d61785f64656c697665726564001641ed153307c491216578706563742064656c697665726564203e3d206d696e5f64656c697665726564001641ed30010019bae3080010049bae3080013081010044081153307b490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641e86601a6eacc174c1f0dd500398064c004dd7183f802cdd7183f984000802cc05c011222598009834800c402e3300100b801cc8c8008c038004cc20404cdd81ba9002375000297adef6c6091111192cc004c08800600513003001420804653001004804401e444453001005801c01200500140188121408101d20f8454cc1e924128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d001641e5153307a4912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e61646472657373001641e52229800998041bab305830773754004600e6eacc160c1dcdd5182c183b9baa003a5191112cc0040062b30013371e008911008a518acc004cdc7802002c4cdc7801a4410455534472008a5041e083c2294107820224888896600260ae01b19800998029bac307c307937540426eb0c168c1e4dd5013cdd6183e183c9baa027982d183c9baa04e4889660026601c6eb0c1fcc1f0dd50309bae307f307c375460ac60f86ea80062b30019800998111bac307f307c37540c2466ebcc20004c1f4dd5184000983e9baa305e307d375400261000260fa6ea8c088c1f4dd5001528528a0f28992cc004c048006264646644b300130170028acc0056600260d600514a31301600141f91332259800cc00400a01522325980098379842809baa0018992cc004006330010018acc004cdd798139843809baa003308a01308701375400915980099baf30683087013754002611402610e026ea800e2b3001337126eb4c1a0c21c04dd5001cc004dd598341843809baa30683087013754009375c61140200b375c60d000a8152264b3001306630870137540031325980099b87375a6118020026eb4c1a8c22404dd5002c4cdc39bad308c01308d01001375a60d66112026ea80162941086011844009baa0018a5042140460d2610e026ea80060fe84200a0fc84200a0fa84200a0f880fa0f907c83e41f108c011844809843009baa00183ca106023067308501375460cc610a026ea800901c44c8ca60026eb4c220040066644653001001803c03e01c800888896600200714800226644b300100484300c4cc896600200b08901899912cc004c1ecc24004dd5000c4cdc04c004dd598391848809baa3072309101375400d3094013091013754003309401309101375400900f9bad3072309101375400900b9bad3073309101375400959800983d80944dd698391848809baa004899b83337046eb4c1c8c24404dd5002009008a11c024069300100a802c00e004805211802847008c24c04014cc070028dd6984900802a12002309001004309101004423804611c02006611e02006846008dd618339842809baa06a33087013066308501375460be610a026ea8028cc21c05300106457355534472004bd704dd69844008012444b300198009845809846008054c22c04c230040126eb8c1a4c22004dd518311844009baa00d40411323322598009810800c56600266e1c018cdc0006002c56600266e1e60026eacc0e0c22c04dd50384dd718361845809baa3065308b0137540214890573555344720040b800b159800983acc004dd5981c1845809baa0709bae306c308b01375460ca6116026ea804291104555344720040b9198009bac306d308b0137540e13030308b0137540213308d01306c308b01375460ca6116026ea8040cc234053001054455534472004bd70400501a41f508801454cc224052412c6578706563742073757364725f6d696e746564203d3d20746f74616c5f73757364725f64656c6976657265640016422005153308901491566578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202b20746f74616c5f73757364725f64656c69766572656400164220051533089014910f65787065637420666565203e3d20300016422004b3001301e00a8acc004cdc499b8200300933704002015149a2a6610e029201626578706563740a2020202020207661756c745f757364725f696e202a2063697263756c6174696e675f73757364725f6265666f7265203e3d20746f74616c5f73757364725f64656c697665726564202a207661756c745f757364725f6265666f7265001642180515980099b890030018a4d15330870149012d657870656374207661756c745f757364725f696e203e3d20746f74616c5f73757364725f64656c6976657265640016421804843008cdc080680099b8100100883ca10a02184400800cc004dd618329841809baa0689bae3023308301375460ba6106026ea80226eb8c190c20c04dd5182e9841809baa008816201a8a9984080a49466578706563742076616c69646174655f7374616b655f696e70757473286f726465725f696e707574732c207374616b655f72657175657374732c20757364725f6173736574290016420004660446eb0c21004c20404dd50331bae3063308101375460b66102026ea8018cc20c04c188c20404dd5182d9840809baa00633083014c01054455534472004bd70454cc1fd2413d6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c207661756c745f757364725f6265666f7265203e2030001641f9153307f491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001641f86eb4c20804004dd6984100801184100800cc004dd6184000983e9baa0629bae301d307d375460ae60fa6ea800a6eb8c178c1f4dd5182b983e9baa00281420108a9983da4811c65787065637420746f74616c5f757364725f7374616b6564203e2030001641e93001003801496600260246eb4c178c1f4dd5000c56600260246eb4c17cc1f4dd5000c4c19cdd69815183e9baa0018a5041e914a083d102041b107941ad07922b3001305600d8cc004cc014dd6183e183c9baa021375860b460f26ea809e6eb0c1f0c1e4dd5013cc168c1e4dd50272444b30013300e375860fe60f86ea8184dd7183f983e1baa3056307c3754003159800cc004cc088dd6183f983e1baa06123375e61000260fa6ea8c20004c1f4dd5182f183e9baa001308001307d3754604460fa6ea800a94294507944c966002602400313232332259800980b000c566002602c00519800994c004006013480010011112cc00400a200319800801cc2200400a64b3001301b375a6064610a026ea80062b3001337126eb4c0c8c21404dd500099b83337046eb4c198c21404dd500080280344cdc00011bad3032308501375400315330830149012065787065637420722e666f7266656974203c3d20726571756573745f7573647200164208051533083014911565787065637420722e666f7266656974203e3d20300016420804610e020048019085014cc088dd61842009840809baa066375c60c66102026ea8c16cc20404dd50034cc20c04c188c20404dd5182d9840809baa00633083014c106457355534472004bd702444b30019800801402e4464b30013070308601375400313259800800c6600200315980099baf302830880137540066116026110026ea80122b30013375e60d26110026ea8004c22c04c22004dd5001c56600266e24dd698349844009baa00398009bab3069308801375460d26110026ea80126eb8c22c040166eb8c1a401502b44c96600260cc6110026ea800626464b30013370e6eb4c23804008dd698361845809baa0068acc004cdc39bad308e01001375a60da6116026ea801a266e1cdd69847009847808009bad3038308b01375400d14a084400a2941088011847008009844809baa0018a5042180460d46110026ea80061000284280a0fe84280a0fc84280a0fa81020fb07d83ec1f508d011845009843809baa00183d2108023068308601375460ce610c026ea800901d456600266e1e60026eacc0c4c21004dd5034cdd718329842009baa305e308401375401348905735553447200409c603e0111323298009bad3089010019991194c00400600f010807a002222259800801c52000899912cc00401210e031332259800802c2280626644b3001307c30910137540031337013001375660e66124026ea8c1ccc24804dd50034c25404c24804dd5000cc25404c24804dd5002403e6eb4c1ccc24804dd5002402e6eb4c1d0c24804dd50024cdc099b83337046eb4c1ccc24804dd50020090099bad303f309201375400880da6002015005801c00900a42340508f01184a008029980e8051bad309301005424404612202008612402008847808c23c0400cc2400400d08d011bac306830860137540d6661100260ce610c026ea8c180c21804dd50059984400a601054455534472004bd704dd69844808012444b30019800984600984680805cc23004c234040126eb8c1a8c22404dd518319844809baa00e404515980099b870013370266e040240080222b30013370e00666e040280362b3001307398009bab303630890137540dd375c60d46112026ea8c18cc22404dd50075220104555344720040b1198009bac306b30890137540dd302e308901375401d3308b01306a308901375460c66112026ea8038cc22c053001054455534472004bd70402101841ed08601454cc21c05241536578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e65640016421805153308701491576578706563740a202020207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20746f74616c5f757364725f64656c697665726564202d20746f74616c5f666f7266656974001642180507a42180430890100198009bac306630840137540d3375c60486108026ea8c178c21004dd5004cdd718329842009baa305e308401375401302d403915330820149012a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e656400164204051533082014914b6578706563742076616c69646174655f756e7374616b655f696e70757473286f726465725f696e707574732c20756e7374616b655f72657175657374732c2073757364725f61737365742900164204048a9983fa49236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001641f9153307f4911c657870656374207661756c745f757364725f6265666f7265203e2030001641f86eb4c20804004dd6984100801184100800cc004dd6184000983e9baa0629bae301d307d375460ae60fa6ea800a6eb8c178c1f4dd5182b983e9baa00281420108a9983da4811d65787065637420746f74616c5f73757364725f6275726e6564203e2030001641e93001003801496600260246eb4c178c1f4dd5000c4c048dd6982f983e9baa0018a5041e881020d883ca0d683c914a083b10760896600266e2000520008a6103d87a8000899804001000a0e422a660aa92013665787065637420536f6d65287661756c745f6f75747075745f69647829203d2065787472612e7661756c745f6f75747075745f696478001641506eb4c160c154dd5000982c182c982c982c982c982c982a9baa0038a99829a4813465787065637420536f6d65287661756c745f696e7075745f69647829203d2065787472612e7661756c745f696e7075745f69647800164148600260a86ea8008c154c148dd50131182b182b982b982b982b800c4c96600200304082044c9660020030418992cc004006085042821410a26644b300100182244c966002003159800982e00144c966002608660b06ea800a264b3001001823c4c96600200313259800800c126264b30010018992cc00400609713259800800c13209904c82644c96600260c80071598009825182f9baa0068992cc00400609d13259800800c13e09f04f827c4cc89660020030518992cc0040060a5052829414a264b3001306a0038992cc004c144006264b300100182ac4c96600200305682b415a0ad132598009837001c04a0ae8358dd7000a0dc306b00141a460ce6ea802e2b300130460018acc004c19cdd5005c03e0a883420a8832106418329baa00a829a0ce375c0028350c19c0050651bae0013066002419c60c80028310c180dd5003413505d41350611bae001419060c200282f8c18400a09504a8254129062182f800a0ba305f0028244122091048418060ba00282d8c164dd5001411905609803982e0044115059411608b045822a0ba305a00141606eb8004c16400905a182b800a0aa375800304082020b03055002414d03d408103d408113259800800c0fa07d03e8991801982b0021bad00181f20ac3053002414513259800800c0f207903c8991801982a0021bad00181e20a83051002413d039413503981cc0e60728288c13800504c182700140de06f03781ba09e304c00141286eb4004c12c00a0688260c1240050471bad0013048002818a092304600141106eb0004c11400a05d02e411860860028208dd6000982100140ae0568218c10000503e181e1baa006814a072814a07a37580030288142080303d00140ec607a005026813409a04c81f0c0ec005039181d80140920490248122078303900140dc606a6ea8026044819080d406a03501a40c8664464b30013019302e37540031302f32337606066002606660680026eb0c0c8c0bcdd5000c54cc0b52418b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc028cc0ccdd480225eb812f5c11300c33033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756600c60586ea8044dd7181798161baa00132323259800800c5660026030605a6ea8006264b300100180ec4c96600200301e80f407a03d1332259800800c082264b30010018acc004c0dc00a2b3001301d3032375400313259800800c08a264b30010018992cc00400604913259800800c4c9660020030268992cc004006264b300100181444c96600200313259800800c0aa264b30010018992cc00400605913259800800c4c96600200302e8992cc004006264b300100181844c96600200313259800800c0ca264b30010018992cc00400606913259800800c4c9660020030368992cc00400606f037899912cc00400607313259800800c56600260a00051980080c46600202d1980080a4660020251980080846600201d19800806466002015198008044566002606c60966ea801a264b300100181dc4c96600200303c81e40f20791332259800800c0fa264b300100181fc0fe07f03f899912cc00400608313259800800c10a08504282144cc89660020030448992cc00400608b045822c11626644b3001001823c4c966002003048824412209113259800982f801c4cc0ec048896600200519800809440c209681a2264b30010018acc004c120c174dd5000c4c96600200304d8992cc00400609d04e899912cc0040060a113259800800c1460a3051899912cc0040060a713259800800c1520a90548992cc004c1ac00e2b300100782ac4c96600200305682b415a0ad1332259800800c162264b300100182cc1660b30598992cc004c1c000e2602060e002305a41b46eb80050701836800a0d6375c00260d80108368c1a801d06841550681bad00182a20d6306800141986eb4004c19c00a0a28340c1940050631bac001306400282741390651831000a0c0305e375400304c416d04c82641320988318c18000905e412505c1bae001417c60b800282d0dd7000982d80120b83059001415c6eb8004c160009059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270c130dd500340e904940e902240e902240e902240e902240e902240e902240e902240e902240e902240e904d40ea07503a81d20a2304e00141306eb0004c13400a06f037413860960028248c12c00a06b03581ac0d504c1824800a08e3049002819c0ce0670334128608e0028228c11c00a063031818c0c50481822800a0863045002817c0be05f02f411860860028208c10c00a05b02d816c0b50441820800a07e3041002815c0ae05702b4108607e00281e8c0fc00a053029814c0a5040181e800a076303d002813c09e04f02740f8607600281c8c0ec00a04b025812c09503c181c800a06e3039002811c08e04702340e8606e00281a8c0ccdd5000c08503040850344086043021810a070303500140cc6eb8004c0d00090351819000a060302e375400301c40ad01c80e40720388198c9660026030605a6ea8006264b30013018302e375400313032302f3754003153302d4913365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06020605c6ea8c03cc0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac64660020026eb0c03cc0b8dd5009912cc0040062980103d87a80008992cc004c8cc004004c014dd5980918189baa30123031375400444b30010018a508acc004cdc79bae303500102e8a51899801001181b000a05e40cd1300b330320014bd7044cc00c00cc0d000902d1819000a06030010012259800800c52f5c113302f302c303000133002002303100140b8444b30013016302b375400713259800800c00a264b30010018992cc00400600913259800800c566002606800519800801c4c966002603600313259800800c01e264b30010018acc004c0dc00a264b3001301e0018992cc00400601513259800800c566002607400519800800c032016807201681ba01700b805c02d03b181c000a06c303437540051598009809800c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c9660026082007013809207c375a0030114104607c00281e0dd6800981e801403903e181d800a072375a002607400500b40ec607000281b0c0d0dd5001402503120623032375400300840d1008804402201081c0c0d400503318189baa0028acc004c0400062b3001303137540050078032064803205c40b8605e6ea800600a804200a818a00b005802c0150351819000a0603032002801c00e00700340cc60600028170c0b0dd5001c005029111194c004006009003400444464b3001301a0018992cc00400600d13259800800c01e00f007803c4c966002606e0070058042068375c00281b8c0d000503218181baa0038acc004c03c006264b300100180344c966002003007803c4c966002606e0071330130012259800801401e264b30010018cc00402a00313002303a003402900b805c02e01681d8c0e000903640210341bac001803c01d037181a000a06430303754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0dc00e26602600244b3001002803c4c966002003198008054006260046074006805201700b805c02d03b181c001206c80420683758003007803a06e303400140c860606ea800e2b3001301b0018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981d001c4cc058004896600200500a8992cc0040063300100d800c4c008c0f400d00d403a01d00e807207c303b00240e500b40dc6eb000601500a40e8606e00281a8dd6800981b001401d037181a000a064303037540071598009807000c4c9660020030068992cc00400600f007803c4c966002606e0070058042068375a00300740dc60680028190c0c0dd5001c566002601a00313259800800c01a264b3001001803c01e00f13259800981b801c01601081a0dd6800c01d037181a000a064303037540071598009806000c4c9660020030068992cc00400600f007803c01e264b30013037003802c0210341bae00140dc60680028190c0c0dd5001c01502d205a40b4816902d205a40b4605c6ea8008888c966002602c00313259800800c00e264b300100180240120090048992cc004c0cc00e00d00540c06eb80050331818000a05c302c37540091598009805800c4c9660020030038992cc0040060090048024012264b3001303300380340150301bae00140cc60600028170c0b0dd500240090292052302a37540068acc004c02000e26464b30013009301e37546044604600514a314a080e0dd69810800980e9baa0048b20344068301c301d001301c00445268a998092491856616c696461746f722072657475726e65642066616c7365001365640441" + : "592264010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba54800246022602460246024602460246024602460246024003374a9001489660026012601c6ea800a264646644b30013017003802c590141bad3014001375c60280046028002601e6ea800a2c80692222222222229800911192cc004c05c00626464b300130230028024590201bae3021001301d37540071598009806000c4c966002604400313300e3758604200244b3001002802c6600200f3023002898009812001200e408516407c603a6ea800e2b300130160018992cc004c08800626601c6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c56600260300031323322598009812000c4cc040dd61811800912cc00400a00f19800804cc09400a26002604c00480490234590211bad30210013022001301d37540071598009805800c4c8c96600260460050048b2040375a6042002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd71810800980e9baa0038b2036406c80d901b2036406c80d8c06cdd5001488c966002602c0031323259800981100140122c80f8dd71810000980e1baa0038acc004c02c00626464b3001302200280245901f1bae3020001301c375400716406880d0c068dd500148966002602a60346ea800a2646464b30013022002899192cc004c0680062b3001302037540050068b20428acc004c03c00626464b300130260028044590231bad302400130203754005159800980c800c56600260406ea800a00d16408516407880f101e180f1baa00130210038b203e3259800980f000c56600266e252004301d0018b44c034c07400501c45901f1baa30200013020001301b3754005164065223259800980b000c4c8c96600260440050048b203e375a604000260386ea800e2b3001300b0018acc004c070dd5001c00a2c80ea2c80d101a180d1baa00248888cc88cc8a6002664464b3001301e302337540031302432337606050002605060520026eb0c09cc090dd5000c590221919800800801912cc004006298103d87a80008992cc004cdd7981280099ba548010cc0a0c03ccc0a0dd480225eb812f5c11301133028374e66050604a00266050604c00297ae04bd7044cc00c00cc0a80090241814000a04c3756601660426ea8058dd7181218109baa002912cc004c074c088dd500144c8c8c8cc89660026058007133008302b0051330100020068b20523029001375a60520046052002605000260466ea800a2c810a44b3001301d302237540051323232323298009bad302b0019bad302b0049bad302b003981580124444b30013030005899806181780489980a00080545902d0c0ac004c0a8004c0a4004c0a0004c08cdd500145902148966002603a60446ea800a26464646465300137586056003375a6056009375a6056007302b0024888966002606000b13300c302f0091330140011323322598009819801c0362c8180dd718180009bae303000530300048b205a181580098150009814800981400098119baa0028b2042912cc004c074c088dd500144c8c8c8c8ca60026eb0c0ac0066eb4c0ac0126eb4c0ac00e605600491112cc004c0c0016266018605e0122660280022646644b30013033003806c590301bae3030001375c606000a60600091640b4302b001302a0013029001302800130233754005164084911112cc004c080c094dd5002c4c8c8c8cc8966002605e00713259800981318159baa00189919191919194c004c0d40066eb0c0d40166eb4c0d40126eb4c0d400e606a004911112cc004c0ec01a26604e6eb0c0e802c8966002005133029006225980080144cc07c0144cc07c0244c966002606c60766ea804a2646464b3001304300289919912cc004c0f000a264b300130470018998199bac304600122598008014012266040609000426002609200482322c8220c108dd5001c5660026062005132598009823800c4cc0ccdd61823000912cc00400a0091330203048002130013049002411916411060846ea800e2b3001303b0028992cc004c11c0062660666eb0c11800489660020050048998109824001098009824801208c8b208830423754007159800981e80144c966002608e0031330333758608c00244b300100280244cc084c1200084c004c12400904645904418211baa0038acc004c0c000a264b300130470018998199bac304600122598008014012266044609000426002609200482322c8220c108dd5001c566002605e005132598009823800c4cc0ccdd61823000912cc00400a0091330223048002130013049002411916411060846ea800e2b3001302e0028992cc004c11c0062660666eb0c11800489660020050048998119824001098009824801208c8b20883042375400715980099b874803800a264b300130470018998199bac304600122598008014012266046609000426002609200482322c8220c108dd5001c59040208041008201040208041008200c0fcdd50008992cc004c0ec006264b300130460018998151822800803c5904318209baa0038acc004c0c0006264b300130460018992cc004c0f4c108dd5000c4c8c8c966002609400513302b304900313302b00100b8b208e3048001304800130433754003164104608a00316410c60826ea800e2c81f903f181f9baa00230420038b208030410013041001303c37540251640e826605602444b300100289991192cc004c0e8c0fcdd5000c4cc8966002607860826ea800633001375a608a60846ea8006608a60846ea8c0ccc108dd5010c8896600200514c0103d87a80008acc004c0fc006260606608e609000497ae08cc00400e6092005337000029000a006410c823244646600200200644b30010018a508acc004c00cc12400629462660040046094002822104748c118c11cc11cc11cc11cc11cc11cc11cc11cc11cc11cc11c006444b30013034304437546090646600200200644b30010018a5eb84103d87a80008101800044c8cc89660033001303930493754609a0074a14a2824226609930014a14c103d87a8000a60103d87980004120660986e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c13c00400e294626600400460a0002825104d44cc132600294298103d87a8000a60103d87980004120660986e9c0092f5c113304c9800a51a60103d87a8000a60103d87980004120660986e9ccc130dd400080125eb8104820903758609660980026eb4c12c008cc008008c12c00504844ca6002003004801d200040044444b30010038acc00400a2003164129198008024c13400e609a005332259800980380144cdc00019bad303c304b375400516412460980066eb4c13000900420948b208691119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c824a26600a00a609e0088248dd718240009bad3049001304b001412464646600200200c44b3001001801c4c8cc896600266e4402400a2b30013371e0120051001803209489980280298280022094375c60920026eacc128004c13000504a0a5eb7bdb18052000912cc004c0f8c10cdd500144c8c96600260940050038b208e375a609000260886ea800a2c821244646600200200644b30010018a5eb8226644b30013375e609660906ea8c12cc120dd5181c98241baa00230313304a375200a97ae089982500119802002000c4cc01001000504618248009825000a08e91823182398239823800c8888c8cc004004014896600200313304a337606ea4014dd400225eb7bdb1822653001375c6090003375a6092003304d00248896600266e4002400e26609c66ec0dd48049ba80080058acc004cdc7804801c6600201300880148cc13ccdd81ba900a37500020051001401d13304e337606ea400cdd400119803003000a0944128304b0014125222232330010010052259800800c4cc128cdd81ba9005374c00897adef6c608994c004dd71824000cdd59824800cc1340092225980099b9000900389982719bb037520126e980200162b30013371e01200719800804c02200523304f337606ea4028dd30008014400500744cc138cdd81ba9003374c0046600c00c002825104a0c12c005049496600200314a314a0822224444464b3001304200180144c00c00504619b800040039b8148002444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c1300066eb4c1340066600600660a20048048c13c00504d1bab304a003375c608e00266006006609800460940028242444653001001802400d0011112cc00400a2b30010018a518a504125159800800c5284566002660086096004609600319800801cc13000a6098002801a2941046209241252259800981f18219baa0028991919194c004c12c0066096007304b002488966002609e00913302e304e00713302b002132598009823000c4c8ca60026eb4c14400660a4003375a60a20049112cc004c15400a264646644b300130590038094590561bae3056001375c60ac00460ac0026eb0c15000a2c829060a200260986ea800a2b3001303b001899194c004dd69828800cc1480066eb4c14400922259800982a80144c8c8cc896600260b20070128b20ac375c60ac0026eb8c158008c158004dd6182a0014590520c144004c130dd50014566002608a0031323298009bad30510019829000cdd698288012444b300130550028991919912cc004c16400e0251641586eb8c158004dd7182b001182b0009bac30540028b20a4182880098261baa0028acc004c11c0062646644b300130530018991919912cc004c15c00e0211641506eb8c150004dd7182a001182a0009bac30520018b20a0375a60a000260a200260986ea800a2b3001303a0018991919912cc004c15000e01b1641446eb4c144004dd69828801182880098261baa0028acc004c0e400626464653001375a60a4003375a60a4007375a60a40049112cc004c15801201f16414c30520013051001304c3754005159800981c000c4c8c96600260a400500b8b209e375a60a000260986ea800a2b30013370e9007000c4c8c96600260a400500b8b209e375a60a000260986ea800a2c825104a20944128825104a2094412860946ea80062c826060960026094002609200260886ea800a2c821244b30010018a4d13259800800c5268992cc004cdc81bae30453049003375c608a00313300400433048001304a0028b2088304800141186090002822a6e2520009b88480012222222222222222222229800982b1baa0149809809c8a600266028004466ebcc174c168dd5182e982d1baa304b305a37540026086660b86ea40092f5c14a14a282ba44653001001801c0090011112cc00400a200313298008024c18400f30010029bae305c0019bab305d00191111192cc004c0540060051300300141846465300100180340150011112cc00400a200313298008024c1ac00f30010029bae30660019bad3067001802a036401060d20048339404d0102008305f0024175232330010010022259800800c52f5bded8c11323305d3376060b40026e98c8cc004004dd5982e001112cc004006297adef6c608991983019bb0305d0013750601c6eb4c178004cc00c00cc188008c18000505e19801801982f801182e800a0b691112cc004c1540062946266e24004c8cc004004014896600200314800226644b30013375e60c460be6ea800801e266e0000660026eacc140c17cdd50014dd718310034dd71828003202e8800a0ba3060001330020023061001417882ca60060069111111194c00488c8cc004004008896600200314bd7044cc194c96600260bc60c66ea8006260ce60c86ea80062c8310cc014010dd69833000998010011833800a0c89111192cc004c178c18cdd5000c4c96600266ebcc1a0c194dd5183418329baa305630653754002609c660ce6ea40152f5c1159800982a4c004dd5982b18329baa305630653754003005a450d7374616b696e675f7661756c7400407513259800982f98329baa0018991980f0008998349ba898009bab30583067375460b060ce6ea800e00d4881045553447200407c660d260d460ce6ea8004cc1a400d2f5c060d260cc6ea80062c8320c15cc194dd5182b18329baa0018b20c68b20c63067306437540031641886600a00800322223259800982f18319baa0018992cc004cdd7983418329baa306830653754002609c660ce6ea40152f5c1159800982a4c004dd5982b18329baa001802d22010d7374616b696e675f7661756c7400407513259800982f98329baa0018991980f0008acc004cdd7980e18339baa0034c0103d87a80008998349ba898009bab305830673754007006a441045553447200407c660d260d460ce6ea8004cc1a400d2f5c116419460d260cc6ea80062c8320c15cc194dd5000c59063459063183398321baa0018b20c433005004001911111112cc004cdd7983518339baa007306a3067375400d15980099baf30593067375400e60b060ce6ea801a264b30019800800d28c888966002003130170028a5041a880ba264b30013371200800315980099b890010038800c590674590674c0040066eb8c1ac0126eb8c1acc1b0011020459066198069bab30583067375400e60193001375c60d400b375c60d460d600b301700448896600260c8003100b8cc00402e0073232002300e0013306c337606ea4008dd4000a5eb7bdb1824444464b3001302200180144c00c00506e194c004012011007911114c004016007004801400500620485020407483411641951641952229800998041bab305330623754004600e6eacc14cc188dd5182998311baa003a5191112cc0040062b30013371e0089101008a518acc004cdc7802002c4cdc7801a4410455534472008a5041908322294106420224888896600260a401b19800998029bac3067306437540426eb0c154c190dd5013cdd6183398321baa027982a98321baa0454889660026601c6eb0c1a8c19cdd502e1bae306a3067375460a260ce6ea80062b30019800998111bac306a306737540b8466ebcc1acc1a0dd5183598341baa30593068375400260d660d06ea8c088c1a0dd5001528528a0ca8992cc004c048006264646644b300130170028acc0056600260cc00514a31301600141a91332259800cc00400a015223259800983518381baa0018991980f8008acc004cdd7981398391baa00330753072375400915980099baf30633072375400260ea60e46ea800e2b3001337126eb4c18cc1c8dd5001cc004dd5983198391baa306330723754009375c60ea00b375c60c600a8152264b30013061307237540031325980099b87375a60ee0026eb4c194c1d0dd5002c4cdc39bad30773078001375a60cc60e86ea8016294107218399baa0018a5041c460c860e46ea80062c83822c83822c8380c1d0c1c4dd5000c5906f183118381baa30613070375400480e22646644b30019800983a183a8044c1d0c1d400a6eb8c188c1c4dd5182d98389baa00b4039132332259800980f800c56600266e1cdd6983b80299b8000a0048acc004cdc3cc004dd5981b183a1baa0699bae30653074375460bc60e86ea803a91010573555344720040b000915980098374c004dd5981b183a1baa0699bae30653074375460bc60e86ea803a91104555344720040b1198009bac3066307437540d3302e3074375401d3307630653074375460bc60e86ea8038cc1d93001054455534472004bd7040050184590724590724590724590722cc004c0700222b30013371266e0800801ccdc100080445268b20e08acc004cdc4801000c5268b20e041c066e0402c004cdc09bad30740030068b20de30730013322329800800c01a01d00d40044444b30010038a400113322598009838983b1baa001899b8098009bab30683077375460d060ee6ea8c1e801660f460ee6ea800660f460ee6ea800a015375a60d060ee6ea800a00f375a60d260ee6ea800ab3001307100d89bad30683077375400513370666e08dd69834183b9baa00200d00c41d480aa600200d307b005983d8024c1ec00d006459075183c0011980b8031bad307800141d86eb0c184c1bcdd503219838983018379baa3059306f3754012660e298106457355534472004bd704c004dd6183018371baa0639bae3023306e375460b060dc6ea80226eb8c17cc1b8dd5182c18371baa008816201a8b20d833022375860de60d86ea8184dd7182f18361baa3056306c375400c660dc60ba60d86ea8c158c1b0dd5003198372601054455534472004bd7045906a45906a1bad306d001375a60da00460da0033001375860d660d06ea81766eb8c074c1a0dd5182918341baa0029bae30593068375460a460d06ea800a05080422c8332600200700292cc004c048dd6982c98341baa0018acc004c048dd6982d18341baa001898311bad302a3068375400314a08332294106620408b20ca8b20ca456600260a201b19800998029bac3067306437540426eb0c154c190dd5013cdd6183398321baa027982a98321baa0454889660026601c6eb0c1a8c19cdd502e1bae306a3067375460a260ce6ea80062b30019800998111bac306a306737540b8466ebcc1acc1a0dd5183598341baa30593068375400260d660d06ea8c088c1a0dd5001528528a0ca8992cc004c048006264646644b300130160018acc004c05800a33001329800800c0269000200222259800801440063300100398398014c96600260366eb4c0c8c1c0dd5000c56600266e24dd6981918381baa0013370666e08dd6983098381baa001005006899b80002375a606460e06ea80062c83722c8370c1c800900320e0998111bac306f306c37540c26eb8c178c1b0dd5182b18361baa00699837182e98361baa3056306c375400c660dc98106457355534472004bd702444b30019800801402e4464b3001306b307137540031323302000115980099baf30283073375400660ec60e66ea80122b30013375e60c860e66ea8004c1d8c1ccdd5001c56600266e24dd6983218399baa00398009bab30643073375460c860e66ea80126eb8c1d80166eb8c19001502b44c96600260c260e66ea800626464b30013370e6eb4c1e4008dd69833983b1baa0068acc004cdc39bad3079001375a60d060ec6ea801a266e1cdd6983c983d0009bad30383076375400d14a083a22941074183c800983a1baa0018a5041c860ca60e66ea80062c838a2c838a2c8388c1d4c1c8dd5000c59070183198389baa30623071375400480ea2b30013370f30013756606260de6ea81926eb8c180c1bcdd5182c98379baa009a44105735553447200409c603e0111323259800cc004c1d0c1d402260e860ea003375c60c460e26ea8c16cc1c4dd5005a01c8acc004cdc39bad30740023370266e04018cc88ca6002003007808403d00111112cc00400e2900044cc896600260e660f06ea8006266e0260026eacc1a8c1e4dd51835183c9baa307c005983e183c9baa001983e183c9baa002805cdd69835183c9baa002803cdd69835983c9baa00299b813370666e08dd69835183c9baa00200e00f375a607660f26ea80090174c00401a60fa00b307d004983e801a00c8b20ee307a00233019006375a60f400283c0dd6183198389baa0663307330623071375460b660e26ea802ccc1cd3001054455534472004bd70002c56600266e1cdd6983a00099b8100700a8acc004c1ae60026eacc0ccc1c4dd50334dd7183118389baa305b3071375401748904555344720040a5198009bac3063307137540cd302b307137540173307330623071375460b660e26ea802ccc1cd3001054455534472004bd70401501545906f45906f45906f45906f183a000cc004dd6183098379baa0649bae3024306f375460b260de6ea80266eb8c180c1bcdd5182c98379baa009816a01c8b20da8b20da45906a45906a1bad306d001375a60da00460da0033001375860d660d06ea81766eb8c074c1a0dd5182918341baa0029bae30593068375460a460d06ea800a05080422c8332600200700292cc004c048dd6982c98341baa001898091bad305a3068375400314a083310204590654590652294106220c4112cc004cdc4000a400114c103d87a8000899804001000a0bc22c8200dd6982198201baa001304330443044304430443044304037540071640f86002607e6ea8008c100c0f4dd500e118209821182118211821000c4c8cc896600260880031332259800981e18209baa002899191919912cc004c12c00e264b3001304230473754003132323322598009828001c4c966002608e00313232598009829801403a2c8280dd7182880098269baa0078acc004c0f00062b3001304d375400f00c8b209c8b2096412c60966ea801a2c8268dd718268009bae304d002304d00130483754003164118609400b1641206eb8c120004c120008c120004c11c004c108dd50014590401821800898021822002c590411bae304100130420013758608000481f2264600460800066eb4c0f800903c44c8c008c0f800cdd6981e00120748b2070181a800981a00098198009819000981880098161baa0018b2054302e0058b205837586058002605800460580026056002604c6ea80162c8120646464b3001301c302137540031323322598009814800c4c9660026040604a6ea8006264646464646464646464646530013035001981a805cc0d402a606a0133035008981a803cc0d401a606a00b3035004981a801cdd6181a801244444444444b3001304100c899810182000b8998100050998100048998100040998100038998100030998100028998100020998100018acc004c0dcc0f0dd500144c8c8c8c8ca60026eb8c1140066eb8c1140166eb8c1140126eb8c11400e6eb8c1140092222259800982580344cc0dc02c896600200513302b01710288992cc004c110c124dd5000c4c8c8c8cc896600260a600713232332259800982b801c4c02cc15c0322c82a0dd7182a0009bae30540023054001375860a400b1641406eb4c140004dd698280011828000982780098251baa0018b2090304c00241291641203045001304400130430013042001303d37540051640ed1640f8303500130340013033001303200130310013030001302f001302e001302d001302c001302b0013026375400316409060500031640986eb8c098004c09c004c088dd5000c59020192cc004c070c084dd5000c4c966002603860446ea80062604c60466ea80062c8108c050c088dd5180998111baa30253022375400316408064660020026eb0c04cc088dd500b912cc004006298103d87a80008992cc004c8cc004004c014dd5980b18129baa30163025375400444b30010018a508acc004cdc79bae30290010238a518998010011815000a048409d1300f330260014bd7044cc00c00cc0a00090221813000a04830010012259800800c52f5c113302330203024001330020023025001408844b3001301b30203754005132323259800981400144cc018c09c00c4c966002603e00315980098129baa002802c590264566002602800313232598009815801401e2c8140dd7181480098129baa0028acc004c07800626464b3001302b002803c59028181480098129baa0028b2046408c8118c08cdd5000c590251813000981300098109baa0028b203e30040042259800980c980f1baa00289919192cc004c09800a266010604a006264b3001301d0018992cc004c0a000626464b300130200018992cc004c0ac00626601a60540020131640a0604c6ea800a2b3001301500189919194c004dd69816000cdd69816001cdd698160012444b3001303000480745902d0c0b0004c0ac004c098dd5001459024204830243754002604e00316409460466ea800a2b300130120018acc004c08cdd500140162c81222c810902118109baa0018b204630240013024001301f3754005164074456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d9590021", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0ProxyNftProxyNftMint { + public Script: Script; + constructor(utxoRef: OutputReference, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "590377010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a4888888888c96600264653001300a00198051805800cdc3a4001300a0024888966002600460146ea800e264b30010058acc004c00cc02cdd5002c56600260186ea80162b30013003300b375464660020026eb0c040c034dd5001912cc004006298103d87a80008992cc004cdd7980918079baa001016899ba548000cc0440052f5c1133003003301300240306022002807a2b3001329800800d2f5c210140004c8cc004004dd59808980918091809180918071baa0042259800800c52f5c113233223322330020020012259800800c400e2646602e6e9ccc05cdd48029980b980a0009980b980a800a5eb80cc00c00cc064008c05c0050151bab3012003375c601e002660060066028004602400280810011112cc00400a2b30010018a518a99806a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164041159800800c54cc035241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180a801803c56600266e3c004dd7180a80144cdc39bad301530160024800a294100f4528201e3014001375c60260066eb0c0480063300100398098014c04c005003452820184040808229462a660149201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164025153300a4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640250084035008402500880440220108088dd7180718059baa0038b2010180500098029baa00b8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : "5901b8010100229800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400130080024888966002600460106ea800e26644b30013004300a375464660020026eb0c03cc030dd5002112cc004006298103d87a80008992cc004cdd7980898071baa001014899ba548000cc0400052f5c113300300330120024030602000280722b3001329800800d2f5c210140004c8cc004004dd59808180898089808980898069baa0052259800800c52f5c113233223322330020020012259800800c400e2646602c6e9ccc058dd48029980b18098009980b180a000a5eb80cc00c00cc060008c0580050141bab3011003375c601c002660060066026004602200280790011112cc00400a2b30010018a518b201e8acc0040062d1598009919912cc004cdc79bae30140030088acc004cdc78009bae3014002899b87375a6028602a00490014528201e8a50403c60260026eb8c04800cdd61808800c6600200730120029809000a0068a504030807900f4528c590094590091bae300c30093754006b300130023008375400915980098049baa0048a4d16402916401d16401c300800130033754011149a26cac8009", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + ]), + [utxoRef], + ), + "PlutusV3", + ); + } +} +export class V1_0ProxyNftProxyNftElse { + public Script: Script; + constructor(utxoRef: OutputReference, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "590377010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a4888888888c96600264653001300a00198051805800cdc3a4001300a0024888966002600460146ea800e264b30010058acc004c00cc02cdd5002c56600260186ea80162b30013003300b375464660020026eb0c040c034dd5001912cc004006298103d87a80008992cc004cdd7980918079baa001016899ba548000cc0440052f5c1133003003301300240306022002807a2b3001329800800d2f5c210140004c8cc004004dd59808980918091809180918071baa0042259800800c52f5c113233223322330020020012259800800c400e2646602e6e9ccc05cdd48029980b980a0009980b980a800a5eb80cc00c00cc064008c05c0050151bab3012003375c601e002660060066028004602400280810011112cc00400a2b30010018a518a99806a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164041159800800c54cc035241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180a801803c56600266e3c004dd7180a80144cdc39bad301530160024800a294100f4528201e3014001375c60260066eb0c0480063300100398098014c04c005003452820184040808229462a660149201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164025153300a4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640250084035008402500880440220108088dd7180718059baa0038b2010180500098029baa00b8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : "5901b8010100229800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400130080024888966002600460106ea800e26644b30013004300a375464660020026eb0c03cc030dd5002112cc004006298103d87a80008992cc004cdd7980898071baa001014899ba548000cc0400052f5c113300300330120024030602000280722b3001329800800d2f5c210140004c8cc004004dd59808180898089808980898069baa0052259800800c52f5c113233223322330020020012259800800c400e2646602c6e9ccc058dd48029980b18098009980b180a000a5eb80cc00c00cc060008c0580050141bab3011003375c601c002660060066026004602200280790011112cc00400a2b30010018a518b201e8acc0040062d1598009919912cc004cdc79bae30140030088acc004cdc78009bae3014002899b87375a6028602a00490014528201e8a50403c60260026eb8c04800cdd61808800c6600200730120029809000a0068a504030807900f4528c590094590091bae300c30093754006b300130023008375400915980098049baa0048a4d16402916401d16401c300800130033754011149a26cac8009", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + ]), + [utxoRef], + ), + "PlutusV3", + ); + } +} +export class V1_0RealfiMintingPolicyRealfiMintingPolicyMint { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "590605010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c96600264653001300b00198059806000cdc3a4001300b0024888966002600460166ea800e33001375c601e60186ea800e44b30010018a5eb82266020601a6022002660040046024002807a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80624444646600200200a44b30010018802c4c9660020031330043016002006899802980b00119801801800a0283016001404d2301030110019bab300f301030103010301030103010300c37540029111111919191991191929980b99b964910d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c19ba548008cc068dd4800a5eb80dd7180d180b9baa325330163372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4051220100132598009807980c1baa00189929980c19b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c068dd5000c4c9660020031598009809180d9baa0018992cc00400603113259800800c06603301980cc4cc896600200301b8992cc004c09400a200d01c408860460028108dd7000981100120463020001407860386ea800602e80ca02f01780bc05d021180f180d9baa0018a9980ca493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164060603a603c603c60346ea8c028c068dd5000980e180c9baa0018a9980ba4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164058646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806180e1baa300c301c375400444b30010018a508acc004cdc79bae30200010198a518998010011810800a034407913374a90001980e800a5eb82266006006603e00480c0c07400501b1bac3007301737540186002002601001044464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d203a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80b90171bac301a002375a60300026466ec0dd4180c0009ba73019001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a603a003337149101023a200098008054c07800600a805100a181000144ca6002015301d00199b8a489023a200098008054c078006600e66008008004805100a1810001203c3020001407466e29220102207d0000340686eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a20343758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720383371666e000056600266e2000520148a40c11481b901c002200c33706002901019b8600148080cdc70020012032375c00680e8dc5245022c200022323300100100322598009806800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003405080a0c010011164024300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5901b3010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400130090024888966002600460126ea800e2646644646644660040046eacc04cc050c050c050c050c050c050c040dd5003912cc00400629422b30013375e006601e602600314a3133002002301400140388088dd7180898071baa0073374a900119807980818069baa3259800980318069baa0018992cc004cdc3a4008601c6ea8006264b30013008300f375400313232332259800980c001c40162c80a8c054004dd7180a801180a80098081baa0018b201c3012300f3754003164034602260246024601c6ea8c008c038dd5180898071baa0018b2018323300100137586004601c6ea8014896600200314c0103d87a80008992cc004c8cc004004c018dd5980298089baa30053011375400444b30010018a508acc004cdc79bae301500100f8a51899801001180b000a020404d13374a900019809000a5eb8226600600660280048070c04800501025eb80c0040048c03cc040004896600200314bd7044cc038c02cc03c004cc008008c04000500d4590080c024004c010dd5004c52689b2b200401", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0RealfiMintingPolicyRealfiMintingPolicyElse { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "590605010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c96600264653001300b00198059806000cdc3a4001300b0024888966002600460166ea800e33001375c601e60186ea800e44b30010018a5eb82266020601a6022002660040046024002807a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80624444646600200200a44b30010018802c4c9660020031330043016002006899802980b00119801801800a0283016001404d2301030110019bab300f301030103010301030103010300c37540029111111919191991191929980b99b964910d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c19ba548008cc068dd4800a5eb80dd7180d180b9baa325330163372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4051220100132598009807980c1baa00189929980c19b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c068dd5000c4c9660020031598009809180d9baa0018992cc00400603113259800800c06603301980cc4cc896600200301b8992cc004c09400a200d01c408860460028108dd7000981100120463020001407860386ea800602e80ca02f01780bc05d021180f180d9baa0018a9980ca493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164060603a603c603c60346ea8c028c068dd5000980e180c9baa0018a9980ba4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164058646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806180e1baa300c301c375400444b30010018a508acc004cdc79bae30200010198a518998010011810800a034407913374a90001980e800a5eb82266006006603e00480c0c07400501b1bac3007301737540186002002601001044464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d203a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80b90171bac301a002375a60300026466ec0dd4180c0009ba73019001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a603a003337149101023a200098008054c07800600a805100a181000144ca6002015301d00199b8a489023a200098008054c078006600e66008008004805100a1810001203c3020001407466e29220102207d0000340686eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a20343758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720383371666e000056600266e2000520148a40c11481b901c002200c33706002901019b8600148080cdc70020012032375c00680e8dc5245022c200022323300100100322598009806800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003405080a0c010011164024300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5901b3010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400130090024888966002600460126ea800e2646644646644660040046eacc04cc050c050c050c050c050c050c040dd5003912cc00400629422b30013375e006601e602600314a3133002002301400140388088dd7180898071baa0073374a900119807980818069baa3259800980318069baa0018992cc004cdc3a4008601c6ea8006264b30013008300f375400313232332259800980c001c40162c80a8c054004dd7180a801180a80098081baa0018b201c3012300f3754003164034602260246024601c6ea8c008c038dd5180898071baa0018b2018323300100137586004601c6ea8014896600200314c0103d87a80008992cc004c8cc004004c018dd5980298089baa30053011375400444b30010018a508acc004cdc79bae301500100f8a51899801001180b000a020404d13374a900019809000a5eb8226600600660280048070c04800501025eb80c0040048c03cc040004896600200314bd7044cc038c02cc03c004cc008008c04000500d4590080c024004c010dd5004c52689b2b200401", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0StakingVaultStakingVaultMint { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0StakingVaultStakingVaultSpend { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0StakingVaultStakingVaultElse { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0TreasuryTreasuryMint { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0TreasuryTreasurySpend { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_0TreasuryTreasuryElse { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} diff --git a/modules/realfi-partner-sdk/src/generated-types/v1_0_rc1/index.ts b/modules/realfi-partner-sdk/src/generated-types/v1_0_rc1/index.ts new file mode 100644 index 0000000000..316f4ba1f4 --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/v1_0_rc1/index.ts @@ -0,0 +1,1046 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +type Data = Exact; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +const ScriptHash = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ + Bool: Type.Boolean(), + Tuple_VerificationKey_COSESign1: Type.Tuple([ + Type.String(), + Type.Ref("COSESign1"), + ]), + COSESign1: Type.Object({ + headers: Type.Ref("Headers"), + payload: Type.Optional( + Type.String() + ), + signature: Type.String(), + }, { ctor: 0n }), + HeaderMap: Type.String(), + Headers: Type.Object({ + protected: Type.Ref("HeaderMap"), + unprotected: Type.Ref("HeaderMap"), + }, { ctor: 0n }), + MultisigScript: Type.Union([ + Type.Object({ + Signature: Type.Object({ + key_hash: Type.String(), + }, { ctor: 0n }) + }), + Type.Object({ + AllOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 1n }) + }), + Type.Object({ + AnyOf: Type.Object({ + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 2n }) + }), + Type.Object({ + AtLeast: Type.Object({ + required: Type.BigInt(), + scripts: Type.Array( + Type.Ref("MultisigScript") + ), + }, { ctor: 3n }) + }), + Type.Object({ + Before: Type.Object({ + time: Type.BigInt(), + }, { ctor: 4n }) + }), + Type.Object({ + After: Type.Object({ + time: Type.BigInt(), + }, { ctor: 5n }) + }), + Type.Object({ + Script: Type.Object({ + script_hash: Type.String(), + }, { ctor: 6n }) + }), + ]), + Asset: Type.Tuple([ + Type.String(), + Type.String(), + ]), + Destination: Type.Object({ + address: Type.Object({ + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple([ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + ], { ctor: 0n }) + }), + Type.Object({ + Pointer: Type.Object({ + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, { ctor: 1n }) + }), + ]) + ), + }, { ctor: 0n }), + datum: Type.Union([ + Type.Literal("NoDatum", { ctor: 0n }), + Type.Object({ + DatumHash: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + Type.Object({ + InlineDatum: Type.Tuple([ + TPlutusData, + ], { ctor: 2n }) + }), + ]), + }, { ctor: 0n }), + ExtraProtocolRedeemerV1: Type.Object({ + request_to_outputs: Type.Array( + Type.BigInt() + ), + input_to_requests: Type.Array( + Type.BigInt() + ), + treasury_input_idx: Type.BigInt(), + treasury_output_idx: Type.BigInt(), + vault_input_idx: Type.Optional( + Type.BigInt() + ), + vault_output_idx: Type.Optional( + Type.BigInt() + ), + }, { ctor: 0n }), + Nonce: Type.Union([ + Type.Object({ + UTxO: Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + ], { ctor: 0n }) + }), + Type.Object({ + Validity: Type.Tuple([ + Type.Object({ + lower_bound: Type.Object({ + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([ + Type.BigInt(), + ], { ctor: 1n }) + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, { ctor: 0n }), + upper_bound: Type.Object({ + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([ + Type.BigInt(), + ], { ctor: 1n }) + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, { ctor: 0n }), + }, { ctor: 0n }), + ], { ctor: 1n }) + }), + ]), + OrderActionV1: Type.Union([ + Type.Object({ + OMint: Type.Object({ + amount: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 0n }) + }), + Type.Object({ + ORedeem: Type.Object({ + amount: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 1n }) + }), + Type.Object({ + ODeposit: Type.Object({ + principal: Type.BigInt(), + yield: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 2n }) + }), + Type.Object({ + OWithdraw: Type.Object({ + amount: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 3n }) + }), + Type.Object({ + OStake: Type.Object({ + amount: Type.BigInt(), + }, { ctor: 4n }) + }), + Type.Object({ + OUnstake: Type.Object({ + amount: Type.BigInt(), + forfeit: Type.BigInt(), + }, { ctor: 5n }) + }), + Type.Object({ + ODirectMint: Type.Object({ + amount: Type.BigInt(), + }, { ctor: 6n }) + }), + Type.Object({ + ODirectBurn: Type.Object({ + amount: Type.BigInt(), + }, { ctor: 7n }) + }), + ]), + OrderDatumV1: Type.Object({ + owner: Type.Ref("MultisigScript"), + destination: Type.Ref("Destination"), + action: Type.Ref("OrderActionV1"), + data: TPlutusData, + }, { ctor: 0n }), + OrderRedeemerV1: Type.Union([ + Type.Literal("Execute", { ctor: 0n }), + Type.Literal("Cancel", { ctor: 1n }), + Type.Literal("Invalidated", { ctor: 2n }), + ]), + ProtocolRedeemerV1: Type.Union([ + Type.Object({ + Mint: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequestV1") + ), + }, { ctor: 0n }) + }), + Type.Object({ + Burn: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequestV1") + ), + }, { ctor: 1n }) + }), + Type.Object({ + Withdraw: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequestV1") + ), + }, { ctor: 2n }) + }), + Type.Object({ + Deposit: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequestV1") + ), + }, { ctor: 3n }) + }), + Type.Object({ + Stake: Type.Object({ + requests: Type.Array( + Type.Ref("RequestV1") + ), + }, { ctor: 4n }) + }), + Type.Object({ + Unstake: Type.Object({ + requests: Type.Array( + Type.Ref("RequestV1") + ), + }, { ctor: 5n }) + }), + Type.Object({ + DirectMint: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequestV1") + ), + }, { ctor: 6n }) + }), + Type.Object({ + DirectBurn: Type.Object({ + requests: Type.Array( + Type.Ref("TreasuryRequestV1") + ), + }, { ctor: 7n }) + }), + ]), + ProxyDatumV1: Type.Object({ + logic: Type.String(), + settings: Type.Ref("SettingsV1"), + }, { ctor: 0n }), + RegistryV1: Type.Object({ + treasury: Type.String(), + usdr: Type.String(), + order: Type.String(), + staking_vault: Type.String(), + }, { ctor: 0n }), + RequestV1: Type.Object({ + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + origin: Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + forfeit: Type.BigInt(), + }, { ctor: 0n }), + ReserveAsset: Type.Object({ + asset: Type.Ref("Asset"), + numerator: Type.BigInt(), + denominator: Type.BigInt(), + }, { ctor: 0n }), + SettingsV1: Type.Object({ + mint_permission: Type.Ref("MultisigScript"), + burn_permission: Type.Ref("MultisigScript"), + withdraw_permission: Type.Ref("MultisigScript"), + deposit_permission: Type.Ref("MultisigScript"), + stake_permission: Type.Ref("MultisigScript"), + unstake_permission: Type.Ref("MultisigScript"), + direct_mint_permission: Type.Ref("MultisigScript"), + direct_burn_permission: Type.Ref("MultisigScript"), + registry: Type.Ref("RegistryV1"), + reserve_assets: Type.Array( + Type.Ref("ReserveAsset") + ), + unstaked_yield_pot: Type.Object({ + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple([ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([ + Type.String(), + ], { ctor: 0n }) + }), + Type.Object({ + Script: Type.Tuple([ + Type.String(), + ], { ctor: 1n }) + }), + ]), + ], { ctor: 0n }) + }), + Type.Object({ + Pointer: Type.Object({ + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, { ctor: 1n }) + }), + ]) + ), + }, { ctor: 0n }), + }, { ctor: 0n }), + SignedPayload_v1_0_ProtocolRedeemerV1: Type.Object({ + action: Type.Ref("ProtocolRedeemerV1"), + nonce: Type.Ref("Nonce"), + }, { ctor: 0n }), + SignedRedeemer_v1_0_ExtraProtocolRedeemerV1: Type.Object({ + extra: Type.Ref("ExtraProtocolRedeemerV1"), + payload: Type.Ref("SignedPayload_v1_0_ProtocolRedeemerV1"), + signatures: Type.Array( + Type.Ref("Tuple_VerificationKey_COSESign1") + ), + }, { ctor: 0n }), + StakingVaultRedeemerV1: Type.Undefined(), + TreasuryDatumV1: Type.Object({ + circulating_supply: Type.BigInt(), + }, { ctor: 0n }), + TreasuryRequestV1: Type.Object({ + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + yield: Type.BigInt(), + origin: Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + reserve_asset: Type.Ref("Asset"), + }, { ctor: 0n }), + VaultDatumV1: Type.Object({ + circulating_susdr: Type.BigInt(), + }, { ctor: 0n }), +}); + +export const Bool = Contracts.Import("Bool"); +export type Bool = Exact; +export const Tuple_VerificationKey_COSESign1 = Contracts.Import("Tuple_VerificationKey_COSESign1"); +export type Tuple_VerificationKey_COSESign1 = Exact; +export const COSESign1 = Contracts.Import("COSESign1"); +export type COSESign1 = Exact; +export const HeaderMap = Contracts.Import("HeaderMap"); +export type HeaderMap = Exact; +export const Headers = Contracts.Import("Headers"); +export type Headers = Exact; +export const MultisigScript = Contracts.Import("MultisigScript"); +export type MultisigScript = Exact; +export const Asset = Contracts.Import("Asset"); +export type Asset = Exact; +export const Destination = Contracts.Import("Destination"); +export type Destination = Exact; +export const ExtraProtocolRedeemerV1 = Contracts.Import("ExtraProtocolRedeemerV1"); +export type ExtraProtocolRedeemerV1 = Exact; +export const Nonce = Contracts.Import("Nonce"); +export type Nonce = Exact; +export const OrderActionV1 = Contracts.Import("OrderActionV1"); +export type OrderActionV1 = Exact; +export const OrderDatumV1 = Contracts.Import("OrderDatumV1"); +export type OrderDatumV1 = Exact; +export const OrderRedeemerV1 = Contracts.Import("OrderRedeemerV1"); +export type OrderRedeemerV1 = Exact; +export const ProtocolRedeemerV1 = Contracts.Import("ProtocolRedeemerV1"); +export type ProtocolRedeemerV1 = Exact; +export const ProxyDatumV1 = Contracts.Import("ProxyDatumV1"); +export type ProxyDatumV1 = Exact; +export const RegistryV1 = Contracts.Import("RegistryV1"); +export type RegistryV1 = Exact; +export const RequestV1 = Contracts.Import("RequestV1"); +export type RequestV1 = Exact; +export const ReserveAsset = Contracts.Import("ReserveAsset"); +export type ReserveAsset = Exact; +export const SettingsV1 = Contracts.Import("SettingsV1"); +export type SettingsV1 = Exact; +export const SignedPayload_v1_0_ProtocolRedeemerV1 = Contracts.Import("SignedPayload_v1_0_ProtocolRedeemerV1"); +export type SignedPayload_v1_0_ProtocolRedeemerV1 = Exact; +export const SignedRedeemer_v1_0_ExtraProtocolRedeemerV1 = Contracts.Import("SignedRedeemer_v1_0_ExtraProtocolRedeemerV1"); +export type SignedRedeemer_v1_0_ExtraProtocolRedeemerV1 = Exact; +export const StakingVaultRedeemerV1 = Contracts.Import("StakingVaultRedeemerV1"); +export type StakingVaultRedeemerV1 = Exact; +export const TreasuryDatumV1 = Contracts.Import("TreasuryDatumV1"); +export type TreasuryDatumV1 = Exact; +export const TreasuryRequestV1 = Contracts.Import("TreasuryRequestV1"); +export type TreasuryRequestV1 = Exact; +export const VaultDatumV1 = Contracts.Import("VaultDatumV1"); +export type VaultDatumV1 = Exact; + +export class V1_0Rc1OrderOrderSpend { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + protocolScripthash: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5917090101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0039bae00248888888888a60022a66008921266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99802249286578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d20646174756d00168a9980224932657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f6372656400168a998022493665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f75742900168a998022492065787065637420536f6d65286f726465725f646174756d29203d20646174756d00168a998022491972656465656d65723a204f7264657252656465656d65725631001648888896600264653001301100198089809000cdc3a400530110024888966002600460226ea800e2646644b30010078999119912cc004c00c0062b30013019375401700280720348acc004c0240062b30013019375401700280720348acc004c0100062b3001301937540170028072034807202c405880b0660026e952000911192cc004c014006264b3001001801c4c9660020030048024012009132598009811001c01a00a80f8dd7000a044301f001407460366ea80122b3001300b0018992cc00400600713259800800c01200900480244c9660026044007006802a03e375c0028110c07c00501d180d9baa0048012030406060326ea800e44b30010018a5eb822660366030603800266004004603a00280d2444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80ba44646600200200644b30010018a508acc004cdc79bae301e0010038a51899801001180f800a0304071222232330010010052259800800c4016264b3001001899802181080100344cc014c084008cc00c00c00501f1810800a03c9119198008008019119801800980100148c06cc070006460366038603800337009000c8c06cc070c070c070c070c070c070c070c070006602c6ea8026460366038603860386038603860380032232330010010032259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c24444444444444530012232330010010032259800800c530103d87a80008992cc004c010006260266605800297ae08998018019817001204e302c00140a9300c00c9805805c888ca6002003004801a0022223259800980b000c4c9660020030068992cc00400600f007803c01e264b30013033003802c0210301bae00140cc60600028170c0b0dd5001c566002603800313259800800c01a264b3001001803c01e264b30013033003899809000912cc00400a00f13259800800c6600201500189801181b001a014805c02e01700b40dc606800481920108180dd6000c01e00e8198c0c000502e18161baa0038acc004c05c006264b300100180344c966002003007803c4c96600260660071330120012259800801401e264b30010018cc00402a003130023036003402900b805c02e01681b8c0d000903240210301bac001803c01d0331818000a05c302c375400715980099b8748018006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002606c0071330150012259800801402a264b30010018cc004036003130023039003403500e807403a01c81d0c0dc009035402d0331bac00180540290361819800a062375a002606400500740cc60600028170c0b0dd5001c56600266e1d20080018992cc00400600d13259800800c01e00f0078992cc004c0cc00e00b00840c06eb400600e8198c0c000502e18161baa0038acc004cdc3a401400313259800800c01a264b3001001803c01e00f132598009819801c0160108180dd6800c01d0331818000a05c302c375400715980099b8748030006264b300100180344c966002003007803c01e00f132598009819801c0160108180dd7000a066303000140b860586ea800e00a8149029205240a481490292052302a3754004911119191919912cc004c06003226644b3001301a302f375400313259800981098181baa0018acc004cdc79bae3034303137540026eb8c048c0c4dd5180818189baa301330313754007133225330313372c92010d63726564656e7469616c3a3a200037326601000291010013300f0020013756601c60626ea8080cdd2a4004660666ea40b12f5c1153302f49013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f72646572001640b902940b8606660606ea8c0ccc0c0dd5180918181baa30333030375400302740b4660046eb0c040c0b8dd500e815198009bac3031302e375403a037159800980f00645660026030605a6ea806a330013031302e37546062605c6ea806a6eb0c034c0b8dd500ecc0c4c0c8c0c8c0c8c0c8c0c8c0c8c0c8c0b8dd500ecdd5980598171baa01d48888c8cc00400401488c966002603e00313301a006375c6070606a6ea800a2b30013025001899198008009bac30393036375400644b30010018a518acc004cc014014c0e8006266004004607600314a081a1038456600260400031323300100137586072606c6ea800c896600200314a115980099802802981d000c528c4cc008008c0ec00503420708acc004cdc3a400c003132337126eb4c0e4004c8cc004004dd6181d181d801112cc0040062900044cc896600266010010005133700002900144005037181d80099801001181e000a0723035375400515980099b87480200062646644b30013028303737540051598009814181b9baa303b303c003899b89375a607660706ea8008006266e20dd6981d981c1baa00200140d514a081a8c0e4004dd6981c981b1baa00330353754602e606a6ea80162b30013370e9005000c4c8cc89660026050606e6ea800a2b3001302830373754607660780071337120026eb4c0ecc0e0dd500144cdc40009bad303b3038375400481aa2941035181c8009bad303930363754006606a6ea8c0e0c0d4dd5002c4cc044010cdd2a40046606e6070606a6ea80092f5c08191032206440c8819103218199baa001409102b45660026030605a6ea806a330013031302e37540353300237586020605c6ea80740aa660026eb0c0c4c0b8dd500e80da444b3001301b303037540031323259800981198191baa0018acc0056600330013371e6eb8c050c0ccdd5180918199baa3015303337540086eb8c0d8c0ccdd5000d28528a0608a518cc004cdc79bae30363033375400805d4a14a2818103044c966002603c60666ea8006264b3001301f30343754003132598009810181a9baa0018992cc004cdd7981d181b9baa001302033039302033039303a3037375400897ae0330394c103d87a80004bd704660026eacc064c0dcdd5000cc064c0dcdd5180c981b9baa0069119b89337020026eb4c0f0c0f4c0f4c0f4c0e4dd50140012444b30010028a508994c004c966002604c60766ea800626eb4c0f0c0fcdd5981f981e1baa0018a400081c8c0f80066ebcc0f8c0fc0066eac00d22259800800c566002600400d13300500348002294103b44c96600266ebcc0f80053010140008acc004cc018010dd6981f98211bab303f001898019ba630430028a5040f11598009980300224001130030078a5040f081e0c10400503f0ca6002003004911981f8011981f9ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0f40066eacc0f800660840069112cc004cdc8a441000038acc004cdc7a441000038998029815198219ba60024bd70000c4cc015300103d87a800000640f919800803c006446600e0046608a66ec0dd48029ba6004001401c81f0608000481f229422942294103f22941034181c981b1baa0018a9981a2493865787065637420536f6d65286f757470757429203d206c6973742e61742873656c662e6f7574707574732c20696e7075745f696e64657829001640cc65300130010019bad3039303637540053758602e606c6ea80952225980099b8800248002298103d87a8000899801800801206c1112cc00400a298103d87a80008acc004c0880062604266074607600497ae08cc00400e60780053018001400c81a9039454cc0cd24014165787065637420536f6d6528696e7075745f696e64657829203d206c6973742e696e6465785f6f662873656c662e696e707574732c2073656c665f696e70757429001640c86530010019bac303830353754049480010011112cc00400a298103d87a80008acc004cdd7981d00100344c080cc0e4dd4000a5eb8233001003981d8014cdc0000a4004801903420708a99819248131657870656374205369676e6174757265207b206b65795f68617368207d203d206f726465725f646174756d2e6f776e6572001640c4606c60666ea80162a660629201996578706563740a2020202020202020202076315f305f7574696c69746965732e69735f70726f746f636f6c5f7570677261646564280a20202020202020202020202070726f78795f646174756d2c0a20202020202020202020202073656c665f7363726970745f686173682c0a20202020202020202020202070726f746f636f6c5f736372697074686173682c0a2020202020202020202029001640c102b40c0606a60646ea8c0d4c0c8dd5180a18191baa00130343031375400302840b8812205640ac815888c96600200313259800980d18179baa0028992cc00400605513259800800c0ae05702b815c4cc896600200302d8992cc0040062b300130390028acc004c07cc0d0dd5000c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006264b300100181cc4c96600200313259800800c0ee264b30010018992cc00400607b13259800800c4c96600200303f8992cc004006264b3001001820c4c96600200304282144cc89660020030448992cc0040062b300130500028cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c0d8c12cdd500344c9660020030468992cc00400608f047823c11e26644b3001001824c4c96600200304a825412a0951332259800800c132264b3001001826c13609b04d899912cc00400609f13259800800c1420a105082844c96600260b800713303b00f22598008014566002608860b26ea803e264b300100182a44c96600200313259800800c15a264b30010018acc004c18800a330010038992cc004c124006264b300100182cc4c966002003159800983280144c966002609800313259800800c172264b30010018acc004c1a000a3300100181ac17504c417506541760bb05d82ea0d23066001419060c46ea800a2b300130520018992cc0040060b913259800800c1760bb05d899912cc0040060bf13259800800c1820c1060899912cc0040060c513259800800c18e0c70638992cc004c1bc00e07906441b06eb40060c68378c1b000506a1bad001306b00283020d83069001419c6eb4004c1a000a0ba8348c19800506418311baa00282da0be417c60c06ea80060b483120b505a82d41690661831800a0c2305f37540051598009827800c56600260be6ea800a0610584181058417082e0c174dd5000c15d046415d05f415e0af05782ba0c63060001417860c000505582ac1560aa8308c17800505c182d1baa00f829a0ae8992cc0040062b30013045305a375400313259800800c156264b300100182b415a26644b300100182c44c96600200305982cc16626644b300100182dc4c96600200305c82e4172264b300130680038acc00401e0bb13259800800c17a0bd05e82f44cc89660020030608992cc0040060c3061830c186264b3001306d003898081836808c18906a1bae00141b460d40028340dd7000983480420d43067007419505d41946eb40060b88340c1940050631bad001306400282ca0ca306200141806eb0004c18400a0ad056418860be00282e8c16cdd5000c15105841520a905482a20c0305d002416d05141646eb800505c182c800a0ae375c00260b000482c8c1580050541bae0013055002415860a60028288dd7000982900120a63050001413860986ea801a08a824a08a812208a812208a812208a812208a812208a812208a812208a812208a826a08b045822c1150511827000a0983758002609a005042821209c304b0014124609600504082041020808260c124005047182480140fa07d03e81f209430470014114608e00503c81e40f20788240c114005043182280140ea07503a81d208c30430014104608600503881c40e20708220c10400503f182080140da06d03681b2084303f00140f4607e00503481a40d20688200c0f400503b181e80140ca065032819207c303b00140e4607600503081840c206081e0c0e4005037181a9baa0018172064817206c81740ba05d02e40e8606e00281a8dd7000981b001206e303400140c860606ea800a0528168400605102881440a103429981619b964912467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea400522010013259800980c98171baa00189929981719b9649113666f756e642070726f7879207574786f3a3a200037326600a00291010013259800980e18181baa0018992cc0040062b3001301c3031375400313259800800c0b6264b300100181740ba05d02e899912cc00400606113259800981d8014401a06281c0c0e40050371bae001303800240e4606c00281a0c0c8dd5000c0b102f40b205902c816206e303430313754003153302f49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b8602260606ea8c048c0c0dd5000981918179baa0018a99816a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640b06601200446602860126eacc044c0bcdd5180898179baa001002223300900223375e6064605e6ea8004008c004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101620665980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c816902d1bac3030002375a605c0026466ec0dd418170009ba7302f001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6066003337149101023a200098008054c0d000600a805100a181b00144ca6002015303300199b8a489023a200098008054c0d0006600e66008008004805100a181b0012068303600140cc66e29220102207d0000340c06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803901320603758007133005375a0060051323371491102682700329800800cc040dc68014cdc52450127000044004444b30013371000490004400626466453001006980a802ccdc599b800025980099b88002480522903045206e40c866e2ccdc0000acc004cdc4000a4029148182290372064004401866e0c00520203370c002901019b8e00400240bc6eb800d0331b8a4881022c20002232330010010032259800980b800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc018cdc2000a402866e2ccdc019b8500148051206000340a88150301637540126e1d2004370e9000402a01500a80520343016001301630170013012375400716403c3011001300c3754025149a2a6601492011856616c696461746f722072657475726e65642066616c7365001365640241" + : + "590c060101002229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae0039bae002488888888896600264653001300a00198051805800cdc3a4005300a0024888966002600460146ea800e33001300b3754007370e90024dc3a4001300a375400891111991192cc004c0140122b3001301237540170018b20268acc004c0240122b3001301237540170018b20268acc004c0180122b3001301237540170018b20268b202040408080660026e95200091192cc004c01c00626464b3001301a0028024590171bae3018001301437540071598009805800c4c8c96600260340050048b202e375c603000260286ea800e2c809101218091baa002912cc004006297ae089980a9809180b00099801001180b800a028911919800800801912cc00400629422b30013371e6eb8c06000400e294626600400460320028099016488c8cc00400400c88cc00c004c00800a4602a602c00323015301630160019180a980b180b180b180b180b180b180b180b000cc040dd500548c054c058c058c058c058c058c05800644646600200200644b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c488888888888cc88cc88cc8966002602a01313259800980b18111baa0018992cc004c06cc08cdd5000c56600266e3cdd7181398121baa001375c601a60486ea8c030c090dd5180718121baa330043758601c60486ea80680862660126eacc028c090dd500d19ba548008cc098dd481025eb822c81122c8110c098c08cdd5181318119baa300d30233754604c60466ea80062c8108cc004dd6181298111baa0180138acc004c0640262b300130153021375402519800981298111baa3025302237540253758601460446ea8062604a604c604c604c604c604c604c604c60446ea80626eacc020c088dd500c24444646600200200a4464b3001301c00189980a8031bae302c302937540051598009810000c4c8cc004004dd6181698151baa0032259800800c528c5660026600a00a605c003133002002302f0018a5040a481622b3001301d001899198008009bac302d302a375400644b30010018a508acc004cc014014c0b80062946266004004605e002814902c456600266e1d200600189919b89375a605a00264660020026eb0c0b8c0bc008896600200314800226644b300133008008002899b800014800a20028160c0bc004cc008008c0c000502d18149baa0028acc004cdc3a4010003132332259800981198159baa0028acc004c08cc0acdd518179818001c4cdc49bad302f302c37540040031337106eb4c0bcc0b0dd5001000a0548a5040a8605a0026eb4c0b4c0a8dd500198149baa30133029375400b15980099b87480280062646644b30013023302b3754005159800981198159baa302f3030003899b89001375a605e60586ea800a266e20004dd6981798161baa00240a914a08150c0b4004dd6981698151baa00330293754605860526ea801626601c00866e9520023302b302c3029375400497ae0409c8139027204e409c8138c09cdd5000a2c81022b300130153021375402513259800980b18111baa001899192cc004c070c090dd5000c56600264b3001980099b8f375c601e604c6ea8c038c098dd5180818131baa001375c6052604c6ea800a9429450244528c6600266e3cdd7181498131baa001022a50a5140908120cc014dd6180798129baa01b0228992cc004c064c094dd5000c4c9660026034604c6ea8006264b3001301b302737540031325980099baf302c30293754002603066056603066056605860526ea80112f5c06605698103d87a80004bd704660026eacc04cc0a4dd5000cc04cc0a4dd5180998149baa0069119b89337020026eb4c0b8c0bcc0bcc0bcc0acdd50108012444b30010028a508994c004c9660026042605a6ea800626eb4c0b8c0c4dd5981898171baa0018a40008160c0c00066ebcc0c0c0c40066eac00d22259800800c566002600400d13300500348002294102e44c96600266ebcc0c00053010140008acc004cc018010dd69818981a1bab3031001898019ba630350028a5040bd1598009980300224001130030078a5040bc8178c0cc0050310ca60020030049119818801198189ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0bc0066eacc0c000660680069112cc004cdc8a441000038acc004cdc7a4410000389980298111981a9ba60024bd70000c4cc015300103d87a800000640c519800803c006446600e0046606e66ec0dd48029ba6004001401c81886064004818229422942294103122941027181598141baa0018b204c3298009800800cdd6981598141baa0029bac30113028375403c9112cc004cdc40012400114c103d87a800089980180080120521112cc00400a298103d87a80008acc004c0740062603266058605a00497ae08cc00400e605c005337000029000a00640a0815a2c8128ca600200337586054604e6ea807690002002222598008014530103d87a80008acc004cdd7981600100344c060cc0acdd4000a5eb823300100398168014cdc0000a4004801902720548b20483028302537546050604a6ea80562c811a2c8118c09cc090dd5181398121baa300e30243754002604c60466ea80062c8108cc004dd6181298111baa0180138b20404080810088c8c966002602e60466ea800a2646644b3001302b0018992cc004c06cc09cdd5000c4c8c8c8c8c8c8c8c8c8c8ca6002606c003303600a981b004cc0d8022606c00f3036006981b002cc0d8012606c0073758606c00491111111112cc004c10402e26603e608002a26603e01226603e01026603e00e26603e00c26603e00a26603e00826603e0062b30013030303c375400513232323298009bae30440019bae30440049bae30440039bae30440024888966002609200b133030009225980080145660026074608c6ea80522646464b3001304e00289981c18268018992cc004c0f8006264b30013050001899192cc004c104006264b3001305300189981e982900081645905018271baa0028acc004c11400626464653001375a60a8003375a60a8007375a60a80049112cc004c16001206316415430540013053001304e37540051641308260c130dd50009827800c5904d18259baa0028acc004c1080062b3001304b37540050288b20988b2092412460926ea80062c8258c130004c130004c11cdd500a45904544c9660026076608e6ea800626464646644b300130510038991919912cc004c15400e2601660aa0191641486eb8c148004dd7182900118290009bac30500058b209c375a609c0026eb4c138008c138004c134004c120dd5000c59046182500120908b208c182200098218009821000981e9baa0028b20768b207c181b000981a800981a000981980098190009818800981800098178009817000981680098141baa0018b204c302a0018b2050375c6050002605200260486ea800a2c81104004c966002602c60446ea8006264b300130183023375400313259800980c18121baa0018991919912cc004c0b400e200b1640a860540026eb8c0a8008c0a8004c094dd5000c59023181398121baa0018b2044300c30233754601a60466ea8c098c08cdd5000c590211980300111980798021bab300d30233754601a60466ea800400888cc0180088cdd7981318119baa0010023001001300b00b2232330010010032259800800c5300103d87a80008992cc004c010006260206604600297ae08998018019812801203e3023001408444464b30013013001899192cc004c09800a00916408c6eb8c090004c080dd5001c566002602e003132598009812800c4cc030dd61812000912cc00400a00b19800803cc09800a26002604e004803902445902218101baa0038acc004c050006264b300130250018998061bac30240012259800801401633001007981300144c004c09c00900720488b20443020375400715980099b87480180062646644b300130270018998071bac30260012259800801401e33001009981400144c004c0a4009009204c8b2048375a6048002604a00260406ea800e2b30013370e9004000c4c8c966002604c0050048b2046375a604800260406ea800e2b30013370e9005000c4c8c966002604c0050048b2046375a604800260406ea800e2b30013370e9006000c4c8c966002604c0050048b2046375c604800260406ea800e2c80f101e203c407880f101e203c301e37540043012004301230130044590090c028004c014dd5005c52689b2b200601", + Type.Tuple([ + PolicyId, + ScriptHash, + ]), + [ + proxyPolicyId, + protocolScripthash, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1OrderOrderElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + protocolScripthash: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5917090101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0039bae00248888888888a60022a66008921266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99802249286578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d20646174756d00168a9980224932657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f6372656400168a998022493665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f75742900168a998022492065787065637420536f6d65286f726465725f646174756d29203d20646174756d00168a998022491972656465656d65723a204f7264657252656465656d65725631001648888896600264653001301100198089809000cdc3a400530110024888966002600460226ea800e2646644b30010078999119912cc004c00c0062b30013019375401700280720348acc004c0240062b30013019375401700280720348acc004c0100062b3001301937540170028072034807202c405880b0660026e952000911192cc004c014006264b3001001801c4c9660020030048024012009132598009811001c01a00a80f8dd7000a044301f001407460366ea80122b3001300b0018992cc00400600713259800800c01200900480244c9660026044007006802a03e375c0028110c07c00501d180d9baa0048012030406060326ea800e44b30010018a5eb822660366030603800266004004603a00280d2444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80ba44646600200200644b30010018a508acc004cdc79bae301e0010038a51899801001180f800a0304071222232330010010052259800800c4016264b3001001899802181080100344cc014c084008cc00c00c00501f1810800a03c9119198008008019119801800980100148c06cc070006460366038603800337009000c8c06cc070c070c070c070c070c070c070c070006602c6ea8026460366038603860386038603860380032232330010010032259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c24444444444444530012232330010010032259800800c530103d87a80008992cc004c010006260266605800297ae08998018019817001204e302c00140a9300c00c9805805c888ca6002003004801a0022223259800980b000c4c9660020030068992cc00400600f007803c01e264b30013033003802c0210301bae00140cc60600028170c0b0dd5001c566002603800313259800800c01a264b3001001803c01e264b30013033003899809000912cc00400a00f13259800800c6600201500189801181b001a014805c02e01700b40dc606800481920108180dd6000c01e00e8198c0c000502e18161baa0038acc004c05c006264b300100180344c966002003007803c4c96600260660071330120012259800801401e264b30010018cc00402a003130023036003402900b805c02e01681b8c0d000903240210301bac001803c01d0331818000a05c302c375400715980099b8748018006264b300100180344c966002003007803c01e26644b3001001804c4c96600200300a80544c966002606c0071330150012259800801402a264b30010018cc004036003130023039003403500e807403a01c81d0c0dc009035402d0331bac00180540290361819800a062375a002606400500740cc60600028170c0b0dd5001c56600266e1d20080018992cc00400600d13259800800c01e00f0078992cc004c0cc00e00b00840c06eb400600e8198c0c000502e18161baa0038acc004cdc3a401400313259800800c01a264b3001001803c01e00f132598009819801c0160108180dd6800c01d0331818000a05c302c375400715980099b8748030006264b300100180344c966002003007803c01e00f132598009819801c0160108180dd7000a066303000140b860586ea800e00a8149029205240a481490292052302a3754004911119191919912cc004c06003226644b3001301a302f375400313259800981098181baa0018acc004cdc79bae3034303137540026eb8c048c0c4dd5180818189baa301330313754007133225330313372c92010d63726564656e7469616c3a3a200037326601000291010013300f0020013756601c60626ea8080cdd2a4004660666ea40b12f5c1153302f49013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f72646572001640b902940b8606660606ea8c0ccc0c0dd5180918181baa30333030375400302740b4660046eb0c040c0b8dd500e815198009bac3031302e375403a037159800980f00645660026030605a6ea806a330013031302e37546062605c6ea806a6eb0c034c0b8dd500ecc0c4c0c8c0c8c0c8c0c8c0c8c0c8c0c8c0b8dd500ecdd5980598171baa01d48888c8cc00400401488c966002603e00313301a006375c6070606a6ea800a2b30013025001899198008009bac30393036375400644b30010018a518acc004cc014014c0e8006266004004607600314a081a1038456600260400031323300100137586072606c6ea800c896600200314a115980099802802981d000c528c4cc008008c0ec00503420708acc004cdc3a400c003132337126eb4c0e4004c8cc004004dd6181d181d801112cc0040062900044cc896600266010010005133700002900144005037181d80099801001181e000a0723035375400515980099b87480200062646644b30013028303737540051598009814181b9baa303b303c003899b89375a607660706ea8008006266e20dd6981d981c1baa00200140d514a081a8c0e4004dd6981c981b1baa00330353754602e606a6ea80162b30013370e9005000c4c8cc89660026050606e6ea800a2b3001302830373754607660780071337120026eb4c0ecc0e0dd500144cdc40009bad303b3038375400481aa2941035181c8009bad303930363754006606a6ea8c0e0c0d4dd5002c4cc044010cdd2a40046606e6070606a6ea80092f5c08191032206440c8819103218199baa001409102b45660026030605a6ea806a330013031302e37540353300237586020605c6ea80740aa660026eb0c0c4c0b8dd500e80da444b3001301b303037540031323259800981198191baa0018acc0056600330013371e6eb8c050c0ccdd5180918199baa3015303337540086eb8c0d8c0ccdd5000d28528a0608a518cc004cdc79bae30363033375400805d4a14a2818103044c966002603c60666ea8006264b3001301f30343754003132598009810181a9baa0018992cc004cdd7981d181b9baa001302033039302033039303a3037375400897ae0330394c103d87a80004bd704660026eacc064c0dcdd5000cc064c0dcdd5180c981b9baa0069119b89337020026eb4c0f0c0f4c0f4c0f4c0e4dd50140012444b30010028a508994c004c966002604c60766ea800626eb4c0f0c0fcdd5981f981e1baa0018a400081c8c0f80066ebcc0f8c0fc0066eac00d22259800800c566002600400d13300500348002294103b44c96600266ebcc0f80053010140008acc004cc018010dd6981f98211bab303f001898019ba630430028a5040f11598009980300224001130030078a5040f081e0c10400503f0ca6002003004911981f8011981f9ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0f40066eacc0f800660840069112cc004cdc8a441000038acc004cdc7a441000038998029815198219ba60024bd70000c4cc015300103d87a800000640f919800803c006446600e0046608a66ec0dd48029ba6004001401c81f0608000481f229422942294103f22941034181c981b1baa0018a9981a2493865787065637420536f6d65286f757470757429203d206c6973742e61742873656c662e6f7574707574732c20696e7075745f696e64657829001640cc65300130010019bad3039303637540053758602e606c6ea80952225980099b8800248002298103d87a8000899801800801206c1112cc00400a298103d87a80008acc004c0880062604266074607600497ae08cc00400e60780053018001400c81a9039454cc0cd24014165787065637420536f6d6528696e7075745f696e64657829203d206c6973742e696e6465785f6f662873656c662e696e707574732c2073656c665f696e70757429001640c86530010019bac303830353754049480010011112cc00400a298103d87a80008acc004cdd7981d00100344c080cc0e4dd4000a5eb8233001003981d8014cdc0000a4004801903420708a99819248131657870656374205369676e6174757265207b206b65795f68617368207d203d206f726465725f646174756d2e6f776e6572001640c4606c60666ea80162a660629201996578706563740a2020202020202020202076315f305f7574696c69746965732e69735f70726f746f636f6c5f7570677261646564280a20202020202020202020202070726f78795f646174756d2c0a20202020202020202020202073656c665f7363726970745f686173682c0a20202020202020202020202070726f746f636f6c5f736372697074686173682c0a2020202020202020202029001640c102b40c0606a60646ea8c0d4c0c8dd5180a18191baa00130343031375400302840b8812205640ac815888c96600200313259800980d18179baa0028992cc00400605513259800800c0ae05702b815c4cc896600200302d8992cc0040062b300130390028acc004c07cc0d0dd5000c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c4c9660020030378992cc004006264b300100181cc4c96600200313259800800c0ee264b30010018992cc00400607b13259800800c4c96600200303f8992cc004006264b3001001820c4c96600200304282144cc89660020030448992cc0040062b300130500028cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c0d8c12cdd500344c9660020030468992cc00400608f047823c11e26644b3001001824c4c96600200304a825412a0951332259800800c132264b3001001826c13609b04d899912cc00400609f13259800800c1420a105082844c96600260b800713303b00f22598008014566002608860b26ea803e264b300100182a44c96600200313259800800c15a264b30010018acc004c18800a330010038992cc004c124006264b300100182cc4c966002003159800983280144c966002609800313259800800c172264b30010018acc004c1a000a3300100181ac17504c417506541760bb05d82ea0d23066001419060c46ea800a2b300130520018992cc0040060b913259800800c1760bb05d899912cc0040060bf13259800800c1820c1060899912cc0040060c513259800800c18e0c70638992cc004c1bc00e07906441b06eb40060c68378c1b000506a1bad001306b00283020d83069001419c6eb4004c1a000a0ba8348c19800506418311baa00282da0be417c60c06ea80060b483120b505a82d41690661831800a0c2305f37540051598009827800c56600260be6ea800a0610584181058417082e0c174dd5000c15d046415d05f415e0af05782ba0c63060001417860c000505582ac1560aa8308c17800505c182d1baa00f829a0ae8992cc0040062b30013045305a375400313259800800c156264b300100182b415a26644b300100182c44c96600200305982cc16626644b300100182dc4c96600200305c82e4172264b300130680038acc00401e0bb13259800800c17a0bd05e82f44cc89660020030608992cc0040060c3061830c186264b3001306d003898081836808c18906a1bae00141b460d40028340dd7000983480420d43067007419505d41946eb40060b88340c1940050631bad001306400282ca0ca306200141806eb0004c18400a0ad056418860be00282e8c16cdd5000c15105841520a905482a20c0305d002416d05141646eb800505c182c800a0ae375c00260b000482c8c1580050541bae0013055002415860a60028288dd7000982900120a63050001413860986ea801a08a824a08a812208a812208a812208a812208a812208a812208a812208a812208a826a08b045822c1150511827000a0983758002609a005042821209c304b0014124609600504082041020808260c124005047182480140fa07d03e81f209430470014114608e00503c81e40f20788240c114005043182280140ea07503a81d208c30430014104608600503881c40e20708220c10400503f182080140da06d03681b2084303f00140f4607e00503481a40d20688200c0f400503b181e80140ca065032819207c303b00140e4607600503081840c206081e0c0e4005037181a9baa0018172064817206c81740ba05d02e40e8606e00281a8dd7000981b001206e303400140c860606ea800a0528168400605102881440a103429981619b964912467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea400522010013259800980c98171baa00189929981719b9649113666f756e642070726f7879207574786f3a3a200037326600a00291010013259800980e18181baa0018992cc0040062b3001301c3031375400313259800800c0b6264b300100181740ba05d02e899912cc00400606113259800981d8014401a06281c0c0e40050371bae001303800240e4606c00281a0c0c8dd5000c0b102f40b205902c816206e303430313754003153302f49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b8602260606ea8c048c0c0dd5000981918179baa0018a99816a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640b06601200446602860126eacc044c0bcdd5180898179baa001002223300900223375e6064605e6ea8004008c004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101620665980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c816902d1bac3030002375a605c0026466ec0dd418170009ba7302f001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6066003337149101023a200098008054c0d000600a805100a181b00144ca6002015303300199b8a489023a200098008054c0d0006600e66008008004805100a181b0012068303600140cc66e29220102207d0000340c06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803901320603758007133005375a0060051323371491102682700329800800cc040dc68014cdc52450127000044004444b30013371000490004400626466453001006980a802ccdc599b800025980099b88002480522903045206e40c866e2ccdc0000acc004cdc4000a4029148182290372064004401866e0c00520203370c002901019b8e00400240bc6eb800d0331b8a4881022c20002232330010010032259800980b800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc018cdc2000a402866e2ccdc019b8500148051206000340a88150301637540126e1d2004370e9000402a01500a80520343016001301630170013012375400716403c3011001300c3754025149a2a6601492011856616c696461746f722072657475726e65642066616c7365001365640241" + : + "590c060101002229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae0039bae002488888888896600264653001300a00198051805800cdc3a4005300a0024888966002600460146ea800e33001300b3754007370e90024dc3a4001300a375400891111991192cc004c0140122b3001301237540170018b20268acc004c0240122b3001301237540170018b20268acc004c0180122b3001301237540170018b20268b202040408080660026e95200091192cc004c01c00626464b3001301a0028024590171bae3018001301437540071598009805800c4c8c96600260340050048b202e375c603000260286ea800e2c809101218091baa002912cc004006297ae089980a9809180b00099801001180b800a028911919800800801912cc00400629422b30013371e6eb8c06000400e294626600400460320028099016488c8cc00400400c88cc00c004c00800a4602a602c00323015301630160019180a980b180b180b180b180b180b180b180b000cc040dd500548c054c058c058c058c058c058c05800644646600200200644b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c488888888888cc88cc88cc8966002602a01313259800980b18111baa0018992cc004c06cc08cdd5000c56600266e3cdd7181398121baa001375c601a60486ea8c030c090dd5180718121baa330043758601c60486ea80680862660126eacc028c090dd500d19ba548008cc098dd481025eb822c81122c8110c098c08cdd5181318119baa300d30233754604c60466ea80062c8108cc004dd6181298111baa0180138acc004c0640262b300130153021375402519800981298111baa3025302237540253758601460446ea8062604a604c604c604c604c604c604c604c60446ea80626eacc020c088dd500c24444646600200200a4464b3001301c00189980a8031bae302c302937540051598009810000c4c8cc004004dd6181698151baa0032259800800c528c5660026600a00a605c003133002002302f0018a5040a481622b3001301d001899198008009bac302d302a375400644b30010018a508acc004cc014014c0b80062946266004004605e002814902c456600266e1d200600189919b89375a605a00264660020026eb0c0b8c0bc008896600200314800226644b300133008008002899b800014800a20028160c0bc004cc008008c0c000502d18149baa0028acc004cdc3a4010003132332259800981198159baa0028acc004c08cc0acdd518179818001c4cdc49bad302f302c37540040031337106eb4c0bcc0b0dd5001000a0548a5040a8605a0026eb4c0b4c0a8dd500198149baa30133029375400b15980099b87480280062646644b30013023302b3754005159800981198159baa302f3030003899b89001375a605e60586ea800a266e20004dd6981798161baa00240a914a08150c0b4004dd6981698151baa00330293754605860526ea801626601c00866e9520023302b302c3029375400497ae0409c8139027204e409c8138c09cdd5000a2c81022b300130153021375402513259800980b18111baa001899192cc004c070c090dd5000c56600264b3001980099b8f375c601e604c6ea8c038c098dd5180818131baa001375c6052604c6ea800a9429450244528c6600266e3cdd7181498131baa001022a50a5140908120cc014dd6180798129baa01b0228992cc004c064c094dd5000c4c9660026034604c6ea8006264b3001301b302737540031325980099baf302c30293754002603066056603066056605860526ea80112f5c06605698103d87a80004bd704660026eacc04cc0a4dd5000cc04cc0a4dd5180998149baa0069119b89337020026eb4c0b8c0bcc0bcc0bcc0acdd50108012444b30010028a508994c004c9660026042605a6ea800626eb4c0b8c0c4dd5981898171baa0018a40008160c0c00066ebcc0c0c0c40066eac00d22259800800c566002600400d13300500348002294102e44c96600266ebcc0c00053010140008acc004cc018010dd69818981a1bab3031001898019ba630350028a5040bd1598009980300224001130030078a5040bc8178c0cc0050310ca60020030049119818801198189ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0bc0066eacc0c000660680069112cc004cdc8a441000038acc004cdc7a4410000389980298111981a9ba60024bd70000c4cc015300103d87a800000640c519800803c006446600e0046606e66ec0dd48029ba6004001401c81886064004818229422942294103122941027181598141baa0018b204c3298009800800cdd6981598141baa0029bac30113028375403c9112cc004cdc40012400114c103d87a800089980180080120521112cc00400a298103d87a80008acc004c0740062603266058605a00497ae08cc00400e605c005337000029000a00640a0815a2c8128ca600200337586054604e6ea807690002002222598008014530103d87a80008acc004cdd7981600100344c060cc0acdd4000a5eb823300100398168014cdc0000a4004801902720548b20483028302537546050604a6ea80562c811a2c8118c09cc090dd5181398121baa300e30243754002604c60466ea80062c8108cc004dd6181298111baa0180138b20404080810088c8c966002602e60466ea800a2646644b3001302b0018992cc004c06cc09cdd5000c4c8c8c8c8c8c8c8c8c8c8ca6002606c003303600a981b004cc0d8022606c00f3036006981b002cc0d8012606c0073758606c00491111111112cc004c10402e26603e608002a26603e01226603e01026603e00e26603e00c26603e00a26603e00826603e0062b30013030303c375400513232323298009bae30440019bae30440049bae30440039bae30440024888966002609200b133030009225980080145660026074608c6ea80522646464b3001304e00289981c18268018992cc004c0f8006264b30013050001899192cc004c104006264b3001305300189981e982900081645905018271baa0028acc004c11400626464653001375a60a8003375a60a8007375a60a80049112cc004c16001206316415430540013053001304e37540051641308260c130dd50009827800c5904d18259baa0028acc004c1080062b3001304b37540050288b20988b2092412460926ea80062c8258c130004c130004c11cdd500a45904544c9660026076608e6ea800626464646644b300130510038991919912cc004c15400e2601660aa0191641486eb8c148004dd7182900118290009bac30500058b209c375a609c0026eb4c138008c138004c134004c120dd5000c59046182500120908b208c182200098218009821000981e9baa0028b20768b207c181b000981a800981a000981980098190009818800981800098178009817000981680098141baa0018b204c302a0018b2050375c6050002605200260486ea800a2c81104004c966002602c60446ea8006264b300130183023375400313259800980c18121baa0018991919912cc004c0b400e200b1640a860540026eb8c0a8008c0a8004c094dd5000c59023181398121baa0018b2044300c30233754601a60466ea8c098c08cdd5000c590211980300111980798021bab300d30233754601a60466ea800400888cc0180088cdd7981318119baa0010023001001300b00b2232330010010032259800800c5300103d87a80008992cc004c010006260206604600297ae08998018019812801203e3023001408444464b30013013001899192cc004c09800a00916408c6eb8c090004c080dd5001c566002602e003132598009812800c4cc030dd61812000912cc00400a00b19800803cc09800a26002604e004803902445902218101baa0038acc004c050006264b300130250018998061bac30240012259800801401633001007981300144c004c09c00900720488b20443020375400715980099b87480180062646644b300130270018998071bac30260012259800801401e33001009981400144c004c0a4009009204c8b2048375a6048002604a00260406ea800e2b30013370e9004000c4c8c966002604c0050048b2046375a604800260406ea800e2b30013370e9005000c4c8c966002604c0050048b2046375a604800260406ea800e2b30013370e9006000c4c8c966002604c0050048b2046375c604800260406ea800e2c80f101e203c407880f101e203c301e37540043012004301230130044590090c028004c014dd5005c52689b2b200601", + Type.Tuple([ + PolicyId, + ScriptHash, + ]), + [ + proxyPolicyId, + protocolScripthash, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolManagementProtocolManagementWithdraw { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "594460010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00168a99801a4938657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a4926657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a49b76578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a2020202020202020616363202626202820706f6c696379203d3d202222207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d65292920290a2020202020207d2c0a202020202900168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a493e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f6964782900168a99801a49376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f72657175657374732900168a99801a4939657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a49286578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d20646174756d00168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d6572001648888888888888888896600264653001301c001980e180e800cdc3a4009301c0024888966002600460386ea800e330013020301d3754007374a9000488c8cc00400400c88cc00c004c00800a6e1d20009b874800a6e1d20069b87480226e1d200a9b874803246042604400323021302230220019b80480066e05200091810981118111811181118111811181118111811000cdd2a4004911111111111111194c004889660026020605e6ea800e264b300100180144c96600200313259800800c012264b30010018acc004c0e000a330010038992cc004c054006264b3001001803c4c966002003159800981d80144c966002603000313259800800c02a264b30010018acc004c0f800a33001001806402d00e402d03b402e01700b805a07e303c00140e860706ea800a2b300130170018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c11400e02701241086eb40060228228c1080050401bad00130410028072084303f00140f46eb4004c0f800a01681f8c0f000503a181c1baa002804a06a40d4606c6ea800601081c2011008804402103c181c800a06e30353754005159800980a000c566002606a6ea800a00f00640d900640c88190c0ccdd5000c0150084015035401600b005802a072303600140d0606c005003801c00e00681b8c0d000503218181baa003800a05a911194c004006009003400444464b300130140018992cc00400600d13259800800c01e00f007803c4c96600260760070058042070375c00281d8c0e0005036181a1baa0038acc004c04c006264b300100180344c966002003007803c4c96600260760071330180012259800801401e264b30010018cc00402a00313002303e003402900b805c02e01681f8c0f000903a40210381bac001803c01d03b181c000a06c30343754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0ec00e26603000244b3001002803c4c96600200319800805400626004607c006805201700b805c02d03f181e001207480420703758003007803a076303800140d860686ea800e2b300130120018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981f001c4cc06c004896600200500a8992cc0040063300100d800c4c008c10400d00d403a01d00e8072084303f00240f500b40ec6eb000601500a40f8607600281c8dd6800981d001401d03b181c000a06c303437540071598009808800c4c9660020030068992cc00400600f007803c4c96600260760070058042070375a00300740ec607000281b0c0d0dd5001c566002602000313259800800c01a264b3001001803c01e00f13259800981d801c01601081c0dd6800c01d03b181c000a06c303437540071598009807800c4c9660020030068992cc00400600f007803c01e264b3001303b003802c0210381bae00140ec607000281b0c0d0dd5001c015031206240c48189031206240c460646ea800a44646600200200644b30010018a60103d87a80008992cc004c010006260286606800297ae0899801801981b001205e303400140c891119192cc0040063300122259800980a981a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b3001301a0018acc004c0e8dd5001401e00c81da2b300130190018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c07c006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005403100540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e0028192444b300130153034375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607400315980099b8948010c0e400600d13259800981f80244c9660026038003159800981e1baa006804c02103d4566002603600313259800800c026264b3001001805402a015132598009821801c0320168200dd6800c0290431820000a07c303c375400d1598009810800c56600260786ea801a01300840f500840e481c9039181d1baa005803a0783019303900140dd00640ec6ea800600b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c005032488966002602a60686ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981f801c02200e81e0dd6800c01903f181e000a074375c002607600481e0c0e4005037181a9baa003800a064911192cc004c058006264b3001001801c4c9660020030048024012264b3001303d003803401503a1bad001802207a303a00140e0606c6ea80122b300130150018acc004c0d8dd5002400e00481ba0048199033181a1baa00348888cc89660026030606e6ea801e264b3001001811c4c96600200313259800800c096264b30010018992cc00400604f13259800800c0a2051132598009821801c566002603e607c6ea801a264b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e899912cc00400606113259800800c0c6063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c4c9660020030388992cc0040062b30013053002899818007112cc00400a26606401a44b30010028cc00401e330010058992cc004c0d0c14cdd500cc4c96600200303f8992cc004006264b3001001820c4c966002003159800982e00144cc8966002607400313259800800c116264b3001001823411a264b3001306100389981f000912cc00400a00f13259800800c660020031300230640038252052825412a09504a419460c4004830208e82f0dd6000c11a08c8308c17800505c182d1baa0058acc004c0e4006264b3001001822c4c96600200304682344c96600260c200713303e0012259800801401e264b30010018cc0040062600460c800704a40a504a825412a0948328c188009060411d05e1bac0018234119061182f000a0b8305a375400b159800981f800c4c9660020030458992cc00400608d0468992cc004c18400e26607c00244b3001002803c4c96600200319800800c4c008c19000e094814a09504a8254129065183100120c0823a0bc375800304682320c2305e001417060b46ea80162b300130380018992cc00400608b13259800800c11a08d132598009830801c4cc0f800489660020050078992cc00400633001001898011832001c129029412a09504a82520ca3062002418104741786eb000608d046418460bc00282e0c168dd5002c566002606e00313259800800c116264b3001001823411a264b3001306100389981f000912cc00400a00f13259800800c660020031300230640038252054825412a09504a419460c4004830208e82f0dd6000c11a08c8308c17800505c182d1baa0058acc004c0d8006264b3001001822c4c96600200304682344c96600260c200713303e0012259800801401e264b30010018cc0040062600460c800704a40a904a825412a0948328c188009060411d05e1bac0018234119061182f000a0b8305a375400b159800981a800c4c9660020030458992cc00400608d0468992cc004c18400e26607c00244b3001002803c4c96600200319800800c4c008c19000e094814a09504a8254129065183100120c0823a0bc375800304682320c2305e001417060b46ea80162b30013370e9007000c4c9660020030458992cc00400608d0468992cc004c18400e26607c00244b3001002803c4c96600200319800800c4c008c19000e094814a09504a8254129065183100120c0823a0bc375800304682320c2305e001417060b46ea801608882b905720ae415c82b905720ae415c264b300130390018992cc00400608913259800800c56600260be00519800800c02208a813a08a82e208b045822c115060182e800a0b630593754005159800981c000c4c9660020030448992cc0040062b3001305f0028acc004c0ecc168dd5000c4c9660020030468992cc004006264b300100182444c966002003159800983180146600200719800800c032092816209281620928302093049824c1250641830800a0be3061002823c11e08f047418860be00282e8c16cdd5000c115058411505c411608b045822a0c0305d001416c60b26ea800a08682b1056182b9baa001305737540070424165042821410a08482e8c168005058182d001410208104082020b63058001415860a86ea806607c82884cc0d0054896600200519800982c182a9baa302f30553754049230353055375460b2646600200200444b30010018a5eb8503d87a80008101800044c8cc89660033001303a305a375460bc0074a14a282c22660bb30014a14c103d87a8000a60103d87980004160660ba6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c18000400e294626600400460c200282d105e44cc176600294298103d87a8000a60103d87980004160660ba6e9c0092f5c113305d9800a51a60103d87a8000a60103d87980004160660ba6e9ccc174dd400080125eb8105820b0375860b860ba0026eb4c170008cc008008c17000505948888ca6002003005802400d00111112cc00400e2b30010028800c54cc16d24112657870656374205b5d203d206c6973745f6200164179159800801454cc16d2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260c20073061002cc004c18000e6eb4c18000a002802900420bc41792232330010010032259800800c52f5c1133225980099baf305e305b375460bc60b66ea8c0d4c16cdd500118181982e9ba90054bd7044cc174008cc01001000626600800800282c0c170004c17400505a4dc02400523059305a305a305a305a305a305a305a305a0019112cc00400a2980103d87a80008acc004c0e000626074660b460b600497ae08cc00400e60b80053030001400c82a9059488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064169133005005306100441686eb8c168004dd5982d800982e800a0b614bd6f7b630488966002607060ae6ea800e264b300100180144c966002003003801c00e264b3001305f003802c01105c1bad001801a0be305c001416860b06ea800e00282aa460b260b460b460b40032232330010010032259800800c52f5c113305b374e600660b80026600400460ba00282d2444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c17c0066eb4c1800066600600660c80048048c1880050601bab305d003375c60b40026600600660be00460ba00282da44646600200200644b30010018a508acc004cdd7982e0009ba70038a51899801001182e800a0ac416922259800981c182b9baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300100180344c96600200313259800800c022264b300130640028cc00401e330010058992cc004c104006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c4c96600260d6007159800800c042264b3001001808c046023011899912cc00400602713259800800c05202901480a44c96600260e000701680aa0da375c0028380c1b400506b1bae001306c00241b460d400283420208340dd6000c03e01e8358c1a00050661bad001306700280620d03065001418c60c26ea80122b300130400018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f132598009835801c5660020030108992cc004006023011808c04626644b3001001809c4c96600200301480a4052029132598009838001c05a02a8368dd7000a0e0306d00141ac6eb8004c1b000906d1835000a0d080820d0375800300f807a0d6306800141986eb4004c19c00a0188340c19400506318309baa0048acc004c118006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e26644b3001001808c4c96600200301280944c96600260dc007159800800c04e264b300100180a4052029014899912cc00400602d13259800800c05e02f01780bc4c96600260e600701980c20e0375c0028398c1c000506e1bae001306f00241c060da002835a0268358dd6000c04a0248370c1ac0050691bad001306a002807a0d6306800141986eb4004c19c00a0188340c19400506318309baa0048acc004c0fc006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c4c96600260d6007159800800c042264b3001001808c046023011899912cc00400602713259800800c05202901480a44c96600260e000701680aa0da375c0028380c1b400506b1bae001306c00241b460d400283420208340dd6000c03e01e8358c1a00050661bad001306700280620d03065001418c60c26ea80122b3001303e0018992cc00400601713259800800c03201900c8992cc004c1a000e01d00d41946eb40060188340c19400506318309baa0048acc004c0f4006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e264b3001306b003808c0410681bad001807a0d6306800141986eb4004c19c00a0188340c19400506318309baa0048acc004c0f0006264b3001001805c4c96600200300c8064032264b3001306800380740350651bad00180620d03065001418c60c26ea80122b30013370e9007000c4c96600200300b8992cc00400601900c80644c96600260d000700e806a0ca375a00300c41a060ca0028318c184dd5002402905e20bc417882f105e20bc417882f0c17cdd5001c02502e402503240250611831000a0c03062002803c01e00f007418c60c000282f0c18000a00b005802c015061182f000a0b8305e002801c00e007003417c60b800282d0c160dd5001c00505548c164c168c168c168c168006444653001001802400d0011112cc00400a200319800801cc17c00a6600860bc004002801905c4dc424000911111111111111114c004c194dd5008c88966002602600519800801c00a900048896600260080071337000026eb4c118c1b0dd5001c54cc1a924011a6578706563742076616c69646174696f6e287265717565737429001641a480922a660ce9212e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e646963657329001641992259800800c5200089807998010011836000a0d291808800c89660020031480022601e6600400460d8002834a6016017222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01906c44cc014014c1cc01106c1bae306c001375a60da00260de0028368cc03801000c5200048888888ca6002444464b30013053307237540031325980099baf30773074375460ee60e86ea8c138c1d0dd500098249983b1ba90054bd70456600260a730013756609c60e86ea8c138c1d0dd5000c01691108747265617375727900402113259800982d183a1baa0018992cc004006330010018992cc004c15cc1d8dd5000c4c96600266ebcc1ecc1e0dd5183d983c1baa001304d3307a375201297ae08acc004c15e60026eacc148c1e0dd5000c026910108747265617375727900403113259800982f183c1baa0018992cc004006330010018acc004cdd7980e183d1baa0034c103d87a800089983e0029983e0009983e1ba6329800800cdd5982a983d9baa00499198008009bab3056307c375460ac60f86ea8024896600200314bd6f7b63044c8cc20004cdd8183e8009ba63233001001375660fe00444b30010018a5eb7bdb182264661060266ec0c20004004dd4182c1bad308101001330030033085010023083010014204046600600661040200461000200283f10011112cc00400a2003132332298008034c21004016646600200200a44b30010018998420099bb037520086e9800d2f5bded8c113298009bae3082010019bab3083010019843808012444b30013372001000713308801337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528211002880144cc22404cdd81ba9009374c002004842008ca6002003008801a002222598008014400626466453001006984800802cc8cc004004014896600200313309001337606ea4010dd4001a5eb7bdb1822653001375c611c02003375a611e0200330930100248896600266e4002000e2661280266ec0dd48041ba80070058acc004cdc7804001c4c96600260e6003100289984a8099bb037520126ea00040090900119b8000700289984a0099bb037520066ea0008cc01801800508f01211e02184880800a11e0240186eb8c22404004dd69845008009846008012114028998440099bb037520066e98008cc01801800508301210602184280800a1060240186eb8c1f4004dd5983f00098400080120fc4bd7041bd07741b901d41ba0dd06e83720fe307c30793754003153307749012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001641d860a260f06ea80062a660ec920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641d5153307649143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641d460f460ee6ea80062a660ea92013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001641d0660126eb0c13cc1d8dd5004002c1a501941a60d3069834a0f6307830753754003153307349013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001641c8609a60e86ea8c138c1d0dd5000c54cc1c92401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641c515330724914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641c460ec60e66ea80062a660e292013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641c06600a6eb0c1d4c1c8dd50020014c010012600c00c9112cc004c13c02e33001375860e860e26ea8072444b300130543073375400713259800800c00a264b3001001801c00e00713259800983d801c01600883c0dd6800c00d07b183c000a0ec3074375400700141c5222225980099b87300600530060048acc004c03400e266e24006600200b003a40012223259800982d183c9baa001899912cc004c184c1ecdd5000c4c96600200319800800c56600266ebcc07cc1f4dd5001984000983e9baa0078acc004cdd7982b983e9baa001308001307d3754007132598009831983e9baa001899192cc004cdc39bad308301002375a60b46100026ea801a2b30013370e6eb4c20c04004dd6982c9840009baa0068acc004cdd7984180984200800980e9840009baa006899b8000898009bab305a308001375460b46100026ea802a6eb8c20c040326eb8c20c04c21004031014454cc1f92413665787065637420726573657276655f6173736574203d3d206d61746368696e675f726571756573742e726573657276655f6173736574001641f5153307e49126657870656374207969656c64203d3d206d61746368696e675f726571756573742e7969656c64001641f5153307e4912b657870656374207072696e636970616c203d3d206d61746368696e675f726571756573742e616d6f756e74001641f461060200260fc6ea80062a660f8921184578706563746564204f4465706f73697420616374696f6e001641ec60ac60fa6ea80060ec83d20ea83d20e880da0e907483a41d108201183f983e1baa00183920f2307d307a375400260a660f46ea8c150c1e8dd500241a107719806003801203e831a0e683120e691111119192cc004cdc380080244c8c8c96600266e1ccdc09bad307f307c375460fe0046eb4c1fcc1f0dd5183f80180244c9660033001002a5191112cc0040062b30013371e008911008a5189981000299841809ba90043308301375200697ae041f914a083f101d44cdc4803cc004dd61829983e9baa00ca400122323259800980e000c4cdc000199b83337040026eb4c16cc20404dd50021bad305a3081013754009100341f930010059bae3083010019bae30830130840100140506eb0c20804c1fcdd5001203283720f43301d375860a460f86ea802c8dd6184000983e9baa00183720f2375660fc60fe00260fc00330010079bae307c30793754603e60f26ea802200d005402d1533077490123657870656374206d696e745f616d6f756e74203d3d2065787065637465645f6d696e74001641d8b3001305830090018a4001159800800c19e264b3001307d0028992cc004cdc79bae307900248810455534472008800c1a90771bad307900183420f4307b00141e483a8cc06cdd5980a183b9baa005375c60a260ee6ea8c074c1dcdd50034c1d0c1c4dd50204c12cc1c4dd5020a4444446644b300159800980a0014528c6600260b20034a14a283b107644c96600260b460f26ea80062646644646644b30013060307f37540031325980099b87337026eb4c210040040180122b30013370e6eb4c21004c21404004dd6984200984280803c56600266e2520000098acc0066002660526eb0c21004c20404dd50329bae305a3081013754604e6102026ea802e021375860b66102026ea8032661060260b66102026ea8c09cc20404dd50059984180a61054455534472004bd7052000403915980099b890033233001001375860b66104026ea8198896600200314800226644b30013375e611002610a026ea8008c22004c22404c22404c22404c22404c22404c22404c22404c22404c22404c22404c21404dd5007c4cdc0000cc004dd5982f9842809baa0029bae305f30850137546056610a026ea803e910104555344720040651001420804610c0200266004004610e0200284200a3300100b832cdd6982d1840809baa00c9bad3023308101375401900999b8000a0094035153307f49012b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001641f9153307f4919f6578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202020757364725f61737365742c0a2020202020202020302c0a20202020202029001641f9159800cc004cc0a4dd61842009840809baa065375c60b46102026ea8c09cc20404dd5005c0426eb0c16cc20404dd50064cc20c04c16cc20404dd518139840809baa00b33083014c1054455534472004bd704c16000d00e4660020170659bad305a3081013754019375a60466102026ea803201300a4035153307f491b36578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a20202020202029001641f883f22a660fe9213a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265001641f9153307f4913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001641f865300133014001375a6108026102026ea800a6eb8c16cc20404dd518139840809baa00b9bae30233081013754604e6102026ea802d2225980098321841809baa0038992cc004cdd79844009842809baa308801308501375400260b46610e026ea40092f5c115980098324c004dd5982f9842809baa00180152210d7374616b696e675f7661756c740040651325980098359842809baa0018992cc004006330010018acc004cdd798149843809baa0034c103d87a8000899844809ba898009bab30613087013754007005a441045553447200406c6611202611402610e026ea8004cc2240400d2f5c107c4210050810140550810184080c2040610202846008c22404c21804dd5000c54cc2100524012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d0016420c0460bc610a026ea80062a661060292014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001642080515330830149141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016420804610e026108026ea800e2a661040292013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f696478290016420404375860b26100026ea81922a660fc92013565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f696478001641f466e04018004c20404c20804c20804c20804c20804c20804c1f8dd5004acc004c060006266e10cdc1002801000c5200041e86eb4c1f8004dd6983f183d9baa307e980082fcdd7183f183d9baa3021307b375400b375a60a860f66ea801a6eb4c074c1ecdd5003201a329800998070009bad307e307b3754005375c60aa60f66ea8c084c1ecdd5002cdd7180e983d9baa3021307b375400a9112cc004c178c1f4dd5001c4c96600266ebcc20804c1fcdd5184100983f9baa3059307f375400260a866102026ea40092f5c1159800982f4c004dd5982c983f9baa3059307f3754003002a4410d7374616b696e675f7661756c7400404d132598009832983f9baa0018992cc00400633001001899841809ba898009bab305b308101375460b66102026ea800e00b489045553447200405466106026108026102026ea8004cc20c0400d2f5c107b403d07b83dc1ee0f6843008c20c04c20004dd5000c1d907d182c183f9baa3059307f3754003153307d4901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641f1153307d4914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641f061020260fc6ea800e2a660f892013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641ec375860fa60f46ea817a2a660f092013365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f696478001641dc602c60f26ea80122a660ee92012e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001641d930010069bac307a3077375400523371290001bad3052307837540028082600200d480024466e00004dd69829183c9baa002404c8acc004c15802e33001375860e860e26ea8072444653001001802400d0011112cc00400a2b30010018a518a5041e1159800800c52845660026600860f40046eb4c1e800633001003983d8014c1ec005003452820e841e083c244b30010018a40011301a33002002307700141d1223370666e08008dd6982618399baa001375a609a60e66ea800660e860e26ea8102609660e26ea8105222222325980099914c004c8cc00400400c896600200314a115980099baf307f307c375460fe60f86ea8c158c1f0dd5183f80098289983f1ba90034bd704528c4cc008008c2000400507920faa50a5141dc6eb0c1ecc1e0dd502e1bae301a30783754603c60f06ea800a2b300133225980099b87300a002300a0098acc004c04400633001002800c88c96600260ba60f86ea800626464b3001305d307e37540031325980099b87375a6106020026eb4c168c20004dd5001c4cdd7984180984200800980e9840009baa0038a5041f460fe6ea8006294107c182b983f1baa32598009832183f1baa0018992cc004006330010018acc004cdd798111840009baa003308301308001375400d15980099baf305a30800137540026106026100026ea800e200307941f507841f5077407907783bc1de0ee842808c20804c1fcdd5000c1d507c182b983f1baa3058307e375400861000260fa6ea80060d683d0cc03c02c005008419d0774199077198101bac307b307837540b86eb8c144c1e0dd5180f183c1baa002375860a460f06ea800e2b300198009bac3051307837540b9375860f660f06ea800e6eb0c138c1e0dd50012444b30013370e6008004601601519800805400a4464b3001305e307d375400319800984080983f1baa0019bac301b307e3754007323305000523375e6106026100026ea8004dd38011bac301b307e37540069112cc004c184c20004dd5000c56600266ebcc21004c20404dd50019842009840809baa308401308101375400d15980099baf305a308101375400660b66102026ea8c21004c20404dd500344cdc3cc004dd5982d9840809baa0039bae3084010029bae30840130850100240546601a64b300133710002900044c164006200283f8dd6982d9840809baa006308401308101375400314a083f2294107e454cc1fd24015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001641f88a9983e2493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f69647829001641ec6602000a002804a2a660f292013b657870656374206c6973742e6c656e677468286f75747075745f696e646963657329203d3d206c6973742e6c656e67746828726571756573747329001641e08982c4c006600200f375860f660f06ea800e4b30013014375a60a660f26ea8006260b26eb4c148c1e4dd5000c52820ec40453301c3756602a60f06ea8170dd71829183c1baa301e30783754005980082e4dd7183d983c1baa301e30783754005375a60a260f06ea800e6eb4c068c1e0dd5001a0149980c9bac304e3078375400446eb0c1f0c1e4dd5000a44446530013080010019bab308001308101001984000801d6600260ba601c0091480022b300100483644c96600261040200b1325980099b8f375c60fc0049110455534472008800c1bd07c1bad307e001836a0fe30800100441f883d1222259800cc00400e9464444b30010018acc004cdc78022441008a5189981200519843809ba90043308701375200697ae042080514a0841009021456600266e1ccdc09bad30840130810137540086eb4c21004c20404dd5001000c4c96600266e1e60026eb0c160c20804dd5006520009119912cc006600260cc0034a14a284180a264b3001337126602600200b30010099bae308a010039bae308a01308b01003406d1337000080031533085014912d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642100466e080040162006841808dd61843809842009baa00232980080a52000912cc004cdd798121843809baa002374e0071337000026eb4c184c21c04dd5001440050840120423758610e026108026ea800901e19b8100200a8801454cc200052413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c7461001641fcb3001301c0098a400314800907e41cd07e41c907e0c2000400915330764901a26578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641d51533076491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001641d5153307649142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c7429001641d460080088a5041b8837044b300133710002900045300103d87a8000899802001000a0d82264b30010018204102264b3001001820c4c966002003042821410a0851332259800800c112264b30010018acc004c17c00a264b3001303c305b375400513259800800c11e264b30010018992cc00400609313259800800c4c96600200304b8992cc00400609904c8264132264b300130670038acc004c10cc188dd500344c96600200304e8992cc00400609f04f827c13e26644b3001001828c4c966002003052829414a0a5132598009836801c4c966002609400313259800800c156264b300100182b415a0ad0568992cc004c1c400e02505741b86eb80050711837000a0d8306a37540171598009824800c56600260d46ea802e01f05441ad054419c8338c1a0dd5005414d06a1bae00141b460d40028340dd7000983480120d43067001419460c66ea801a09a830209a8320dd7000a0ce3064001418860c800504a825412a0948328c1880050601831001412209104882420c63060001417860b86ea800a08c82c84c01cc17c02208a82e208b045822c115060182e800a0b6375c00260b800482e8c1680050581bac001820410105b182c00120ac81ea03c81ea03c8992cc00400607d03e81f44c8c00cc164010dd6800c0f9059182b00120a88992cc00400607903c81e44c8c00cc15c010dd6800c0f1057182a00120a481ca0a081cc0e6073039415060a20028278c14400a06f03781bc0dd0521827800a09a375a002609c005034413c60980028250dd6800982580140c504c1824800a08e3758002609000502e8172092304600141106eb0004c11400a05702b411860860028208c0fcdd500340a503c40a50401bac00181440a10431820000a07c3040002813409a04d0264104607c00281e0c0f800a049024812409103f181e000a0743038375400f02240d4444b300130193038375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c4c9660020030098992cc00400601500a80544c966002608e00719800804c6600200900c805a01e805a022805a088375a00300a411c60880028210c11000a01100880440210451821000a080375a00260820050054108607e00281e8c0fc00a007003801c00d040181e800a0763039375400700140d8444b300130193038375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c12800e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c13c00e02901341306eb800504f1826000a094375c00260960048260c1240050474039012403901440390471bac001806c03504a1823800a08a3047002805c02e01700b4120608a0028218dd6800982200140210451821000a080375a00260820050054108607e00281e8c0fc00a007003801c00d040181e800a0763039375400700140d880e407203901c40dc664464b30013014303337540031303432337606070002607060720026eb0c0dcc0d0dd5000c54cc0c924018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c02ccc0e0dd480225eb812f5c11301833038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c3756600e60626ea8054dd7181a18189baa0019800912cc004006297ae089981a1818981a80099801001181b000a0669112cc004cdc48012400110018cc00400e66e10009201499b8b3370066e14009201448180005003206091111919800800802912cc004006200b13259800800c4cc010c0e800801a26600a60740046600600600281c0c0e80050374dd6180518181baa01448888c8c8c8cc88c966002003159800980d181c9baa0018992cc00400604d13259800800c09e04f027813c4cc89660020030298992cc0040062b300130430028acc004c07cc0f8dd5000c4c96600200302b8992cc004006264b3001001816c4c96600200313259800800c0be264b30010018992cc00400606313259800800c4c9660020030338992cc004006264b300100181ac4c96600200313259800800c0de264b30010018992cc00400607313259800800c4c96600200303b8992cc004006264b300100181ec4c96600200303e81f44cc89660020030408992cc0040062b3001305a0028cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c0d8c154dd500344c9660020030428992cc004006087043821c10e26644b3001001822c4c966002003046823411a08d1332259800800c122264b3001001824c126093049899912cc00400609713259800800c13209904c82644c96600260cc00713304300f225980080146600201f102b827a06e8992cc0040062b300130453064375400313259800800c146264b3001001829414a26644b300100182a44c96600200305582ac15626644b300100182bc4c96600200305882c4162264b300130720038acc00401e0b313259800800c16a0b505a82d44cc896600200305c8992cc0040060bb05d82ec176264b3001307700389808183b808c1790741bae00141dc60e80028390dd7000983980420e8307100741bd05941bc6eb40060b08390c1bc00506d1bad001306e00282aa0de306c00141a86eb0004c1ac00a0a505241b060d20028338c194dd5000c14106241420a105082820d43067002419504d418c6eb80050661831800a0c2375c00260c40048318c18000505e1bae001305f002418060ba00282d8dd7000982e00120ba305a001416060ac6ea801a082829a0828142082814208281420828142082814208281420828142082814208282ba083041820c10505b182c000a0ac375800260ae00503e81f20b03055001414c60aa00503c81e40f207882b0c14c005051182980140ea07503a81d20a83051001413c60a200503881c40e20708290c13c00504d182780140da06d03681b20a0304d001412c609a00503481a40d20688270c12c005049182580140ca06503281920983049001411c609200503081840c20608250c11c005045182380140ba05d02e81720903045001410c608a00502c81640b20588230c10c005041181f9baa0018152078815208081540aa05502a4110608200281f8dd700098200012082303e00140f060746ea800604a81ba04b025812c09503f29981b99b964912467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea40d522010013259800980d181c9baa00189929981c99b9649113666f756e642070726f7879207574786f3a3a2000373266008002910100132598009810981d9baa0018992cc0040062b3001301d303c375400313259800800c0e6264b300100181d40ea07503a899912cc0040060791325980098230014401a07a8218c1100050421bae00130430024110608200281f8c0f4dd5000c0e103a40e207103881c2084303f303c3754003153303a49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640e4602860766ea8c054c0ecdd5000981e981d1baa0018a9981c24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640dc6601400c4646600200260066eacc054c0ecdd5180a981d9baa0022259800800c528456600266e3cdd7181f80081c4528c4cc008008c100005039207a300100130070072223259800801c4c8c8cc88cc024008cdc524501280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100c207e5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81c90391bac303c002375a60740026466ec0dd4181d0009ba7303b001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a607e003337149101023a200098008054c10000600a805100a182100144ca6002015303f00199b8a489023a200098008054c100006600e66008008004805100a18210012080304200140fc66e29220102207d0000340f06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900920783758007133005375a0060051323371491102682700329800800cc050dc68014cdc52450127000044004444b30013371000490004400626466453001006980c802ccdc599b800025980099b88002480522903045206e40f866e2ccdc0000acc004cdc4000a402914818229037207c004401866e0c00520203370c002901019b8e00400240ec6eb800d03f1b8a4881022c20002232330010010032259800980c800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002301000189980299b8400148050cdc599b803370a002900a240c000681b10361801801844464b300130100018992cc00400600713259800800c01200900480244c966002606e007006802a068375c00281b8c0d000503218181baa0048acc004c03c006264b3001001801c4c966002003004802401200913259800981b801c01a00a81a0dd7000a06e303400140c860606ea8012004816902d18171baa00345901a0c070004c05cdd500ec5268a9980aa491856616c696461746f722072657475726e65642066616c7365001365640501" + : + "5921fd010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007374a9000488c8cc00400400c88cc00c004c00800a6e1d20009b874800a6e1d20069b87480226e1d200a9b87480324601c601e0032300e300f300f00191807180798079807980798079807980798079807800cdd2a400491111111111114c00488c8cc00400400c896600200314c0103d87a80008992cc004c010006260226603c00297ae089980180198100012034301e001407122232598009807000c4c8c96600260420050048b203c375c603e00260366ea800e2b3001300d0018992cc004c0800062660206eb0c07c00489660020050058cc00401e6042005130013022002401c80fa2c80e8c06cdd5001c5660026026003132598009810000c4cc040dd6180f800912cc00400a00b19800803cc08400a260026044004803901f45901d180d9baa0038acc004c0300062646644b300130220018998091bac30210012259800801401e33001009981180144c004c09000900920428b203e375a603e002604000260366ea800e2b3001300b001899192cc004c08400a0091640786eb4c07c004c06cdd5001c56600260140031323259800981080140122c80f0dd6980f800980d9baa0038acc004c02400626464b3001302100280245901e1bae301f001301b375400716406480c90192032406480c9019180c9baa00291192cc004c03400626464b3001302000280245901d1bae301e001301a37540071598009806000c4c8c96600260400050048b203a375c603c00260346ea800e2c80c1018180c1baa002912cc004c030c060dd500144c8c8c966002604000513232598009808800c566002603c6ea800a00d16407d1598009808000c4c8c96600260480050088b2042375a6044002603c6ea800a2b300130160018acc004c078dd5001401a2c80fa2c80e101c2038301c3754002603e00716407464b3001301c0018acc004cdc4a400860360031689807180d800a0348b203a3754603c002603c00260326ea800a2c80ba44b3001300c30183754005132323322598009810801c0162c80f0dd6980f0009bae301e002301e0013019375400516405d2232598009806800c4c8c96600260400050048b203a375a603c00260346ea800e2b3001300c0018acc004c068dd5001c00a2c80da2c80c1018180c1baa0024888888cc88cc8a6002664464b30013017302337540031302432337606050002605060520026eb0c09cc090dd5000c590221919800800801912cc004006298103d87a80008992cc004cdd7981280099ba548010cc0a0c040cc0a0dd480225eb812f5c11301b33028374e66050604a00266050604c00297ae04bd7044cc00c00cc0a80090241814000a04c3756601860426ea8060dd7181218109baa002912cc004c058c088dd500144c8c8c8ca60026eb4c0a80066eb4c0a800e60540049112cc004c0b8012266014605a00e26601e0020111640ac302a00130290013028001302337540051640852259800980b18111baa002899191919194c004dd61815800cdd698158024dd69815801cc0ac0092222598009818002c4cc030c0bc0244cc0440044c8cc8966002606600700d8b2060375c60600026eb8c0c0014c0c00122c8168605600260540026052002605000260466ea800a2c810922259800980b98119baa003899191919912cc004c0b400e264b3001301d30293754003132323232323298009819800cdd61819802cdd698198024dd69819801cc0cc0092222259800981c80344cc0a4dd6181c005912cc00400a26605600c44b300100289980e80289980e8048992cc004c0b4c0e4dd500944c8c8c9660026082005132332259800981980144c966002608a0031330353758608800244b300100280244cc080c1180084c004c11c00904445904218201baa0038acc004c0c800a264b3001304500189981a9bac304400122598008014012266040608c00426002608e00482222c8210c100dd5001c5660026070005132598009822800c4cc0d4dd61822000912cc00400a0091330203046002130013047002411116410860806ea800e2b300130310028992cc004c11400626606a6eb0c1100048966002005004899810182300109800982380120888b208430403754007159800981800144c966002608a0031330353758608800244b300100280244cc084c1180084c004c11c00904445904218201baa0038acc004c0bc00a264b3001304500189981a9bac304400122598008014012266042608c00426002608e00482222c8210c100dd5001c566002605c005132598009822800c4cc0d4dd61822000912cc00400a0091330203046002130013047002411116410860806ea800e2b30013370e900700144c966002608a0031330353758608800244b300100280244cc080c1180084c004c11c00904445904218201baa0038b207c40f881f103e207c40f881f103e181e9baa001132598009819000c4c966002608800313302530430010078b2082303f37540071598009818800c4c966002608800313259800981a18201baa00189919192cc004c12000a266054608e006266054002017164114608c002608c00260826ea80062c81f8c10c0062c8208c0fcdd5001c5903d207a303d375400460800071640f8607e002607e00260746ea804a2c81c04cc0b4048896600200519800981f181d9baa3028303b37540352302e303b3754607e646600200200444b30010018a5eb8503d87a80008101800044c8cc8966003300130333040375460880074a14a281fa26608730014a14c103d87a8000a60103d879800040fc660866e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11800400e2946266004004608e002820904444cc10e600294298103d87a8000a60103d879800040fc660866e9c0092f5c11330439800a51a60103d87a8000a60103d879800040fc660866e9ccc10cdd400080125eb8103f207e3758608460860026eb4c108008cc008008c10800503f48888ca6002003005802400d00111112cc00400e2b30010028800c590444660020093047003982380166002608c007375a608c00500140148021044488c8cc00400400c896600200314bd7044cc896600266ebcc110c104dd5182218209baa302e304137540046056660866ea40152f5c113304300233004004001899802002000a07e3042001304300141013700900148c0fcc100c100c100c100c100c100c100c100006444b30010028a6103d87a80008acc004c0c40062606666080608200497ae08cc00400e6084005337000029000a00640f081fa4464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208289980280298238022082375c60800026eacc104004c10c0050410a5eb7bdb18244b30013030303c375400513232598009821801400e2c8200dd69820800981e9baa0028b20769181f982018201820000cdc0a40012232330010010032259800800c52f5c1133041374e600660840026600400460860028202444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c1140066eb4c1180066600600660940048048c1200050461bab3043003375c608000266006006608a0046086002820a44646600200200644b30010018a508acc004cdd798210009ba70038a518998010011821800a07a410122598009818181e1baa0028991919194c004c110006608800730440024889660026090009133027304700713302400213259800981c000c4c8cc89660026098003132323322598009828001c0422c8268dd718268009bae304d002304d001375860960031641246eb4c124004c128004c114dd50014566002606e0031323322598009826000c4c8c8cc896600260a00070108b209a375c609a0026eb8c134008c134004dd61825800c590491bad3049001304a00130453754005159800981e800c4c8ca60026eb4c1280066096003375a60940049112cc004c13800a264646644b3001305200380945904f1bae304f001375c609e004609e0026eb0c13400a2c82586094002608a6ea800a2b3001303600189919912cc004c130006264646644b3001305000380845904d1bae304d001375c609a004609a0026eb0c12c0062c8248dd69824800982500098229baa0028acc004c0d400626464b3001304b002805c590481bad304900130453754005159800981a000c4c8c8cc8966002609a00700d8b2094375a60940026eb4c128008c128004c114dd50014566002606600313232598009825801402e2c8240dd6982480098229baa0028acc004cdc3a401c00313232598009825801402e2c8240dd6982480098229baa0028b2086410c82190432086410c821904318219baa0018b208a182200098218009821000981e9baa0028b20769181f9820182018201820000c888ca6002003004801a00222259800801440063300100398228014cc010c11000800500320849b8848001222222222222222222980098261baa0129112cc004c05000a33001003801520009112cc004c01000e266e00004dd6982018299baa0038b20a2404d1641392259800800c5200089808198010011829800a0a091809000c8966002003148002260206600400460a600282826018019222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01905444cc014014c1680110541bae3053001375a60a800260ac00282a0cc03c01000c5200048888888ca6002444464b3001304d305937540031325980099baf305e305b375460bc60b66ea8c120c16cdd500098229982e9ba90054bd704566002609b30013756609060b66ea8c120c16cdd5000c01691108747265617375727900402113259800982a182d9baa0018991980d0008992cc004c144c174dd5000c4c96600266ebcc188c17cdd51831182f9baa001304933061375201297ae08acc004c14660026eacc130c17cdd5000c02691108747265617375727900403113259800982c182f9baa0018991980f0008acc004cdd7980e98309baa0034c0103d87a800089983180299831800998319ba6329800800cdd5982798311baa00499198008009bab30503063375460a060c66ea8024896600200314bd6f7b63044c8cc19ccdd818320009ba63233001001375660cc00444b30010018a5eb7bdb182264660d466ec0c19c004dd418119bad306800133003003306c002306a00141a06600600660d200460ce00283290011112cc00400a2003132332298008034c1ac016646600200200a44b300100189983599bb037520086e9800d2f5bded8c113298009bae30690019bab306a00198370012444b30013372001000713306f337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820de880144cc1c0cdd81ba9009374c0020048360ca6002003008801a002222598008014400626466453001006983b802cc8cc0040040148966002003133077337606ea4010dd4001a5eb7bdb1822653001375c60ea003375a60ec003307a00248896600266e4002000e2660f666ec0dd48041ba80070058acc004cdc7804001c4c96600260da003100289983e19bb037520126ea000400907819b8000700289983d99bb037520066ea0008cc01801800507720ee183c000a0ec40186eb8c1c0004dd69838800983980120e289983799bb037520066e98008cc01801800506b20d61836000a0d440186eb8c190004dd59832800983380120ca4bd7045905f183198301baa0018b20bc304b305f375400316417516417460c260bc6ea80062c82e0cc024dd61824982e9baa008005305f305c3754003164168608e60b66ea8c120c16cdd5000c59059459059182e982d1baa0018b20b033005375860b860b26ea801000a600800930060064889660026092017198009bac305b3058375403b22598009826982c9baa002899192cc004c18000a0071641746eb4c178004c168dd50014590584888896600266e1cc018014c0180122b3001300d003899b890019800802c00e90004888c96600260a860c06ea800626644b3001305b306237540031323301b00115980099baf30203064375400660ce60c86ea801e2b30013375e60a260c86ea8004c19cc190dd5001c4c96600260ba60c86ea800626464b30013370e6eb4c1a8008dd6982a18339baa0068acc004cdc39bad306a001375a60a660ce6ea801a2b30013375e60d460d6002603a60ce6ea801a266e0002260026eacc150c19cdd5182a18339baa00a9bae306a00c9bae306a306b00c405116419516419516419460d400260ca6ea80062c8318c140c190dd5000c59062459062183318319baa0018b20c2306430613754002609a60c26ea8c138c184dd500245905f1980600380120408b20b68b20b691111119192cc004cdc380080244c8c8c96600266e1ccdc09bad30663063375460cc0046eb4c198c18cdd5183300180244c9660033001002a5191112cc0040062b30013371e008911008a51899810002998351ba90043306a375200697ae0419914a0833101d44cdc4803cc004dd6182798321baa00ca400122323259800980e000c4cdc000199b83337040026eb4c154c1a0dd50021bad3054306837540091003419930010059bae306a0019bae306a306b00140506eb0c1a4c198dd500120328b20c43301d3758609c60c66ea802c8dd6183398321baa0018b20c2375660ca60cc00260ca00330010079bae306330603754604060c06ea802200d005402d164178b3001305230090018a40011598009831800c4c96600266e3cdd7182f800a44104555344720089bad30600018b20bc30620018b20c04174660386eacc050c178dd50029bae304b305e3754603c60bc6ea801a60b660b06ea80de608a60b06ea80e5222222332259800acc004c05000a2946330013053001a50a51417882f2264b3001305430603754003132332232332259800982d18331baa0018992cc004cdc399b81375a60d600200c00915980099b87375a60d660d80026eb4c1acc1b001e2b3001337129000004c56600330013302a375860d660d06ea817cdd7182a18341baa3028306837540170109bac3055306837540193306a305530683754605060d06ea802ccc1a9301054455534472004bd7052000403915980099b890033233001001375860aa60d26ea8180896600200314800226644b30013375e60de60d86ea8008c1bcc1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1b0dd5007c4cdc0000cc004dd5982c98361baa0029bae3059306c3754605860d86ea803e91010455534472004065100141a860da0026600400460dc002835a3300100b82fcdd6982a18341baa00c9bad30243068375401900999b8000a0094035164199164199159800cc004cc0a8dd6183598341baa05f375c60a860d06ea8c0a0c1a0dd5005c0426eb0c154c1a0dd50064cc1a8c154c1a0dd5181418341baa00b3306a4c01054455534472004bd704c08c00d00e46600201705f9bad305430683754019375a604860d06ea803201300a403516419883322c83322c8330ca6002660280026eb4c1acc1a0dd50014dd7182a98341baa302830683754017375c604860d06ea8c0a0c1a0dd5005a444b3001305e306a37540071325980099baf306f306c375460de60d86ea8004c158cc1b8dd480125eb822b3001305e98009bab3059306c3754003002a4410d7374616b696e675f7661756c7400406513259800983298361baa0018991980a8008acc004cdd7981518371baa0034c0103d87a80008998381ba898009bab305b306e3754007005a441045553447200406c660e060e260dc6ea8004cc1c000d2f5c11641b060e060da6ea80062c8358c160c1b0dd5000c5906a45906a183718359baa0038b20d21bac3053306737540bd16419466e04018004c1a0c1a4c1a4c1a4c1a4c1a4c194dd5004acc004c060006266e10cdc1002801000c5200041886eb4c194004dd6983298311baa3065980082ccdd7183298311baa30223062375400b375a609c60c46ea801a6eb4c078c188dd5003201a329800998070009bad306530623754005375c609e60c46ea8c088c188dd5002cdd7180f18311baa30223062375400a9112cc004c160c190dd5001c4c96600266ebcc1a4c198dd5183498331baa30533066375400260a0660d06ea40092f5c1159800982c4c004dd5982998331baa305330663754003002a4410d7374616b696e675f7661756c7400404d13259800982f98331baa001899198078008998351ba898009bab30553068375460aa60d06ea800e00b48810455534472004054660d460d660d06ea8004cc1a800d2f5c060d460ce6ea80062c8328c148c198dd5182998331baa0018b20c88b20c830683065375400716418c375860c860c26ea81622c82f8c058c180dd500245905e4c00401a6eb0c184c178dd500148cdc4a40006eb4c130c17cdd5000a0209800803520009119b80001375a609860c06ea800901322b3001305000b8cc004dd6182d982c1baa01d911194c0040060090034004444b30010028acc0040062946294105f456600200314a11598009980218308011bad30610018cc00400e60c40053062001400d14a082e105f20be912cc0040062900044c06ccc008008c17800505b488cdc199b82002375a608c60b46ea8004dd69823982d1baa001982d982c1baa0379822982c1baa0394888888c9660026645300132330010010032259800800c528456600266ebcc198c18cdd5183318319baa30503063375460cc002609a660ca6ea400d2f5c114a313300200230670014184832294294505f1bac3062305f37540ac6eb8c06cc17cdd5180f982f9baa0028acc004cc896600266e1cc028008c0280262b300130110018cc00400a003223259800982b98319baa001899192cc004c15cc194dd5000c4c96600266e1cdd698350009bad30543067375400713375e60d460d6002603a60ce6ea800e294106518331baa0018a50419060a260ca6ea8c96600260bc60ca6ea80062646603c0022b30013375e604660ce6ea800cc1a8c19cdd5003456600266ebcc150c19cdd5000983518339baa0038800c59065459065183498331baa0018b20c830513065375460a460ca6ea8010c19cc190dd5000c5906219807805800a0108b20be8b20be33021375860c460be6ea8158dd71825982f9baa301f305f37540046eb0c130c17cdd5001c56600330013758609660be6ea815a6eb0c188c17cdd5001cdd61825182f9baa00248896600266e1cc010008c02c02a3300100a801488c96600260b060c86ea8006330013068306537540033758603660ca6ea800e646609e00a466ebcc1a8c19cdd50009ba70023758603660ca6ea800d22259800982d98339baa0018acc004cdd7983598341baa003306b3068375460d660d06ea801a2b30013375e60a860d06ea800cc154c1a0dd5183598341baa006899b8798009bab305530683754007375c60d6005375c60d660d800480a8cc034c96600266e20005200089812000c40050671bad30553068375400c60d660d06ea80062941066452820cc8b20cc45906319808002800a0128b20c044c14a600330010079bac3062305f3754007259800980a1bad304d3060375400313053375a609860c06ea8006294105e20229980e9bab3015305f37540ac6eb8c130c17cdd5180f982f9baa002cc00415a6eb8c188c17cdd5180f982f9baa0029bad304b305f3754007375a603660be6ea800d00a4cc064dd61825182f9baa0022375860c660c06ea8005222232332259800cc00400a9464444b30010018acc004cdc78022441008a51899811004198361ba90043306c375200697ae041a114a0834101f456600266e1ccdc09bad30693066375460d20066eb4c1a4c198dd51834802800c4c96600266e1e60026eb0c148c19cdd5005520009119912cc006600260bc0034a14a2834a264b3001337126602200200b30010089bae306f0039bae306f307000340651337000080031641a866e0800401620068348dd6183618349baa00232980080952000912cc004cdd7981118361baa002374e0071337000026eb4c164c1b0dd50014400506a203e375860d860d26ea800901c19b8100200888014590652cc004c06801e29000c5200241911641911641906eacc19cc1a00056600260ae601c0091480022b300130680048992cc004cdc79bae306400148904555344720089bad30650018b20c630670048b20ca418860ce0048b20ba8b20ba8b20ba3004004452820ac4158225980099b88001480022980103d87a8000899802001000a0a822646644b30013042001899912cc004c0ccc0fcdd500144c8c8c8cc8966002609200713259800981c98229baa0018991919912cc004c13800e264b3001303e001899192cc004c14400a01d1641386eb8c13c004c12cdd5003c566002607a00315980098259baa00780645904c45904920923049375400d16412c6eb8c12c004dd71825801182580098231baa0018b208830480058b208c375c608c002608c004608c002608a00260806ea800a2c81f0c1040044c010c1080162c81f8dd7181f80098200009bac303e00240f11323002303e003375a607800481d2264600460780066eb4c0e80090384590360c0cc004c0c8004c0c4004c0c0004c0bc004c0a8dd5000c590281816002c5902a1bac302a001302a002302a00130290013024375400716408832323259800980a98109baa00189919912cc004c0a4006264b3001301930253754003132323232323232323232329800981a000cc0d002a60680133034008981a003cc0d001a606800b3034004981a001cdd6181a00124444444444b3001303f00b89980f181f00a89980f00489980f00409980f00389980f00309980f00289980f00209980f0018acc004c0b8c0e8dd500144c8c8c8ca60026eb8c1080066eb8c1080126eb8c10800e6eb8c1080092222598009823802c4cc0dc024896600200513302701410248992cc004c0e4c114dd5000c4c8c8c8cc8966002609e007132323322598009829801c4c02cc14c0322c8280dd718280009bae305000230500013758609c00b1641306eb4c130004dd698260011826000982580098231baa0018b208830480024119164110304200130410013040001303b37540051640e51640f030340013033001303200130310013030001302f001302e001302d001302c001302b0013026375400316409060500031640986eb8c098004c09c004c088dd5000c59020192cc004c054c084dd5000c4c966002603660446ea8006264b3001301730233754003132323322598009816001c40162c8148c0a4004dd71814801181480098121baa0018b2044302630233754003164084601c60446ea8c03cc088dd5181298111baa0018b20403300a3758601c60426ea80608c8cc004004c00cdd5980818119baa30103023375400444b30010018a508acc004cdc79bae30270010218a518998010011814000a0444094600200244b30010018a5eb822660466040604800266004004604a00281108966002602860406ea800a2646464b3001302800289980318138018992cc004c0600062b3001302537540050058b204c8acc004c05c00626464b3001302b002803c590281bae302900130253754005159800980e800c4c8c96600260560050078b205030290013025375400516408c811902318119baa0018b204a302600130260013021375400516407c600a00a44b30013012301e3754005132323259800981300144cc024c09400c4c966002602c003132598009814000c4c8c9660026032003132598009815800c4cc038c0a80040262c8140c098dd500145660026030003132323298009bad302c0019bad302c0039bad302c002488966002606000900e8b205a1816000981580098131baa0028b2048409060486ea8004c09c0062c8128c08cdd50014566002602a00315980098119baa002802c5902445902120423021375400316408c60480026048002603e6ea800a2c80e88b2010180480098021baa0098a4d13656400801", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolManagementProtocolManagementElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "594460010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00168a99801a4938657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a4926657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a49b76578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a2020202020202020616363202626202820706f6c696379203d3d202222207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d65292920290a2020202020207d2c0a202020202900168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a493e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f6964782900168a99801a49376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f72657175657374732900168a99801a4939657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a49286578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d20646174756d00168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d6572001648888888888888888896600264653001301c001980e180e800cdc3a4009301c0024888966002600460386ea800e330013020301d3754007374a9000488c8cc00400400c88cc00c004c00800a6e1d20009b874800a6e1d20069b87480226e1d200a9b874803246042604400323021302230220019b80480066e05200091810981118111811181118111811181118111811000cdd2a4004911111111111111194c004889660026020605e6ea800e264b300100180144c96600200313259800800c012264b30010018acc004c0e000a330010038992cc004c054006264b3001001803c4c966002003159800981d80144c966002603000313259800800c02a264b30010018acc004c0f800a33001001806402d00e402d03b402e01700b805a07e303c00140e860706ea800a2b300130170018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c11400e02701241086eb40060228228c1080050401bad00130410028072084303f00140f46eb4004c0f800a01681f8c0f000503a181c1baa002804a06a40d4606c6ea800601081c2011008804402103c181c800a06e30353754005159800980a000c566002606a6ea800a00f00640d900640c88190c0ccdd5000c0150084015035401600b005802a072303600140d0606c005003801c00e00681b8c0d000503218181baa003800a05a911194c004006009003400444464b300130140018992cc00400600d13259800800c01e00f007803c4c96600260760070058042070375c00281d8c0e0005036181a1baa0038acc004c04c006264b300100180344c966002003007803c4c96600260760071330180012259800801401e264b30010018cc00402a00313002303e003402900b805c02e01681f8c0f000903a40210381bac001803c01d03b181c000a06c30343754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0ec00e26603000244b3001002803c4c96600200319800805400626004607c006805201700b805c02d03f181e001207480420703758003007803a076303800140d860686ea800e2b300130120018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981f001c4cc06c004896600200500a8992cc0040063300100d800c4c008c10400d00d403a01d00e8072084303f00240f500b40ec6eb000601500a40f8607600281c8dd6800981d001401d03b181c000a06c303437540071598009808800c4c9660020030068992cc00400600f007803c4c96600260760070058042070375a00300740ec607000281b0c0d0dd5001c566002602000313259800800c01a264b3001001803c01e00f13259800981d801c01601081c0dd6800c01d03b181c000a06c303437540071598009807800c4c9660020030068992cc00400600f007803c01e264b3001303b003802c0210381bae00140ec607000281b0c0d0dd5001c015031206240c48189031206240c460646ea800a44646600200200644b30010018a60103d87a80008992cc004c010006260286606800297ae0899801801981b001205e303400140c891119192cc0040063300122259800980a981a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b3001301a0018acc004c0e8dd5001401e00c81da2b300130190018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c07c006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005403100540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e0028192444b300130153034375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607400315980099b8948010c0e400600d13259800981f80244c9660026038003159800981e1baa006804c02103d4566002603600313259800800c026264b3001001805402a015132598009821801c0320168200dd6800c0290431820000a07c303c375400d1598009810800c56600260786ea801a01300840f500840e481c9039181d1baa005803a0783019303900140dd00640ec6ea800600b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c005032488966002602a60686ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981f801c02200e81e0dd6800c01903f181e000a074375c002607600481e0c0e4005037181a9baa003800a064911192cc004c058006264b3001001801c4c9660020030048024012264b3001303d003803401503a1bad001802207a303a00140e0606c6ea80122b300130150018acc004c0d8dd5002400e00481ba0048199033181a1baa00348888cc89660026030606e6ea801e264b3001001811c4c96600200313259800800c096264b30010018992cc00400604f13259800800c0a2051132598009821801c566002603e607c6ea801a264b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e899912cc00400606113259800800c0c6063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c4c9660020030388992cc0040062b30013053002899818007112cc00400a26606401a44b30010028cc00401e330010058992cc004c0d0c14cdd500cc4c96600200303f8992cc004006264b3001001820c4c966002003159800982e00144cc8966002607400313259800800c116264b3001001823411a264b3001306100389981f000912cc00400a00f13259800800c660020031300230640038252052825412a09504a419460c4004830208e82f0dd6000c11a08c8308c17800505c182d1baa0058acc004c0e4006264b3001001822c4c96600200304682344c96600260c200713303e0012259800801401e264b30010018cc0040062600460c800704a40a504a825412a0948328c188009060411d05e1bac0018234119061182f000a0b8305a375400b159800981f800c4c9660020030458992cc00400608d0468992cc004c18400e26607c00244b3001002803c4c96600200319800800c4c008c19000e094814a09504a8254129065183100120c0823a0bc375800304682320c2305e001417060b46ea80162b300130380018992cc00400608b13259800800c11a08d132598009830801c4cc0f800489660020050078992cc00400633001001898011832001c129029412a09504a82520ca3062002418104741786eb000608d046418460bc00282e0c168dd5002c566002606e00313259800800c116264b3001001823411a264b3001306100389981f000912cc00400a00f13259800800c660020031300230640038252054825412a09504a419460c4004830208e82f0dd6000c11a08c8308c17800505c182d1baa0058acc004c0d8006264b3001001822c4c96600200304682344c96600260c200713303e0012259800801401e264b30010018cc0040062600460c800704a40a904a825412a0948328c188009060411d05e1bac0018234119061182f000a0b8305a375400b159800981a800c4c9660020030458992cc00400608d0468992cc004c18400e26607c00244b3001002803c4c96600200319800800c4c008c19000e094814a09504a8254129065183100120c0823a0bc375800304682320c2305e001417060b46ea80162b30013370e9007000c4c9660020030458992cc00400608d0468992cc004c18400e26607c00244b3001002803c4c96600200319800800c4c008c19000e094814a09504a8254129065183100120c0823a0bc375800304682320c2305e001417060b46ea801608882b905720ae415c82b905720ae415c264b300130390018992cc00400608913259800800c56600260be00519800800c02208a813a08a82e208b045822c115060182e800a0b630593754005159800981c000c4c9660020030448992cc0040062b3001305f0028acc004c0ecc168dd5000c4c9660020030468992cc004006264b300100182444c966002003159800983180146600200719800800c032092816209281620928302093049824c1250641830800a0be3061002823c11e08f047418860be00282e8c16cdd5000c115058411505c411608b045822a0c0305d001416c60b26ea800a08682b1056182b9baa001305737540070424165042821410a08482e8c168005058182d001410208104082020b63058001415860a86ea806607c82884cc0d0054896600200519800982c182a9baa302f30553754049230353055375460b2646600200200444b30010018a5eb8503d87a80008101800044c8cc89660033001303a305a375460bc0074a14a282c22660bb30014a14c103d87a8000a60103d87980004160660ba6e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c18000400e294626600400460c200282d105e44cc176600294298103d87a8000a60103d87980004160660ba6e9c0092f5c113305d9800a51a60103d87a8000a60103d87980004160660ba6e9ccc174dd400080125eb8105820b0375860b860ba0026eb4c170008cc008008c17000505948888ca6002003005802400d00111112cc00400e2b30010028800c54cc16d24112657870656374205b5d203d206c6973745f6200164179159800801454cc16d2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260c20073061002cc004c18000e6eb4c18000a002802900420bc41792232330010010032259800800c52f5c1133225980099baf305e305b375460bc60b66ea8c0d4c16cdd500118181982e9ba90054bd7044cc174008cc01001000626600800800282c0c170004c17400505a4dc02400523059305a305a305a305a305a305a305a305a0019112cc00400a2980103d87a80008acc004c0e000626074660b460b600497ae08cc00400e60b80053030001400c82a9059488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064169133005005306100441686eb8c168004dd5982d800982e800a0b614bd6f7b630488966002607060ae6ea800e264b300100180144c966002003003801c00e264b3001305f003802c01105c1bad001801a0be305c001416860b06ea800e00282aa460b260b460b460b40032232330010010032259800800c52f5c113305b374e600660b80026600400460ba00282d2444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c17c0066eb4c1800066600600660c80048048c1880050601bab305d003375c60b40026600600660be00460ba00282da44646600200200644b30010018a508acc004cdd7982e0009ba70038a51899801001182e800a0ac416922259800981c182b9baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300100180344c96600200313259800800c022264b300130640028cc00401e330010058992cc004c104006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c4c96600260d6007159800800c042264b3001001808c046023011899912cc00400602713259800800c05202901480a44c96600260e000701680aa0da375c0028380c1b400506b1bae001306c00241b460d400283420208340dd6000c03e01e8358c1a00050661bad001306700280620d03065001418c60c26ea80122b300130400018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f132598009835801c5660020030108992cc004006023011808c04626644b3001001809c4c96600200301480a4052029132598009838001c05a02a8368dd7000a0e0306d00141ac6eb8004c1b000906d1835000a0d080820d0375800300f807a0d6306800141986eb4004c19c00a0188340c19400506318309baa0048acc004c118006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e26644b3001001808c4c96600200301280944c96600260dc007159800800c04e264b300100180a4052029014899912cc00400602d13259800800c05e02f01780bc4c96600260e600701980c20e0375c0028398c1c000506e1bae001306f00241c060da002835a0268358dd6000c04a0248370c1ac0050691bad001306a002807a0d6306800141986eb4004c19c00a0188340c19400506318309baa0048acc004c0fc006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c4c96600260d6007159800800c042264b3001001808c046023011899912cc00400602713259800800c05202901480a44c96600260e000701680aa0da375c0028380c1b400506b1bae001306c00241b460d400283420208340dd6000c03e01e8358c1a00050661bad001306700280620d03065001418c60c26ea80122b3001303e0018992cc00400601713259800800c03201900c8992cc004c1a000e01d00d41946eb40060188340c19400506318309baa0048acc004c0f4006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c03e264b3001306b003808c0410681bad001807a0d6306800141986eb4004c19c00a0188340c19400506318309baa0048acc004c0f0006264b3001001805c4c96600200300c8064032264b3001306800380740350651bad00180620d03065001418c60c26ea80122b30013370e9007000c4c96600200300b8992cc00400601900c80644c96600260d000700e806a0ca375a00300c41a060ca0028318c184dd5002402905e20bc417882f105e20bc417882f0c17cdd5001c02502e402503240250611831000a0c03062002803c01e00f007418c60c000282f0c18000a00b005802c015061182f000a0b8305e002801c00e007003417c60b800282d0c160dd5001c00505548c164c168c168c168c168006444653001001802400d0011112cc00400a200319800801cc17c00a6600860bc004002801905c4dc424000911111111111111114c004c194dd5008c88966002602600519800801c00a900048896600260080071337000026eb4c118c1b0dd5001c54cc1a924011a6578706563742076616c69646174696f6e287265717565737429001641a480922a660ce9212e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e646963657329001641992259800800c5200089807998010011836000a0d291808800c89660020031480022601e6600400460d8002834a6016017222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01906c44cc014014c1cc01106c1bae306c001375a60da00260de0028368cc03801000c5200048888888ca6002444464b30013053307237540031325980099baf30773074375460ee60e86ea8c138c1d0dd500098249983b1ba90054bd70456600260a730013756609c60e86ea8c138c1d0dd5000c01691108747265617375727900402113259800982d183a1baa0018992cc004006330010018992cc004c15cc1d8dd5000c4c96600266ebcc1ecc1e0dd5183d983c1baa001304d3307a375201297ae08acc004c15e60026eacc148c1e0dd5000c026910108747265617375727900403113259800982f183c1baa0018992cc004006330010018acc004cdd7980e183d1baa0034c103d87a800089983e0029983e0009983e1ba6329800800cdd5982a983d9baa00499198008009bab3056307c375460ac60f86ea8024896600200314bd6f7b63044c8cc20004cdd8183e8009ba63233001001375660fe00444b30010018a5eb7bdb182264661060266ec0c20004004dd4182c1bad308101001330030033085010023083010014204046600600661040200461000200283f10011112cc00400a2003132332298008034c21004016646600200200a44b30010018998420099bb037520086e9800d2f5bded8c113298009bae3082010019bab3083010019843808012444b30013372001000713308801337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528211002880144cc22404cdd81ba9009374c002004842008ca6002003008801a002222598008014400626466453001006984800802cc8cc004004014896600200313309001337606ea4010dd4001a5eb7bdb1822653001375c611c02003375a611e0200330930100248896600266e4002000e2661280266ec0dd48041ba80070058acc004cdc7804001c4c96600260e6003100289984a8099bb037520126ea00040090900119b8000700289984a0099bb037520066ea0008cc01801800508f01211e02184880800a11e0240186eb8c22404004dd69845008009846008012114028998440099bb037520066e98008cc01801800508301210602184280800a1060240186eb8c1f4004dd5983f00098400080120fc4bd7041bd07741b901d41ba0dd06e83720fe307c30793754003153307749012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001641d860a260f06ea80062a660ec920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641d5153307649143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641d460f460ee6ea80062a660ea92013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001641d0660126eb0c13cc1d8dd5004002c1a501941a60d3069834a0f6307830753754003153307349013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001641c8609a60e86ea8c138c1d0dd5000c54cc1c92401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641c515330724914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641c460ec60e66ea80062a660e292013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641c06600a6eb0c1d4c1c8dd50020014c010012600c00c9112cc004c13c02e33001375860e860e26ea8072444b300130543073375400713259800800c00a264b3001001801c00e00713259800983d801c01600883c0dd6800c00d07b183c000a0ec3074375400700141c5222225980099b87300600530060048acc004c03400e266e24006600200b003a40012223259800982d183c9baa001899912cc004c184c1ecdd5000c4c96600200319800800c56600266ebcc07cc1f4dd5001984000983e9baa0078acc004cdd7982b983e9baa001308001307d3754007132598009831983e9baa001899192cc004cdc39bad308301002375a60b46100026ea801a2b30013370e6eb4c20c04004dd6982c9840009baa0068acc004cdd7984180984200800980e9840009baa006899b8000898009bab305a308001375460b46100026ea802a6eb8c20c040326eb8c20c04c21004031014454cc1f92413665787065637420726573657276655f6173736574203d3d206d61746368696e675f726571756573742e726573657276655f6173736574001641f5153307e49126657870656374207969656c64203d3d206d61746368696e675f726571756573742e7969656c64001641f5153307e4912b657870656374207072696e636970616c203d3d206d61746368696e675f726571756573742e616d6f756e74001641f461060200260fc6ea80062a660f8921184578706563746564204f4465706f73697420616374696f6e001641ec60ac60fa6ea80060ec83d20ea83d20e880da0e907483a41d108201183f983e1baa00183920f2307d307a375400260a660f46ea8c150c1e8dd500241a107719806003801203e831a0e683120e691111119192cc004cdc380080244c8c8c96600266e1ccdc09bad307f307c375460fe0046eb4c1fcc1f0dd5183f80180244c9660033001002a5191112cc0040062b30013371e008911008a5189981000299841809ba90043308301375200697ae041f914a083f101d44cdc4803cc004dd61829983e9baa00ca400122323259800980e000c4cdc000199b83337040026eb4c16cc20404dd50021bad305a3081013754009100341f930010059bae3083010019bae30830130840100140506eb0c20804c1fcdd5001203283720f43301d375860a460f86ea802c8dd6184000983e9baa00183720f2375660fc60fe00260fc00330010079bae307c30793754603e60f26ea802200d005402d1533077490123657870656374206d696e745f616d6f756e74203d3d2065787065637465645f6d696e74001641d8b3001305830090018a4001159800800c19e264b3001307d0028992cc004cdc79bae307900248810455534472008800c1a90771bad307900183420f4307b00141e483a8cc06cdd5980a183b9baa005375c60a260ee6ea8c074c1dcdd50034c1d0c1c4dd50204c12cc1c4dd5020a4444446644b300159800980a0014528c6600260b20034a14a283b107644c96600260b460f26ea80062646644646644b30013060307f37540031325980099b87337026eb4c210040040180122b30013370e6eb4c21004c21404004dd6984200984280803c56600266e2520000098acc0066002660526eb0c21004c20404dd50329bae305a3081013754604e6102026ea802e021375860b66102026ea8032661060260b66102026ea8c09cc20404dd50059984180a61054455534472004bd7052000403915980099b890033233001001375860b66104026ea8198896600200314800226644b30013375e611002610a026ea8008c22004c22404c22404c22404c22404c22404c22404c22404c22404c22404c22404c21404dd5007c4cdc0000cc004dd5982f9842809baa0029bae305f30850137546056610a026ea803e910104555344720040651001420804610c0200266004004610e0200284200a3300100b832cdd6982d1840809baa00c9bad3023308101375401900999b8000a0094035153307f49012b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001641f9153307f4919f6578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202020757364725f61737365742c0a2020202020202020302c0a20202020202029001641f9159800cc004cc0a4dd61842009840809baa065375c60b46102026ea8c09cc20404dd5005c0426eb0c16cc20404dd50064cc20c04c16cc20404dd518139840809baa00b33083014c1054455534472004bd704c16000d00e4660020170659bad305a3081013754019375a60466102026ea803201300a4035153307f491b36578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a20202020202029001641f883f22a660fe9213a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265001641f9153307f4913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001641f865300133014001375a6108026102026ea800a6eb8c16cc20404dd518139840809baa00b9bae30233081013754604e6102026ea802d2225980098321841809baa0038992cc004cdd79844009842809baa308801308501375400260b46610e026ea40092f5c115980098324c004dd5982f9842809baa00180152210d7374616b696e675f7661756c740040651325980098359842809baa0018992cc004006330010018acc004cdd798149843809baa0034c103d87a8000899844809ba898009bab30613087013754007005a441045553447200406c6611202611402610e026ea8004cc2240400d2f5c107c4210050810140550810184080c2040610202846008c22404c21804dd5000c54cc2100524012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d0016420c0460bc610a026ea80062a661060292014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001642080515330830149141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016420804610e026108026ea800e2a661040292013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f696478290016420404375860b26100026ea81922a660fc92013565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f696478001641f466e04018004c20404c20804c20804c20804c20804c20804c1f8dd5004acc004c060006266e10cdc1002801000c5200041e86eb4c1f8004dd6983f183d9baa307e980082fcdd7183f183d9baa3021307b375400b375a60a860f66ea801a6eb4c074c1ecdd5003201a329800998070009bad307e307b3754005375c60aa60f66ea8c084c1ecdd5002cdd7180e983d9baa3021307b375400a9112cc004c178c1f4dd5001c4c96600266ebcc20804c1fcdd5184100983f9baa3059307f375400260a866102026ea40092f5c1159800982f4c004dd5982c983f9baa3059307f3754003002a4410d7374616b696e675f7661756c7400404d132598009832983f9baa0018992cc00400633001001899841809ba898009bab305b308101375460b66102026ea800e00b489045553447200405466106026108026102026ea8004cc20c0400d2f5c107b403d07b83dc1ee0f6843008c20c04c20004dd5000c1d907d182c183f9baa3059307f3754003153307d4901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641f1153307d4914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641f061020260fc6ea800e2a660f892013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641ec375860fa60f46ea817a2a660f092013365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f696478001641dc602c60f26ea80122a660ee92012e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001641d930010069bac307a3077375400523371290001bad3052307837540028082600200d480024466e00004dd69829183c9baa002404c8acc004c15802e33001375860e860e26ea8072444653001001802400d0011112cc00400a2b30010018a518a5041e1159800800c52845660026600860f40046eb4c1e800633001003983d8014c1ec005003452820e841e083c244b30010018a40011301a33002002307700141d1223370666e08008dd6982618399baa001375a609a60e66ea800660e860e26ea8102609660e26ea8105222222325980099914c004c8cc00400400c896600200314a115980099baf307f307c375460fe60f86ea8c158c1f0dd5183f80098289983f1ba90034bd704528c4cc008008c2000400507920faa50a5141dc6eb0c1ecc1e0dd502e1bae301a30783754603c60f06ea800a2b300133225980099b87300a002300a0098acc004c04400633001002800c88c96600260ba60f86ea800626464b3001305d307e37540031325980099b87375a6106020026eb4c168c20004dd5001c4cdd7984180984200800980e9840009baa0038a5041f460fe6ea8006294107c182b983f1baa32598009832183f1baa0018992cc004006330010018acc004cdd798111840009baa003308301308001375400d15980099baf305a30800137540026106026100026ea800e200307941f507841f5077407907783bc1de0ee842808c20804c1fcdd5000c1d507c182b983f1baa3058307e375400861000260fa6ea80060d683d0cc03c02c005008419d0774199077198101bac307b307837540b86eb8c144c1e0dd5180f183c1baa002375860a460f06ea800e2b300198009bac3051307837540b9375860f660f06ea800e6eb0c138c1e0dd50012444b30013370e6008004601601519800805400a4464b3001305e307d375400319800984080983f1baa0019bac301b307e3754007323305000523375e6106026100026ea8004dd38011bac301b307e37540069112cc004c184c20004dd5000c56600266ebcc21004c20404dd50019842009840809baa308401308101375400d15980099baf305a308101375400660b66102026ea8c21004c20404dd500344cdc3cc004dd5982d9840809baa0039bae3084010029bae30840130850100240546601a64b300133710002900044c164006200283f8dd6982d9840809baa006308401308101375400314a083f2294107e454cc1fd24015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001641f88a9983e2493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f69647829001641ec6602000a002804a2a660f292013b657870656374206c6973742e6c656e677468286f75747075745f696e646963657329203d3d206c6973742e6c656e67746828726571756573747329001641e08982c4c006600200f375860f660f06ea800e4b30013014375a60a660f26ea8006260b26eb4c148c1e4dd5000c52820ec40453301c3756602a60f06ea8170dd71829183c1baa301e30783754005980082e4dd7183d983c1baa301e30783754005375a60a260f06ea800e6eb4c068c1e0dd5001a0149980c9bac304e3078375400446eb0c1f0c1e4dd5000a44446530013080010019bab308001308101001984000801d6600260ba601c0091480022b300100483644c96600261040200b1325980099b8f375c60fc0049110455534472008800c1bd07c1bad307e001836a0fe30800100441f883d1222259800cc00400e9464444b30010018acc004cdc78022441008a5189981200519843809ba90043308701375200697ae042080514a0841009021456600266e1ccdc09bad30840130810137540086eb4c21004c20404dd5001000c4c96600266e1e60026eb0c160c20804dd5006520009119912cc006600260cc0034a14a284180a264b3001337126602600200b30010099bae308a010039bae308a01308b01003406d1337000080031533085014912d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642100466e080040162006841808dd61843809842009baa00232980080a52000912cc004cdd798121843809baa002374e0071337000026eb4c184c21c04dd5001440050840120423758610e026108026ea800901e19b8100200a8801454cc200052413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c7461001641fcb3001301c0098a400314800907e41cd07e41c907e0c2000400915330764901a26578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641d51533076491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001641d5153307649142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c7429001641d460080088a5041b8837044b300133710002900045300103d87a8000899802001000a0d82264b30010018204102264b3001001820c4c966002003042821410a0851332259800800c112264b30010018acc004c17c00a264b3001303c305b375400513259800800c11e264b30010018992cc00400609313259800800c4c96600200304b8992cc00400609904c8264132264b300130670038acc004c10cc188dd500344c96600200304e8992cc00400609f04f827c13e26644b3001001828c4c966002003052829414a0a5132598009836801c4c966002609400313259800800c156264b300100182b415a0ad0568992cc004c1c400e02505741b86eb80050711837000a0d8306a37540171598009824800c56600260d46ea802e01f05441ad054419c8338c1a0dd5005414d06a1bae00141b460d40028340dd7000983480120d43067001419460c66ea801a09a830209a8320dd7000a0ce3064001418860c800504a825412a0948328c1880050601831001412209104882420c63060001417860b86ea800a08c82c84c01cc17c02208a82e208b045822c115060182e800a0b6375c00260b800482e8c1680050581bac001820410105b182c00120ac81ea03c81ea03c8992cc00400607d03e81f44c8c00cc164010dd6800c0f9059182b00120a88992cc00400607903c81e44c8c00cc15c010dd6800c0f1057182a00120a481ca0a081cc0e6073039415060a20028278c14400a06f03781bc0dd0521827800a09a375a002609c005034413c60980028250dd6800982580140c504c1824800a08e3758002609000502e8172092304600141106eb0004c11400a05702b411860860028208c0fcdd500340a503c40a50401bac00181440a10431820000a07c3040002813409a04d0264104607c00281e0c0f800a049024812409103f181e000a0743038375400f02240d4444b300130193038375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c4c9660020030098992cc00400601500a80544c966002608e00719800804c6600200900c805a01e805a022805a088375a00300a411c60880028210c11000a01100880440210451821000a080375a00260820050054108607e00281e8c0fc00a007003801c00d040181e800a0763039375400700140d8444b300130193038375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c12800e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c13c00e02901341306eb800504f1826000a094375c00260960048260c1240050474039012403901440390471bac001806c03504a1823800a08a3047002805c02e01700b4120608a0028218dd6800982200140210451821000a080375a00260820050054108607e00281e8c0fc00a007003801c00d040181e800a0763039375400700140d880e407203901c40dc664464b30013014303337540031303432337606070002607060720026eb0c0dcc0d0dd5000c54cc0c924018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c02ccc0e0dd480225eb812f5c11301833038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c3756600e60626ea8054dd7181a18189baa0019800912cc004006297ae089981a1818981a80099801001181b000a0669112cc004cdc48012400110018cc00400e66e10009201499b8b3370066e14009201448180005003206091111919800800802912cc004006200b13259800800c4cc010c0e800801a26600a60740046600600600281c0c0e80050374dd6180518181baa01448888c8c8c8cc88c966002003159800980d181c9baa0018992cc00400604d13259800800c09e04f027813c4cc89660020030298992cc0040062b300130430028acc004c07cc0f8dd5000c4c96600200302b8992cc004006264b3001001816c4c96600200313259800800c0be264b30010018992cc00400606313259800800c4c9660020030338992cc004006264b300100181ac4c96600200313259800800c0de264b30010018992cc00400607313259800800c4c96600200303b8992cc004006264b300100181ec4c96600200303e81f44cc89660020030408992cc0040062b3001305a0028cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c0d8c154dd500344c9660020030428992cc004006087043821c10e26644b3001001822c4c966002003046823411a08d1332259800800c122264b3001001824c126093049899912cc00400609713259800800c13209904c82644c96600260cc00713304300f225980080146600201f102b827a06e8992cc0040062b300130453064375400313259800800c146264b3001001829414a26644b300100182a44c96600200305582ac15626644b300100182bc4c96600200305882c4162264b300130720038acc00401e0b313259800800c16a0b505a82d44cc896600200305c8992cc0040060bb05d82ec176264b3001307700389808183b808c1790741bae00141dc60e80028390dd7000983980420e8307100741bd05941bc6eb40060b08390c1bc00506d1bad001306e00282aa0de306c00141a86eb0004c1ac00a0a505241b060d20028338c194dd5000c14106241420a105082820d43067002419504d418c6eb80050661831800a0c2375c00260c40048318c18000505e1bae001305f002418060ba00282d8dd7000982e00120ba305a001416060ac6ea801a082829a0828142082814208281420828142082814208281420828142082814208282ba083041820c10505b182c000a0ac375800260ae00503e81f20b03055001414c60aa00503c81e40f207882b0c14c005051182980140ea07503a81d20a83051001413c60a200503881c40e20708290c13c00504d182780140da06d03681b20a0304d001412c609a00503481a40d20688270c12c005049182580140ca06503281920983049001411c609200503081840c20608250c11c005045182380140ba05d02e81720903045001410c608a00502c81640b20588230c10c005041181f9baa0018152078815208081540aa05502a4110608200281f8dd700098200012082303e00140f060746ea800604a81ba04b025812c09503f29981b99b964912467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea40d522010013259800980d181c9baa00189929981c99b9649113666f756e642070726f7879207574786f3a3a2000373266008002910100132598009810981d9baa0018992cc0040062b3001301d303c375400313259800800c0e6264b300100181d40ea07503a899912cc0040060791325980098230014401a07a8218c1100050421bae00130430024110608200281f8c0f4dd5000c0e103a40e207103881c2084303f303c3754003153303a49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640e4602860766ea8c054c0ecdd5000981e981d1baa0018a9981c24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640dc6601400c4646600200260066eacc054c0ecdd5180a981d9baa0022259800800c528456600266e3cdd7181f80081c4528c4cc008008c100005039207a300100130070072223259800801c4c8c8cc88cc024008cdc524501280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100c207e5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81c90391bac303c002375a60740026466ec0dd4181d0009ba7303b001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a607e003337149101023a200098008054c10000600a805100a182100144ca6002015303f00199b8a489023a200098008054c100006600e66008008004805100a18210012080304200140fc66e29220102207d0000340f06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900920783758007133005375a0060051323371491102682700329800800cc050dc68014cdc52450127000044004444b30013371000490004400626466453001006980c802ccdc599b800025980099b88002480522903045206e40f866e2ccdc0000acc004cdc4000a402914818229037207c004401866e0c00520203370c002901019b8e00400240ec6eb800d03f1b8a4881022c20002232330010010032259800980c800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002301000189980299b8400148050cdc599b803370a002900a240c000681b10361801801844464b300130100018992cc00400600713259800800c01200900480244c966002606e007006802a068375c00281b8c0d000503218181baa0048acc004c03c006264b3001001801c4c966002003004802401200913259800981b801c01a00a81a0dd7000a06e303400140c860606ea8012004816902d18171baa00345901a0c070004c05cdd500ec5268a9980aa491856616c696461746f722072657475726e65642066616c7365001365640501" + : + "5921fd010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a3754007374a9000488c8cc00400400c88cc00c004c00800a6e1d20009b874800a6e1d20069b87480226e1d200a9b87480324601c601e0032300e300f300f00191807180798079807980798079807980798079807800cdd2a400491111111111114c00488c8cc00400400c896600200314c0103d87a80008992cc004c010006260226603c00297ae089980180198100012034301e001407122232598009807000c4c8c96600260420050048b203c375c603e00260366ea800e2b3001300d0018992cc004c0800062660206eb0c07c00489660020050058cc00401e6042005130013022002401c80fa2c80e8c06cdd5001c5660026026003132598009810000c4cc040dd6180f800912cc00400a00b19800803cc08400a260026044004803901f45901d180d9baa0038acc004c0300062646644b300130220018998091bac30210012259800801401e33001009981180144c004c09000900920428b203e375a603e002604000260366ea800e2b3001300b001899192cc004c08400a0091640786eb4c07c004c06cdd5001c56600260140031323259800981080140122c80f0dd6980f800980d9baa0038acc004c02400626464b3001302100280245901e1bae301f001301b375400716406480c90192032406480c9019180c9baa00291192cc004c03400626464b3001302000280245901d1bae301e001301a37540071598009806000c4c8c96600260400050048b203a375c603c00260346ea800e2c80c1018180c1baa002912cc004c030c060dd500144c8c8c966002604000513232598009808800c566002603c6ea800a00d16407d1598009808000c4c8c96600260480050088b2042375a6044002603c6ea800a2b300130160018acc004c078dd5001401a2c80fa2c80e101c2038301c3754002603e00716407464b3001301c0018acc004cdc4a400860360031689807180d800a0348b203a3754603c002603c00260326ea800a2c80ba44b3001300c30183754005132323322598009810801c0162c80f0dd6980f0009bae301e002301e0013019375400516405d2232598009806800c4c8c96600260400050048b203a375a603c00260346ea800e2b3001300c0018acc004c068dd5001c00a2c80da2c80c1018180c1baa0024888888cc88cc8a6002664464b30013017302337540031302432337606050002605060520026eb0c09cc090dd5000c590221919800800801912cc004006298103d87a80008992cc004cdd7981280099ba548010cc0a0c040cc0a0dd480225eb812f5c11301b33028374e66050604a00266050604c00297ae04bd7044cc00c00cc0a80090241814000a04c3756601860426ea8060dd7181218109baa002912cc004c058c088dd500144c8c8c8ca60026eb4c0a80066eb4c0a800e60540049112cc004c0b8012266014605a00e26601e0020111640ac302a00130290013028001302337540051640852259800980b18111baa002899191919194c004dd61815800cdd698158024dd69815801cc0ac0092222598009818002c4cc030c0bc0244cc0440044c8cc8966002606600700d8b2060375c60600026eb8c0c0014c0c00122c8168605600260540026052002605000260466ea800a2c810922259800980b98119baa003899191919912cc004c0b400e264b3001301d30293754003132323232323298009819800cdd61819802cdd698198024dd69819801cc0cc0092222259800981c80344cc0a4dd6181c005912cc00400a26605600c44b300100289980e80289980e8048992cc004c0b4c0e4dd500944c8c8c9660026082005132332259800981980144c966002608a0031330353758608800244b300100280244cc080c1180084c004c11c00904445904218201baa0038acc004c0c800a264b3001304500189981a9bac304400122598008014012266040608c00426002608e00482222c8210c100dd5001c5660026070005132598009822800c4cc0d4dd61822000912cc00400a0091330203046002130013047002411116410860806ea800e2b300130310028992cc004c11400626606a6eb0c1100048966002005004899810182300109800982380120888b208430403754007159800981800144c966002608a0031330353758608800244b300100280244cc084c1180084c004c11c00904445904218201baa0038acc004c0bc00a264b3001304500189981a9bac304400122598008014012266042608c00426002608e00482222c8210c100dd5001c566002605c005132598009822800c4cc0d4dd61822000912cc00400a0091330203046002130013047002411116410860806ea800e2b30013370e900700144c966002608a0031330353758608800244b300100280244cc080c1180084c004c11c00904445904218201baa0038b207c40f881f103e207c40f881f103e181e9baa001132598009819000c4c966002608800313302530430010078b2082303f37540071598009818800c4c966002608800313259800981a18201baa00189919192cc004c12000a266054608e006266054002017164114608c002608c00260826ea80062c81f8c10c0062c8208c0fcdd5001c5903d207a303d375400460800071640f8607e002607e00260746ea804a2c81c04cc0b4048896600200519800981f181d9baa3028303b37540352302e303b3754607e646600200200444b30010018a5eb8503d87a80008101800044c8cc8966003300130333040375460880074a14a281fa26608730014a14c103d87a8000a60103d879800040fc660866e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11800400e2946266004004608e002820904444cc10e600294298103d87a8000a60103d879800040fc660866e9c0092f5c11330439800a51a60103d87a8000a60103d879800040fc660866e9ccc10cdd400080125eb8103f207e3758608460860026eb4c108008cc008008c10800503f48888ca6002003005802400d00111112cc00400e2b30010028800c590444660020093047003982380166002608c007375a608c00500140148021044488c8cc00400400c896600200314bd7044cc896600266ebcc110c104dd5182218209baa302e304137540046056660866ea40152f5c113304300233004004001899802002000a07e3042001304300141013700900148c0fcc100c100c100c100c100c100c100c100006444b30010028a6103d87a80008acc004c0c40062606666080608200497ae08cc00400e6084005337000029000a00640f081fa4464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208289980280298238022082375c60800026eacc104004c10c0050410a5eb7bdb18244b30013030303c375400513232598009821801400e2c8200dd69820800981e9baa0028b20769181f982018201820000cdc0a40012232330010010032259800800c52f5c1133041374e600660840026600400460860028202444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c1140066eb4c1180066600600660940048048c1200050461bab3043003375c608000266006006608a0046086002820a44646600200200644b30010018a508acc004cdd798210009ba70038a518998010011821800a07a410122598009818181e1baa0028991919194c004c110006608800730440024889660026090009133027304700713302400213259800981c000c4c8cc89660026098003132323322598009828001c0422c8268dd718268009bae304d002304d001375860960031641246eb4c124004c128004c114dd50014566002606e0031323322598009826000c4c8c8cc896600260a00070108b209a375c609a0026eb8c134008c134004dd61825800c590491bad3049001304a00130453754005159800981e800c4c8ca60026eb4c1280066096003375a60940049112cc004c13800a264646644b3001305200380945904f1bae304f001375c609e004609e0026eb0c13400a2c82586094002608a6ea800a2b3001303600189919912cc004c130006264646644b3001305000380845904d1bae304d001375c609a004609a0026eb0c12c0062c8248dd69824800982500098229baa0028acc004c0d400626464b3001304b002805c590481bad304900130453754005159800981a000c4c8c8cc8966002609a00700d8b2094375a60940026eb4c128008c128004c114dd50014566002606600313232598009825801402e2c8240dd6982480098229baa0028acc004cdc3a401c00313232598009825801402e2c8240dd6982480098229baa0028b2086410c82190432086410c821904318219baa0018b208a182200098218009821000981e9baa0028b20769181f9820182018201820000c888ca6002003004801a00222259800801440063300100398228014cc010c11000800500320849b8848001222222222222222222980098261baa0129112cc004c05000a33001003801520009112cc004c01000e266e00004dd6982018299baa0038b20a2404d1641392259800800c5200089808198010011829800a0a091809000c8966002003148002260206600400460a600282826018019222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01905444cc014014c1680110541bae3053001375a60a800260ac00282a0cc03c01000c5200048888888ca6002444464b3001304d305937540031325980099baf305e305b375460bc60b66ea8c120c16cdd500098229982e9ba90054bd704566002609b30013756609060b66ea8c120c16cdd5000c01691108747265617375727900402113259800982a182d9baa0018991980d0008992cc004c144c174dd5000c4c96600266ebcc188c17cdd51831182f9baa001304933061375201297ae08acc004c14660026eacc130c17cdd5000c02691108747265617375727900403113259800982c182f9baa0018991980f0008acc004cdd7980e98309baa0034c0103d87a800089983180299831800998319ba6329800800cdd5982798311baa00499198008009bab30503063375460a060c66ea8024896600200314bd6f7b63044c8cc19ccdd818320009ba63233001001375660cc00444b30010018a5eb7bdb182264660d466ec0c19c004dd418119bad306800133003003306c002306a00141a06600600660d200460ce00283290011112cc00400a2003132332298008034c1ac016646600200200a44b300100189983599bb037520086e9800d2f5bded8c113298009bae30690019bab306a00198370012444b30013372001000713306f337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820de880144cc1c0cdd81ba9009374c0020048360ca6002003008801a002222598008014400626466453001006983b802cc8cc0040040148966002003133077337606ea4010dd4001a5eb7bdb1822653001375c60ea003375a60ec003307a00248896600266e4002000e2660f666ec0dd48041ba80070058acc004cdc7804001c4c96600260da003100289983e19bb037520126ea000400907819b8000700289983d99bb037520066ea0008cc01801800507720ee183c000a0ec40186eb8c1c0004dd69838800983980120e289983799bb037520066e98008cc01801800506b20d61836000a0d440186eb8c190004dd59832800983380120ca4bd7045905f183198301baa0018b20bc304b305f375400316417516417460c260bc6ea80062c82e0cc024dd61824982e9baa008005305f305c3754003164168608e60b66ea8c120c16cdd5000c59059459059182e982d1baa0018b20b033005375860b860b26ea801000a600800930060064889660026092017198009bac305b3058375403b22598009826982c9baa002899192cc004c18000a0071641746eb4c178004c168dd50014590584888896600266e1cc018014c0180122b3001300d003899b890019800802c00e90004888c96600260a860c06ea800626644b3001305b306237540031323301b00115980099baf30203064375400660ce60c86ea801e2b30013375e60a260c86ea8004c19cc190dd5001c4c96600260ba60c86ea800626464b30013370e6eb4c1a8008dd6982a18339baa0068acc004cdc39bad306a001375a60a660ce6ea801a2b30013375e60d460d6002603a60ce6ea801a266e0002260026eacc150c19cdd5182a18339baa00a9bae306a00c9bae306a306b00c405116419516419516419460d400260ca6ea80062c8318c140c190dd5000c59062459062183318319baa0018b20c2306430613754002609a60c26ea8c138c184dd500245905f1980600380120408b20b68b20b691111119192cc004cdc380080244c8c8c96600266e1ccdc09bad30663063375460cc0046eb4c198c18cdd5183300180244c9660033001002a5191112cc0040062b30013371e008911008a51899810002998351ba90043306a375200697ae0419914a0833101d44cdc4803cc004dd6182798321baa00ca400122323259800980e000c4cdc000199b83337040026eb4c154c1a0dd50021bad3054306837540091003419930010059bae306a0019bae306a306b00140506eb0c1a4c198dd500120328b20c43301d3758609c60c66ea802c8dd6183398321baa0018b20c2375660ca60cc00260ca00330010079bae306330603754604060c06ea802200d005402d164178b3001305230090018a40011598009831800c4c96600266e3cdd7182f800a44104555344720089bad30600018b20bc30620018b20c04174660386eacc050c178dd50029bae304b305e3754603c60bc6ea801a60b660b06ea80de608a60b06ea80e5222222332259800acc004c05000a2946330013053001a50a51417882f2264b3001305430603754003132332232332259800982d18331baa0018992cc004cdc399b81375a60d600200c00915980099b87375a60d660d80026eb4c1acc1b001e2b3001337129000004c56600330013302a375860d660d06ea817cdd7182a18341baa3028306837540170109bac3055306837540193306a305530683754605060d06ea802ccc1a9301054455534472004bd7052000403915980099b890033233001001375860aa60d26ea8180896600200314800226644b30013375e60de60d86ea8008c1bcc1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1c0c1b0dd5007c4cdc0000cc004dd5982c98361baa0029bae3059306c3754605860d86ea803e91010455534472004065100141a860da0026600400460dc002835a3300100b82fcdd6982a18341baa00c9bad30243068375401900999b8000a0094035164199164199159800cc004cc0a8dd6183598341baa05f375c60a860d06ea8c0a0c1a0dd5005c0426eb0c154c1a0dd50064cc1a8c154c1a0dd5181418341baa00b3306a4c01054455534472004bd704c08c00d00e46600201705f9bad305430683754019375a604860d06ea803201300a403516419883322c83322c8330ca6002660280026eb4c1acc1a0dd50014dd7182a98341baa302830683754017375c604860d06ea8c0a0c1a0dd5005a444b3001305e306a37540071325980099baf306f306c375460de60d86ea8004c158cc1b8dd480125eb822b3001305e98009bab3059306c3754003002a4410d7374616b696e675f7661756c7400406513259800983298361baa0018991980a8008acc004cdd7981518371baa0034c0103d87a80008998381ba898009bab305b306e3754007005a441045553447200406c660e060e260dc6ea8004cc1c000d2f5c11641b060e060da6ea80062c8358c160c1b0dd5000c5906a45906a183718359baa0038b20d21bac3053306737540bd16419466e04018004c1a0c1a4c1a4c1a4c1a4c1a4c194dd5004acc004c060006266e10cdc1002801000c5200041886eb4c194004dd6983298311baa3065980082ccdd7183298311baa30223062375400b375a609c60c46ea801a6eb4c078c188dd5003201a329800998070009bad306530623754005375c609e60c46ea8c088c188dd5002cdd7180f18311baa30223062375400a9112cc004c160c190dd5001c4c96600266ebcc1a4c198dd5183498331baa30533066375400260a0660d06ea40092f5c1159800982c4c004dd5982998331baa305330663754003002a4410d7374616b696e675f7661756c7400404d13259800982f98331baa001899198078008998351ba898009bab30553068375460aa60d06ea800e00b48810455534472004054660d460d660d06ea8004cc1a800d2f5c060d460ce6ea80062c8328c148c198dd5182998331baa0018b20c88b20c830683065375400716418c375860c860c26ea81622c82f8c058c180dd500245905e4c00401a6eb0c184c178dd500148cdc4a40006eb4c130c17cdd5000a0209800803520009119b80001375a609860c06ea800901322b3001305000b8cc004dd6182d982c1baa01d911194c0040060090034004444b30010028acc0040062946294105f456600200314a11598009980218308011bad30610018cc00400e60c40053062001400d14a082e105f20be912cc0040062900044c06ccc008008c17800505b488cdc199b82002375a608c60b46ea8004dd69823982d1baa001982d982c1baa0379822982c1baa0394888888c9660026645300132330010010032259800800c528456600266ebcc198c18cdd5183318319baa30503063375460cc002609a660ca6ea400d2f5c114a313300200230670014184832294294505f1bac3062305f37540ac6eb8c06cc17cdd5180f982f9baa0028acc004cc896600266e1cc028008c0280262b300130110018cc00400a003223259800982b98319baa001899192cc004c15cc194dd5000c4c96600266e1cdd698350009bad30543067375400713375e60d460d6002603a60ce6ea800e294106518331baa0018a50419060a260ca6ea8c96600260bc60ca6ea80062646603c0022b30013375e604660ce6ea800cc1a8c19cdd5003456600266ebcc150c19cdd5000983518339baa0038800c59065459065183498331baa0018b20c830513065375460a460ca6ea8010c19cc190dd5000c5906219807805800a0108b20be8b20be33021375860c460be6ea8158dd71825982f9baa301f305f37540046eb0c130c17cdd5001c56600330013758609660be6ea815a6eb0c188c17cdd5001cdd61825182f9baa00248896600266e1cc010008c02c02a3300100a801488c96600260b060c86ea8006330013068306537540033758603660ca6ea800e646609e00a466ebcc1a8c19cdd50009ba70023758603660ca6ea800d22259800982d98339baa0018acc004cdd7983598341baa003306b3068375460d660d06ea801a2b30013375e60a860d06ea800cc154c1a0dd5183598341baa006899b8798009bab305530683754007375c60d6005375c60d660d800480a8cc034c96600266e20005200089812000c40050671bad30553068375400c60d660d06ea80062941066452820cc8b20cc45906319808002800a0128b20c044c14a600330010079bac3062305f3754007259800980a1bad304d3060375400313053375a609860c06ea8006294105e20229980e9bab3015305f37540ac6eb8c130c17cdd5180f982f9baa002cc00415a6eb8c188c17cdd5180f982f9baa0029bad304b305f3754007375a603660be6ea800d00a4cc064dd61825182f9baa0022375860c660c06ea8005222232332259800cc00400a9464444b30010018acc004cdc78022441008a51899811004198361ba90043306c375200697ae041a114a0834101f456600266e1ccdc09bad30693066375460d20066eb4c1a4c198dd51834802800c4c96600266e1e60026eb0c148c19cdd5005520009119912cc006600260bc0034a14a2834a264b3001337126602200200b30010089bae306f0039bae306f307000340651337000080031641a866e0800401620068348dd6183618349baa00232980080952000912cc004cdd7981118361baa002374e0071337000026eb4c164c1b0dd50014400506a203e375860d860d26ea800901c19b8100200888014590652cc004c06801e29000c5200241911641911641906eacc19cc1a00056600260ae601c0091480022b300130680048992cc004cdc79bae306400148904555344720089bad30650018b20c630670048b20ca418860ce0048b20ba8b20ba8b20ba3004004452820ac4158225980099b88001480022980103d87a8000899802001000a0a822646644b30013042001899912cc004c0ccc0fcdd500144c8c8c8cc8966002609200713259800981c98229baa0018991919912cc004c13800e264b3001303e001899192cc004c14400a01d1641386eb8c13c004c12cdd5003c566002607a00315980098259baa00780645904c45904920923049375400d16412c6eb8c12c004dd71825801182580098231baa0018b208830480058b208c375c608c002608c004608c002608a00260806ea800a2c81f0c1040044c010c1080162c81f8dd7181f80098200009bac303e00240f11323002303e003375a607800481d2264600460780066eb4c0e80090384590360c0cc004c0c8004c0c4004c0c0004c0bc004c0a8dd5000c590281816002c5902a1bac302a001302a002302a00130290013024375400716408832323259800980a98109baa00189919912cc004c0a4006264b3001301930253754003132323232323232323232329800981a000cc0d002a60680133034008981a003cc0d001a606800b3034004981a001cdd6181a00124444444444b3001303f00b89980f181f00a89980f00489980f00409980f00389980f00309980f00289980f00209980f0018acc004c0b8c0e8dd500144c8c8c8ca60026eb8c1080066eb8c1080126eb8c10800e6eb8c1080092222598009823802c4cc0dc024896600200513302701410248992cc004c0e4c114dd5000c4c8c8c8cc8966002609e007132323322598009829801c4c02cc14c0322c8280dd718280009bae305000230500013758609c00b1641306eb4c130004dd698260011826000982580098231baa0018b208830480024119164110304200130410013040001303b37540051640e51640f030340013033001303200130310013030001302f001302e001302d001302c001302b0013026375400316409060500031640986eb8c098004c09c004c088dd5000c59020192cc004c054c084dd5000c4c966002603660446ea8006264b3001301730233754003132323322598009816001c40162c8148c0a4004dd71814801181480098121baa0018b2044302630233754003164084601c60446ea8c03cc088dd5181298111baa0018b20403300a3758601c60426ea80608c8cc004004c00cdd5980818119baa30103023375400444b30010018a508acc004cdc79bae30270010218a518998010011814000a0444094600200244b30010018a5eb822660466040604800266004004604a00281108966002602860406ea800a2646464b3001302800289980318138018992cc004c0600062b3001302537540050058b204c8acc004c05c00626464b3001302b002803c590281bae302900130253754005159800980e800c4c8c96600260560050078b205030290013025375400516408c811902318119baa0018b204a302600130260013021375400516407c600a00a44b30013012301e3754005132323259800981300144cc024c09400c4c966002602c003132598009814000c4c8c9660026032003132598009815800c4cc038c0a80040262c8140c098dd500145660026030003132323298009bad302c0019bad302c0039bad302c002488966002606000900e8b205a1816000981580098131baa0028b2048409060486ea8004c09c0062c8128c08cdd50014566002602a00315980098119baa002802c5902445902120423021375400316408c60480026048002603e6ea800a2c80e88b2010180480098021baa0098a4d13656400801", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolMintProtocolMintWithdraw { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5942e3010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a493b657870656374206c6973742e6c656e677468286f75747075745f696e646963657329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a493865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00168a99801a4938657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a493e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f6964782900168a99801a49376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f72657175657374732900168a99801a4939657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a49856578706563740a2020202076616c69646174655f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a202020202020757364725f61737365742c0a202020202900168a99801a4942657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a49286578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d20646174756d00168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d657200164888888888888888888896600264653001301e001980f180f800cdc3a4009301e00248889660026004603c6ea800e330013022301f37540072302330243024001918119812000cdd2a4001223233001001003223300300130020029b87480026e1d20029b874801a6e1d20089b874802a6e1d200c9b80480066e05200091811981218121812181218121812181218121812000cdd2a4004911111111111111194c00488966002601c60626ea800e264b300100180144c96600200313259800800c012264b30010018acc004c0e800a330010038992cc004c04c006264b3001001803c4c966002003159800981e80144c966002602c00313259800800c02a264b30010018acc004c10000a33001001806402d00e402d03d402e01700b805a082303e00140f060746ea800a2b300130150018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c11c00e02701241106eb40060228238c1100050421bad00130430028072088304100140fc6eb4004c10000a0168208c0f800503c181d1baa002804a06e40dc60706ea800601081d2011008804402103e181d800a072303737540051598009809000c566002606e6ea800a00f00640e100640d081a0c0d4dd5000c0150084015037401600b005802a076303800140d86070005003801c00e00681c8c0d800503418191baa003800a05e911194c004006009003400444464b300130120018992cc00400600d13259800800c01e00f007803c4c966002607a0070058042074375c00281e8c0e8005038181b1baa0038acc004c044006264b300100180344c966002003007803c4c966002607a0071330160012259800801401e264b30010018cc00402a003130023040003402900b805c02e0168208c0f800903c402103a1bac001803c01d03d181d000a07030363754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0f400e26602c00244b3001002803c4c966002003198008054006260046080006805201700b805c02d041181f001207880420743758003007803a07a303a00140e0606c6ea800e2b300130100018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009820001c4cc064004896600200500a8992cc0040063300100d800c4c008c10c00d00d403a01d00e8072088304100240fd00b40f46eb000601500a4100607a00281d8dd6800981e001401d03d181d000a070303637540071598009807800c4c9660020030068992cc00400600f007803c4c966002607a0070058042074375a00300740f4607400281c0c0d8dd5001c566002601c00313259800800c01a264b3001001803c01e00f13259800981e801c01601081d0dd6800c01d03d181d000a070303637540071598009806800c4c9660020030068992cc00400600f007803c01e264b3001303d003802c02103a1bae00140f4607400281c0c0d8dd5001c015033206640cc8199033206640cc60686ea800a44646600200200644b30010018a60103d87a80008992cc004c010006260246606c00297ae0899801801981c0012062303600140d091119192cc00400633001222598009809981b1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303f0028cc00400e264b300130180018acc004c0f0dd5001401e00c81ea2b300130170018992cc00400600f13259800800c02201100880444c966002608600700a804a080375c0028218c10000503e181e1baa0028acc004c07c006264b3001001803c4c9660026084005009804207e304000140f860786ea800a00c81c90392072303a3754003005403100540f1005802c01600a8200c0f400503b181e801400e007003801a07c303b00140e4606e6ea800e00281a2444b300130133036375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607800315980099b8948010c0ec00600d13259800982080244c9660026034003159800981f1baa006804c02103f4566002603200313259800800c026264b3001001805402a015132598009822801c0320168210dd6800c0290451821000a080303e375400d1598009810800c566002607c6ea801a01300840fd00840ec81d903b181e1baa005803a07c3017303b00140e500640f46ea800600b005802c015040181e800a076303d002801c00e00700340f8607600281c8c0dcdd5001c0050344889660026026606c6ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d132598009820801c02200e81f0dd6800c019041181f000a078375c002607a00481f0c0ec005039181b9baa003800a068911192cc004c050006264b3001001801c4c9660020030048024012264b3001303f003803401503c1bad001802207e303c00140e860706ea80122b300130130018acc004c0e0dd5002400e00481ca00481a9035181b1baa00348888cc8966002602c60726ea801e264b3001001811c4c96600200313259800800c096264b30010018992cc00400604f13259800800c0a2051132598009822801c566002603a60806ea801a264b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e899912cc00400606113259800800c0c6063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c4c9660020030388992cc0040062b30013055002899817007112cc00400a26606001a44b30010028cc00401e33001005899192cc004c0ccc158dd500d44c9660020030408992cc004006264b300100182144c966002003159800982f80144cc8966002607200313259800800c11a264b3001001823c11e264b3001306400389981e800912cc00400a00f13259800800c66002003130023067003825a054825c12e09704b41a060ca004831a0908308dd6000c11e08e8320c18400505f182e9baa0058acc004c0e0006264b300100182344c966002003047823c4c96600260c800713303d0012259800801401e264b30010018cc0040062600460ce00704b40a904b825c12e0968340c19400906341210611bac001823c11d0641830800a0be305d375400b1598009820000c4c9660020030468992cc00400608f0478992cc004c19000e26607a00244b3001002803c4c96600200319800800c4c008c19c00e096815209704b825c12d068183280120c682420c23758003047823a0c83061001417c60ba6ea80162b300130370018992cc00400608d13259800800c11e08f132598009832001c4cc0f400489660020050078992cc00400633001001898011833801c12d02a412e09704b825a0d03065002418d04841846eb000608f047419060c200282f8c174dd5002c566002606c00313259800800c11a264b3001001823c11e264b3001306400389981e800912cc00400a00f13259800800c66002003130023067003825a056825c12e09704b41a060ca004831a0908308dd6000c11e08e8320c18400505f182e9baa0058acc004c0d4006264b300100182344c966002003047823c4c96600260c800713303d0012259800801401e264b30010018cc0040062600460ce00704b40ad04b825c12e0968340c19400906341210611bac001823c11d0641830800a0be305d375400b159800981a000c4c9660020030468992cc00400608f0478992cc004c19000e26607a00244b3001002803c4c96600200319800800c4c008c19c00e096815209704b825c12d068183280120c682420c23758003047823a0c83061001417c60ba6ea80162b300130080018992cc00400608d13259800800c11e08f132598009832001c4cc0f400489660020050078992cc00400633001001898011833801c12d02a412e09704b825a0d03065002418d04841846eb000608f047419060c200282f8c174dd5002c11505a20b4416882d105a20b4416882d04c966002607000313259800800c116264b30010018acc004c18800a330010018044119028411905f411a08d04682320c63060001417860b86ea800a2b300130370018992cc00400608b13259800800c56600260c4005159800981d182e9baa0018992cc00400608f13259800800c4c9660020030498992cc0040062b300130660028cc00400e33001001806412902d412902d4129063412a09504a82520ce3064001418860c800504882441220908328c188005060182f1baa00182320b682320be823411a08d046418c60c000282f0c170dd5001411105920b2305a375400260b46ea800e08682e2087043821c10d060182e800a0b6305d002820c106083041417860b600282c8c15cdd500d40fd05409981980b112cc00400a33001305b30583754606e60b06ea809645300132330010010032259800800c528456600266ebcc17cc170dd5182f982e1baa303b305c375460be002605e660bc6ea400d2f5c114a31330020023060001416482ea942945057488c8cc00400400c896600200314bd7044cc896600266ebcc184c178dd51830982f1baa303d305e37540046062660c06ea40152f5c113306000233004004001899802002000a0b6305f00130600014175230343058375460b8646600200200444b30010018a5eb84103d87a80008101800044c8cc896600330013039305d375460c20074a14a282da2660c130014a14c103d87a8000a60103d8798000416c660c06e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c18c00400e294626600400460c800282e906144cc182600294298103d87a8000a60103d8798000416c660c06e9c0092f5c11330609800a51a60103d87a8000a60103d8798000416c660c06e9ccc180dd400080125eb8105b20b6375860be60c00026eb4c17c008cc008008c17c00505c48896600200514c103d87a80008acc004c0dc00626072660ba60bc00497ae08cc00400e60be0053031001400c82c105c488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064175133005005306400441746eb8c174004dd5982f0009830000a0bc14bd6f7b6304dc024005222329800800c012006800888966002005159800800c528c52820be8acc00400629422b3001330043061002375a60c200319800801cc18800a60c4002801a294105b20be417d25980099b88001480022605c003100141592305c305d305d305d0019112cc004c0dcc168dd5001c4c9660020030028992cc004006007003801c4c96600260c400700580220be375a003003418860be00282e8c16cdd5001c00505848c170c174c174c174c174006460b860ba60ba60ba60ba60ba60ba60ba60ba003222329800800c01200680088896600200510018cc00400e60c4005330043061002001400c82fa4466e0ccdc10011bad303a305a37540026eb4c0e4c168dd5000cdc424001371e9110455534472009112cc004c0dcc168dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800983380146600200f19800802c4c966002608000313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b3001306e0038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001307300380b40550701bae00141cc60e00028370dd7000983780120e0306d00141ad01041ac6eb000601f00f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981f800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c1b800e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1cc00e02d01541c06eb80050731838000a0dc375c00260de0048380c1b400506b404106b1bac001807c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002608e00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b300130710038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001307600380cc0610731bae00141d860e60028388dd7000983900120e6307000141b901341b86eb000602501241c460dc0028360dd68009836801403d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607c00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b3001306e0038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001307300380b40550701bae00141cc60e00028370dd7000983780120e0306d00141ad01041ac6eb000601f00f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981e800c4c96600200300b8992cc00400601900c80644c96600260d600700e806a0d0375a00300c41ac60d00028330c190dd50024566002607800313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009837001c0460208358dd6800c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607600313259800800c02e264b30010018064032019132598009835801c03a01a8340dd6800c03106b1834000a0cc306437540091598009807800c4c96600200300b8992cc00400601900c80644c96600260d600700e806a0d0375a00300c41ac60d00028330c190dd5002402906120c24184830906120c241848308c188dd5001c02502f402503340250641832800a0c63065002803c01e00f007419860c60028308c18c00a00b005802c0150641830800a0be3061002801c00e007003418860be00282e8c16cdd5001c005058488cc0a40088cdd7982f182d9baa001374e00491111111111111111114c004c1a8dd5009c8896600260260051329800800c0120074800100111112cc00400e2b30010028800c54cc1c1240112657870656374205b5d203d206c6973745f62001641cd159800801454cc1c12411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260ec007307600299912cc004c01c00a266e0000cdd69829983a1baa00283020e23075003375a60ea004802107320e68a9983624812e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e646963657329001641ad300f00f912cc0040062900044c03ccc008008c1c400506e489660020031480022601e6600400460e200283724446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320e2899802802983c00220e2375c60e20026eb4c1c8004c1d0005072198090020018a40012259800800c5200089807998010011838800a0dc91808800c88c96600260a260da6ea8006264b30010018cc0040062b30013375e601c60de6ea800cc1c8c1bcdd5002456600266ebcc138c1bcdd5000983918379baa0038800c18906c418506c418100641820c106083020e83071306e375400305e41ac609a60da6ea8c130c1b4dd50012444444445300130060069802802c896600266e2000520008a6103d87a8000899804801000a0e69801801a4444646644b300130570108cc004dd6183f183d9baa023983f183d9baa048982d183d9baa0494889660026604a6eb0c20404c1f8dd50301bae301d307e3754603460fc6ea8006264b30019800998129bac308201307f37540c26eb8c17cc1fcdd5180d983f9baa0029bac305e307f3754007375860a660fe6ea80092225980099b87300d003300d0078acc004c04000a33001003801488c96600260c26108026ea800626464b3001306330860137540031323298009980f804000cdd618131844809baa0049bad308c0100248896600260d06116026ea800e2b30013371264664466e0cc194cdc019b82001375a60de611e026ea800c008008dd698361846809baa001375a60d8611a026ea8020c23c04c23004dd5001cc004dd598359846009baa306b308c013754015375c611e02005375c611e0261200200480e22b30013370e0026eb4c1acc23004dd5003c4cdd79ba70043029308c01375400f14a084480a294108901454cc228052414365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f61737365742900164224043758611602611802002610e026ea800629410840118331843009baa3301300400130880130850137540030744208046601c012002811a0e083fa0de83f9159800cc004dd6182f983f9baa0618024dd6184100983f9baa0039984080982f183f9baa301b307f37540046610202981054455534472004bd70200a899b879800801418690004dd6982f983f9baa0039bad301e307f3754007004401800306a41f1153307d49018f6578706563740a2020202076616c69646174655f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641f130010039bac308101307e375400523018375a60bc60fe6ea800501241a107b22b300130560108cc004dd6183f183d9baa023983f183d9baa048982d183d9baa0494889660026604a6eb0c20404c1f8dd50301bae301d307e3754603460fc6ea80062b30019800998121bac308101307e37540c06eb8c178c1f8dd5180d183f1baa0019bac305d307e37540053308001305d307e3754603460fc6ea8004cc20005301054455534472004bd702444b30013370e6018006601800d159800980780146600200700291192cc004c180c20c04dd5000c4c8c96600260c2610a026ea800626464b3001337120033001375660ce6110026ea8c19cc22004dd5003cdd71845808044dd718458098460080420308acc004cdc3800982e9bad3067308801375400913375e611602611802004604a6110026ea80122941085014528210a02375a611402002610c026ea800629410830118329842809baa3301200400130870130840137540030734204046601a01000281120de83f20dc83f1159800cc004dd6182f183f1baa0609bac308101307e3754005375860a460fc6ea80052225980099b87300d002300c0068cc00401a00522325980098301841809baa0018cc004c21c04c21004dd5000cdd618109842009baa0039980d0021bac302130840137540069112cc004c18cc21804dd5000c56600266ebcc22804c21c04dd50019845009843809baa308a01308701375400d15980099baf3067308701375400660cc610e026ea8c22804c21c04dd500344cdc3cc004dd598331843809baa0039bae308a010029bae308a01308b01002405c66042604e6eb4c198c21c04dd50031845009843809baa0018a5042100514a084200a2a6610a029215365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001642100483ea102023300d005001408907941f8899b879800800c18290004dd6982f183f1baa0029bad301d307e3754005003401530010039bac308101307e37540052337106eb4c178c1fcdd5000a400080922a660f89219e6578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641ed153307c491846578706563740a2020202076616c69646174655f72656465656d5f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202020757364725f61737365742c0a2020202029001641ed06841ec8992cc004c14c04633001375860fe60f86ea809260fe60f86ea812660b660f86ea812922259800998131bac308201307f37540c26eb8c078c1fcdd5180d983f9baa0018992cc004cc896600266e1cc034008c03401a2b300130100018cc00400a00322325980098309842009baa001899912cc004c1a8c21804dd5000c4c96600200319800800c56600266ebcc09cc22004dd50019845809844009baa0068acc004cdd798339844009baa001308b0130880137540071325980098301844009baa001899b87375a6118026112026ea8004dd698341844809baa0048a5042180460d06110026ea80060f684280a0f484280a0f280fa0f307983cc1e508d011845009843809baa00183ba10802308801308501375400260ca610a026ea8c190c21404dd5001c1d10820119807004000a04683820fe837a0fe3302637586106026100026ea8188dd718301840009baa301c30800137540046eb0c17cc20004dd5001c5660033001375860c06100026ea818a00937586106026100026ea800e661040260be6100026ea8c070c20004dd50011984100a61054455534472004bd70200c8991919912cc004cdc3acc004c180c0340062900045660020030788992cc004c2240400a264b3001301e375c610a02005100183da10602375a610a02003079421804610e0200284280908101002c56600266e1ccdc09bad3087013084013754610e020066eb4c21c04c21004dd5184380802002c4cc024dd6182c1842009baa006232306298008024dd7184480800cdd7184480984500800a02c3758611002610a026ea80060fc84080a2a661040292012165787065637420757364725f6d696e746564203d3d206d696e745f616d6f756e7400164204046eacc21404c21804004cc094dd5980f9841009baa064375c60c26104026ea8c078c20804dd5002184280800cc00418a6eb8c20c04c20004dd5180e1840009baa0029bad30603080013754007375a603e6100026ea800d00841ad07d454cc1f9241776578706563740a2020202076616c69646174655f6469726563745f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001641f530010039bac308201307f375400523019375a60be6100026ea800501341a507c22b300130270118cc004dd6183f983e1baa024983f983e1baa049982d983e1baa04a4889660026604c6eb0c20804c1fcdd50309bae301e307f3754603660fe6ea80062b30019800998129bac308201307f37540c26eb8c17cc1fcdd5180d983f9baa0019bac305e307f37540053308101305e307f3754603660fe6ea8004cc20405301054455534472004bd702444b30013370e601a006601a00d159800980800146600200700291192cc004c184c21004dd5000c4cc896600260d4610c026ea8006264b30010018cc0040062b30013375e604e6110026ea800cc22c04c22004dd5003456600266ebcc19cc22004dd50009845809844009baa0038992cc004c0d0c22004dd5000c4c96600266e2400660026eacc1a4c22804dd518349845009baa0089bae308d010099bae308d01308e01009406913370e00260be6eb4c1a4c22804dd5002c528210e02375a6118026112026ea800629410860118341844009baa00183da10a0283d210a0283ca03e83cc1e60f3079423404611402610e026ea80060ee842008c22004c21404dd500098329842809baa306430850137540070744208046601c010002811a0e083fa0de83f9198009bad305f307f3754005375a603c60fe6ea800b3001003a4001225980099b88375a60c06102026ea80092000899b80001375a60c06102026ea800a0da83f101a4cc088dd5980e183f9baa061375c60bc60fe6ea8c06cc1fcdd5000a4444646464b30013370eb30013062300f0048a400115980080241ea264b3001308b010058992cc004c080dd7184380801440060fa842808dd6984380800c1ed08801184480802210e02420c0400b15980099b87337026eb4c22404c21804dd51844808011bad308901308601375461120200600b13300b375860b4610c026ea80208c8c1926002007375c611602003375c61160261180200280c0dd61845009843809baa0018a9984200a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206275726e5f616d6f756e740016420c051533084014912165787065637420757364725f6d696e746564203d3d206275726e5f616d6f756e740016420c046eacc22004c22404004c2200400660020cb375c610c026106026ea8c07cc20c04dd5002c0120068059153307d491896578706563740a2020202076616c69646174655f6469726563745f6275726e5f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202020757364725f61737365742c0a2020202029001641f106941f08a5041e483c888c8cc00400400c896600200314a31598009801984100800c4cc008008c20c04006294107c21000241e083c0888888cc88ca60026eacc21404c2180400664660020026eb0c15cc20c04dd5005112cc004006297ae0899843009843809842009baa3087010013300200230880100142140559800982f1805801c520008acc00400e0ed1325980098438080244c96600260386eb8c20c0400a20030794204046eb4c20c040060ee842008c2140400d0830120fe488966002646600200200844b30010018a518991991199119801001000912cc004006200713233225980099802802984980802456600266e3c01d221008a518991919800800807112cc00400629422b30013375e612a020026e9c00e2946266004004612c020028478090930119848809ba90073309101375200497ae042300514a0846008dd71846008009bad308d01001308f010014234046eacc2280400cdd718438080099801801984600801184500800a110028acc004cdc399b81375a611002610a026ea8c22004010dd69844009842809baa3088010050018992cc004cdc3cc004dd6182d1843009baa00da400122332259800cc004c1980069429450870144c96600266e24cc0940040166002013375c611c02007375c611c02611e0200680da266e000100062a66112029212d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642200466e080040162006843808dd61845809844009baa002329800805d2000912cc004cdd798141845809baa002374e0071337000026eb4c1a8c22c04dd50014400508801204837586116026110026ea800902119b8100200b8801454cc210052413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c74610016420c04b3001301e00a8a40031480090820141fd08201454cc20c052401b76578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a2020202020202020616363202626202820706f6c696379203d3d202222207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d65292920290a2020202020207d2c0a20202020290016420804308501001330223756603860fe6ea8014dd7182f183f9baa301b307f375400d30010059bae308201307f3754603660fe6ea801a007002401c4444b30013370e6012004601000719800801c00a4464b3001305c307f37540031325980099baf30840130810137540026108026102026ea8c21004c20404dd5002456600266ebcc184c20404dd500098301840809baa308401308101375400913370f3001375660c06102026ea80066eb8c210040166eb8c18001501118109bad3060308101375400914a083f2294107e1841809840009baa00183ca0fa33009006001407907541e8444464b30013059307c37540031325980099baf308101307e375461020260fc6ea8c174c1f8dd5000982899840009ba90054bd70456600260b33001375660ba60fc6ea8c174c1f8dd5000c016911087472656173757279004039132598009831183f1baa0018992cc004006330010018992cc004c174c20004dd5000c4c96600266ebcc21404c20804dd51842809841009baa00130553308401375201297ae08acc004c17660026eacc184c20804dd5000c02691010874726561737572790040491325980098331841009baa0018992cc004006330010018acc004cdd798119842009baa0034c103d87a800089984300802998430080099843009ba6329800800cdd598321842809baa00499198008009bab3065308601375460ca610c026ea8024896600200314bd6f7b63044c8cc22804cdd81843808009ba63233001001375661120200444b30010018a5eb7bdb1822646611a0266ec0c22804004dd418301bad308b0100133003003308f01002308d01001422c04660060066118020046114020028440090011112cc00400a2003132332298008034c23804016646600200200a44b30010018998470099bb037520086e9800d2f5bded8c113298009bae308c010019bab308d010019848808012444b30013372001000713309201337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528212402880144cc24c04cdd81ba9009374c002004847008ca6002003008801a002222598008014400626466453001006984d00802cc8cc004004014896600200313309a01337606ea4010dd4001a5eb7bdb1822653001375c613002003375a613202003309d0100248896600266e4002000e26613c0266ec0dd48041ba80070058acc004cdc7804001c4c96600260f2003100289984f8099bb037520126ea000400909a0119b8000700289984f0099bb037520066ea0008cc01801800509901213202184d80800a1320240186eb8c24c04004dd6984a00800984b008012128028998490099bb037520066e98008cc01801800508d01211a02184780800a11a0240186eb8c21c04004dd59844008009845008012110024bd70454cc2080524126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001642040507b408907b83dc1ee0f6844808c21804c20c04dd5000c54cc2040524012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001642000460c46104026ea80062a6610002920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641fd15330800149143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641fc6108026102026ea80062a660fe92013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001641f8660146eb0c180c20004dd5004002c1d901e41da0ed07683b210a02308201307f3754003153307d49013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001641f060bc60fc6ea8c174c1f8dd5000c54cc1f12401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641ed153307c4914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641ec61000260fa6ea80062a660f692013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641e86600c6eb0c1fcc1f0dd500200108992cc0040060830418992cc00400608513259800800c10e087043821c4cc89660020030458992cc0040062b300130620028992cc004c0ecc178dd500144c9660020030488992cc004006264b300100182544c96600200313259800800c132264b3001001826c13609b04d8992cc004c1a800e2b300130423065375400d13259800800c13e264b300100182841420a1050899912cc0040060a513259800800c14e0a7053829c4c96600260e0007132598009824800c4c9660020030568992cc0040060af05782bc15e264b3001307400380941610711bae00141d060e20028378c1b4dd5005c566002609000315980098369baa00b807c15506e415506a20d4306b375401505441b46eb80050701836800a0d6375c00260d80048368c1a800506818331baa00682720c682720ce375c0028350c19c0050651833801412e09704b825a0d03065001418c60ca005049824c1260928330c18c005061182f9baa002823a0b813007306200882320be823411a08d046418c60c000282f0dd7000982f80120c0305d001416c6eb0006083041417860b600482c8dc3a401d03d407903d407913259800800c0fa07d03e8991801982d8021bad00181f20b63058002415913259800800c0f207903c8991801982c8021bad00181e20b230560024151039414903981cc0e607282b0c14c005051182980140de06f03781ba0a83051001413c6eb4004c14000a0688288c13800504c1bad001304d002818a09c304b00141246eb0004c12800a05d02e412c60900028230dd6000982380140ae0568240c11400504318209baa006814a07c814a0843758003028814208a304200141006084005026813409a04c8218c10000503e182000140920490248122082303e00140f060746ea801e04481b888966002602e60746ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018992cc00400601313259800800c02a01500a8992cc004c12400e330010098cc00401201900b403d00b404500b41186eb40060148248c11800504418230014022011008804208e304400141086eb4004c10c00a00a8220c10400503f1820801400e007003801a084303f00140f460766ea800e00281c088966002602e60746ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009826001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009828801c0520268270dd7000a0a2304e00141306eb8004c13400904e1825800a092807202480720288072092375800300d806a0983049001411c609200500b805c02e0168250c11c0050451bad0013046002804208e304400141086eb4004c10c00a00a8220c10400503f1820801400e007003801a084303f00140f460766ea800e00281c101c80e407203881c8cc88c9660026024606a6ea80062606c6466ec0c0e8004c0e8c0ec004dd6181c981b1baa0018a9981a24818b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640cc646600200200644b30010018a60103d87a80008992cc004cdd7981b80099ba548010cc0e8c02ccc0e8dd480225eb812f5c1130163303a374e66074606e00266074607000297ae04bd7044cc00c00cc0f0009035181d000a0703756600e60666ea8054dd7181b18199baa0019800912cc004006297ae089981b1819981b80099801001181c000a06a9112cc004cdc48012400110018cc00400e66e10009201499b8b3370066e14009201448180005003206491111919800800802912cc004006200b13259800800c4cc010c0f000801a26600a60780046600600600281d0c0f00050394dd6180898191baa01448888c8c8c8cc88c966002003159800980c181d9baa0018992cc00400604d13259800800c09e04f027813c4cc89660020030298992cc0040062b300130450028acc004c074c100dd5000c4c96600200302b8992cc004006264b3001001816c4c96600200313259800800c0be264b30010018992cc00400606313259800800c4c9660020030338992cc004006264b300100181ac4c96600200313259800800c0de264b30010018992cc00400607313259800800c4c96600200303b8992cc004006264b300100181ec4c96600200303e81f44cc89660020030408992cc0040062b3001305c0028cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c0d0c15cdd500344c9660020030428992cc004006087043821c10e26644b3001001822c4c966002003046823411a08d1332259800800c122264b3001001824c126093049899912cc00400609713259800800c13209904c82644c96600260d000713304100f225980080146600201f102b827a06e8992cc0040062b300130433066375400313259800800c146264b3001001829414a26644b300100182a44c96600200305582ac15626644b300100182bc4c96600200305882c4162264b300130740038acc00401e0b313259800800c16a0b505a82d44cc896600200305c8992cc0040060bb05d82ec176264b3001307900389808183c808c1790761bae00141e460ec00283a0dd7000983a80420ec307300741c505941c46eb40060b083a0c1c400506f1bad001307000282aa0e2306e00141b06eb0004c1b400a0a505241b860d60028348c19cdd5000c14106441420a105082820d83069002419d04d41946eb80050681832800a0c6375c00260c80048328c1880050601bae0013061002418860be00282e8dd7000982f00120be305c001416860b06ea801a08282aa0828142082814208281420828142082814208281420828142082814208282ca083041820c10505d182d000a0b0375800260b200503e81f20b43057001415460ae00503c81e40f207882c0c154005053182a80140ea07503a81d20ac3053001414460a600503881c40e207082a0c14400504f182880140da06d03681b20a4304f0014134609e00503481a40d20688280c13400504b182680140ca065032819209c304b0014124609600503081840c20608260c124005047182480140ba05d02e817209430470014114608e00502c81640b20588240c11400504318209baa001815207c815208481540aa05502a411860860028208dd700098210012086304000140f860786ea800604a81ca04b025812c09504129981c99b964912467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea40dd22010013259800980c181d9baa00189929981d99b9649113666f756e642070726f7879207574786f3a3a2000373266008002910100132598009810981e9baa0018992cc0040062b3001301b303e375400313259800800c0ee264b300100181e40f207903c899912cc00400607d1325980098240014401a07e8228c1180050441bae0013045002411860860028208c0fcdd5000c0e903c40ea07503a81d20883041303e3754003153303c49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640ec603a607a6ea8c070c0f4dd5000981f981e1baa0018a9981d24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640e46601400c4646600200260066eacc070c0f4dd5180e181e9baa0022259800800c528456600266e3cdd7182080081d4528c4cc008008c10800503b207e300100130070072223259800801c4c8c8cc88cc024008cdc524501280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100c20825980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81d903b1bac303e002375a60780026466ec0dd4181e0009ba7303d001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6082003337149101023a200098008054c10800600a805100a182200144ca6002015304100199b8a489023a200098008054c108006600e66008008004805100a182200120843044001410466e29220102207d0000340f86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a0028039009207c3758007133005375a0060051323371491102682700329800800cc050dc68014cdc52450127000044004444b30013371000490004400626466453001006980c802ccdc599b800025980099b88002480522903045206e410066e2ccdc0000acc004cdc4000a4029148182290372080004401866e0c00520203370c002901019b8e00400240f46eb800d0411b8a4881022c20002232330010010032259800980b800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002301000189980299b8400148050cdc599b803370a002900a240c000681c10381801801844464b3001300e0018992cc00400600713259800800c01200900480244c9660026072007006802a06c375c00281c8c0d800503418191baa0048acc004c034006264b3001001801c4c966002003004802401200913259800981c801c01a00a81b0dd7000a072303600140d060646ea8012004817902f18181baa00345901c0c078004c064dd500fc5268a9980ba491856616c696461746f722072657475726e65642066616c7365001365640581" + : + "5922b1010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a37540072300e300f300f001918071807800cdd2a4001223233001001003223300300130020029b87480026e1d20029b874801a6e1d20089b874802a6e1d200c91807180798079807980798079807980798079807800cdd2a400491111111111114c00488c8cc00400400c896600200314c0103d87a80008992cc004c0100062601e6603c00297ae089980180198100012034301e001407122232598009806000c4c8c96600260420050048b203c375c603e00260366ea800e2b3001300b0018992cc004c08000626601c6eb0c07c00489660020050058cc00401e6042005130013022002401c80fa2c80e8c06cdd5001c5660026026003132598009810000c4cc038dd6180f800912cc00400a00b19800803cc08400a260026044004803901f45901d180d9baa0038acc004c0280062646644b300130220018998081bac30210012259800801401e33001009981180144c004c09000900920428b203e375a603e002604000260366ea800e2b30013009001899192cc004c08400a0091640786eb4c07c004c06cdd5001c56600260100031323259800981080140122c80f0dd6980f800980d9baa0038acc004c01c00626464b3001302100280245901e1bae301f001301b375400716406480c90192032406480c9019180c9baa00291192cc004c02c00626464b3001302000280245901d1bae301e001301a37540071598009805000c4c8c96600260400050048b203a375c603c00260346ea800e2c80c1018180c1baa002912cc004c028c060dd500144c8c8c966002604000513232598009807800c566002603c6ea800a00d16407d1598009807000c4c8c96600260480050088b2042375a6044002603c6ea800a2b300130160018acc004c078dd5001401a2c80fa2c80e101c2038301c3754002603e00716407464b3001301c0018acc004cdc4a400860360031689806180d800a0348b203a3754603c002603c00260326ea800a2c80ba44b3001300a30183754005132323322598009810801c0162c80f0dd6980f0009bae301e002301e0013019375400516405d2232598009805800c4c8c96600260400050048b203a375a603c00260346ea800e2b3001300a0018acc004c068dd5001c00a2c80da2c80c1018180c1baa0024888888cc88cc8a6002664464b30013015302337540031302432337606050002605060520026eb0c09cc090dd5000c590221919800800801912cc004006298103d87a80008992cc004cdd7981280099ba548010cc0a0c040cc0a0dd480225eb812f5c11301933028374e66050604a00266050604c00297ae04bd7044cc00c00cc0a80090241814000a04c3756601860426ea8060dd7181218109baa002912cc004c050c088dd500144c8c8c8ca60026eb4c0a80066eb4c0a800e60540049112cc004c0b8012266014605a00e26601e0020111640ac302a00130290013028001302337540051640852259800980a18111baa002899191919194c004dd61815800cdd698158024dd69815801cc0ac0092222598009818002c4cc030c0bc0244cc0440044c8cc8966002606600700d8b2060375c60600026eb8c0c0014c0c00122c8168605600260540026052002605000260466ea800a2c810922259800980a98119baa003899191919912cc004c0b400e264b3001301b30293754003132323232323298009819800cdd61819802cdd698198024dd69819801cc0cc0092222259800981c80344cc09cdd6181c005912cc00400a26605200c44b300100289980e80289980e804899192cc004c0b0c0e8dd5009c4c8c8c9660026084005132332259800981900144c966002608c0031330343758608a00244b300100280244cc084c11c0084c004c12000904545904318209baa0038acc004c0c400a264b3001304600189981a1bac304500122598008014012266042608e004260026090004822a2c8218c104dd5001c5660026072005132598009823000c4cc0d0dd61822800912cc00400a0091330213047002130013048002411516410c60826ea800e2b300130300028992cc004c1180062660686eb0c11400489660020050048998109823801098009824001208a8b208630413754007159800981780144c966002608c0031330343758608a00244b300100280244cc088c11c0084c004c12000904545904318209baa0038acc004c0b800a264b3001304600189981a1bac304500122598008014012266044608e004260026090004822a2c8218c104dd5001c566002605a005132598009823000c4cc0d0dd61822800912cc00400a0091330213047002130013048002411516410c60826ea800e2b300130080028992cc004c1180062660686eb0c11400489660020050048998109823801098009824001208a8b2086304137540071640fc81f903f207e40fc81f903f207e303e3754002264b300130310018992cc004c11400626604c608800200f16410860806ea800e2b300130300018992cc004c114006264b3001303330413754003132323259800982480144cc0acc12000c4cc0ac00402e2c8230c11c004c11c004c108dd5000c590401822000c5904218201baa0038b207c40f8607c6ea8008c10400e2c81f8c100004c100004c0ecdd5009c59039099816009912cc00400a33001303f303c3754606060786ea806e45300132330010010032259800800c528456600266ebcc10cc100dd5182198201baa30343040375460860026054660846ea400d2f5c114a3133002002304400140f8820a94294503c488c8cc00400400c896600200314bd7044cc896600266ebcc114c108dd5182298211baa3036304237540046058660886ea40152f5c113304400233004004001899802002000a0803043001304400141052302d303c37546080646600200200444b30010018a5eb84103d87a80008101800044c8cc89660033001303230413754608a0074a14a2820226608930014a14c103d87a8000a60103d87980004100660886e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11c00400e29462660040046090002821104544cc112600294298103d87a8000a60103d87980004100660886e9c0092f5c11330449800a51a60103d87a8000a60103d87980004100660886e9ccc110dd400080125eb8104020803758608660880026eb4c10c008cc008008c10c00504048896600200514c103d87a80008acc004c0c00062606466082608400497ae08cc00400e6086005337000029000a00640f482024464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208489980280298240022084375c60820026eacc108004c1100050420a5eb7bdb1826e012002911194c0040060090034004444b30010028acc00400629462941043456600200314a11598009980218228011bad30450018cc00400e608c0053046001400d14a0820104320869b81480024608060826082608200322598009817981e9baa002899192cc004c11000a0071641046eb4c108004c0f8dd500145903c48c100c104c104c104c1040064608060826082608260826082608260826082003222329800800c01200680088896600200510018cc00400e608c005330043045002001400c821a4466e0ccdc10011bad3033303e37540026eb4c0c8c0f8dd5000cdc424001371e911045553447200912cc004c0bcc0f4dd500144c8c8c8ca6002608a003304500398228012444b3001304900489981418240038998128010992cc004c0dc0062646644b3001304d0018991919912cc004c14400e0211641386eb8c138004dd7182700118270009bac304c0018b2094375a60940026096002608c6ea800a2b3001303600189919912cc004c134006264646644b3001305100380845904e1bae304e001375c609c004609c0026eb0c1300062c8250dd69825000982580098231baa0028acc004c0f8006264653001375a6096003304c0019bad304b002488966002609e005132323322598009829801c04a2c8280dd718280009bae305000230500013758609c005164130304b00130463754005159800981a800c4c8cc8966002609a003132323322598009828801c0422c8270dd718270009bae304e002304e001375860980031641286eb4c128004c12c004c118dd50014566002606800313232598009826001402e2c8248dd6982500098231baa0028acc004c0cc006264646644b3001304e003806c5904b1bad304b001375a60960046096002608c6ea800a2b30013032001899192cc004c13000a0171641246eb4c128004c118dd50014566002601a00313232598009826001402e2c8248dd6982500098231baa0028b20884110822104420884110822104418221baa0018b208c182280098220009821800981f1baa0028b20789119813801119baf3042303f37540026e9c0092222222222222222222980098271baa0139112cc004c04c00a2653001001802400e90002002222259800801c56600200510018b20ae8cc00401260b4007305a00299912cc004c01c00a266e0000cdd69826182c1baa0028b20ac3059003375a60b200480210574590504c03c03e44b30010018a40011300f33002002305500141492259800800c520008980799801001182a800a0a491119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c82b226600a00a60b800882b0dd7182a8009bad3056001305800141586602400800629000496600266e20005200089806000c400504e489660020031480022601e6600400460aa002829246022003223259800982518289baa001899198030008acc004cdd7980718299baa00330563053375400915980099baf30473053375400260ac60a66ea800e200316414516414460aa60a46ea80062c8280c118c144dd5182298289baa0024888888888a6002600e00f3006006912cc004cdc4000a400114c0103d87a8000899805001000a0b29801801a4444646644b300130510118cc004dd6183198301baa024983198301baa03f982a18301baa0414889660026604c6eb0c198c18cdd502d1bae301e30633754603660c66ea80062b30019800998129bac3066306337540b46eb8c160c18cdd5180d98319baa0019bac3057306337540053758609c60c66ea80052225980099b87300c003300c0068acc004c03c00a33001003801488c96600260b460d06ea800626464b3001305c306a37540031323298009980f804000cdd6181318369baa0049bad307000248896600260c260de6ea800e2b30013371264664466e0ccdc019b80337040026eb4c1a0c1ccdd5001801240020046eb4c194c1c4dd50009bad30653071375401060e660e06ea800e60026eacc190c1c0dd5183218381baa00a9bae30730029bae30733074002407115980099b87001375a60c860e06ea801e266ebcdd3802181498381baa0078a5041b914a083722c83706eb0c1bcc1c0004c1acdd5000c52820d2305f306a37546602400800260d860d26ea80062c8338cc03402000502345906445906422b300198009bac3058306337540b50039bac30663063375400533065305730633754603660c66ea8004cc195301054455534472004bd702008899b879800800c16a90004dd6982c18319baa0029bad301e30633754005003401530010039bac30663063375400523019375a60b060c86ea800501345906145906145906122b300130500118cc004dd6183198301baa024983198301baa03f982a18301baa0414889660026604c6eb0c198c18cdd502d1bae301e30633754603660c66ea80062b30019800998129bac3066306337540b46eb8c160c18cdd5180d98319baa0019bac30573063375400533065305730633754603660c66ea8004cc195301054455534472004bd702444b30013370e6018006601800d159800980780146600200700291192cc004c168c1a0dd5000c4c8c96600260b660d46ea800626464b3001337120033001375660c260da6ea8c184c1b4dd5003cdd718380044dd71838183880420328acc004cdc380098149bad3061306d375400913375e60e060e2004604c60da6ea8012294106b452820d6375a60de00260d66ea80062941069182f98351baa33012004001306c3069375400316419c6601a010002811a2c83222c8321159800cc004dd6182c18319baa05a9bac3066306337540053758609c60c66ea80052225980099b87300d002300c0068cc00401a005223259800982d18341baa0018cc004c1b0c1a4dd5000cdd6181118349baa0039980d8021bac3022306937540069112cc004c174c1acdd5000c56600266ebcc1bcc1b0dd5001983798361baa306f306c375400d15980099baf3061306c375400660c060d86ea8c1bcc1b0dd500344cdc3cc004dd5983018361baa0039bae306f0029bae306f3070002406066044602e6eb4c180c1b0dd5003183798361baa0018a5041a914a083522c835116419c6601a00a002811a2c832113370f300100182d520009bad305830633754005375a603c60c66ea800a006802a6002007375860cc60c66ea800a466e20dd6982c18321baa001480010134590614590614590612264b3001304d0128cc004dd6183218309baa025983218309baa040982a98309baa0424889660026604e6eb0c19cc190dd502d9bae301f30643754603860c86ea80062b300133225980099b87300c002300c0058acc004c03c00633001002800c88c96600260b460d06ea800626644b30013063306a37540031323301f00115980099baf3027306c375400660de60d86ea801a2b30013375e60c060d86ea8004c1bcc1b0dd5001c4c96600260b260d86ea8006266e1cdd6983818369baa001375a60c260da6ea8012294106b183098361baa0018b20d48b20d4306e306b37540031641a460d860d26ea8004c178c1a4dd5182e98349baa0038b20ce3300d007001408d1641911641906604c6eb0c19cc190dd502d9bae305930643754603860c86ea8004dd6182c18321baa0028acc00660026eb0c164c190dd502dc00e6eb0c19cc190dd50014cc198c160c190dd5180e18321baa001330664c01054455534472004bd70200a8cc004dd6982c98321baa0029bad301f306437540059800801cdd6183398321baa0029180d1bad30593065375400280a2660466eacc074c190dd502d9bae305830643754603860c86ea800522223232325980099b8759800982e18078024520008acc004c1bc012264b30013020375c60d60031375a60d80031641a860dc0091641b083480162b30013370e66e04dd6983718359baa306e002375a60dc60d66ea8c1b800c0162660166eb0c158c1acdd5004119182f4c00400e6eb8c1c00066eb8c1c0c1c40050191bac306f306c37540031641a51641a46eacc1b4c1b8004c1b400660020bf375c60d660d06ea8c080c1a0dd5002c01200680591641891641891641888acc004c0a004a33001375860c860c26ea809660c860c26ea810260aa60c26ea810922259800998139bac3067306437540b66eb8c07cc190dd5180e18321baa0018acc00660026604c6eb0c19cc190dd502d9bae305930643754603860c86ea80066eb0c160c190dd50014cc198c160c190dd5180e18321baa001330664c01054455534472004bd702444b30013370e601a006601a00d159800980800146600200700291192cc004c16cc1a4dd5000c4cc896600260c860d66ea8006264660400022b30013375e605060da6ea800cc1c0c1b4dd5003456600266ebcc184c1b4dd5000983818369baa0038992cc004c0d4c1b4dd5000c4c96600266e2400660026eacc18cc1bcdd5183198379baa0089bae30720099bae30723073009406d13370e00260566eb4c18cc1bcdd5002c52820da375a60e260dc6ea8006294106c183118369baa0018b20d68b20d6306f306c37540031641a860da60d46ea8004c17cc1a8dd5182f18351baa0038b20d03300e00800140911641951641948cc004dd6982c98321baa0029bad301f306437540059800801d2000912cc004cdc41bad305a30663754004900044cdc00009bad305a3066375400516419080da660466eacc074c190dd502d9bae305830643754603860c86ea800522223232325980099b8759800982e18078024520008acc004c1bc012264b30013020375c60d60031375a60d80031641a860dc0091641b083480162b30013370e66e04dd6983718359baa306e002375a60dc60d66ea8c1b800c0162660166eb0c158c1acdd5004119182f4c00400e6eb8c1c00066eb8c1c0c1c40050191bac306f306c37540031641a51641a46eacc1b4c1b8004c1b400660020bf375c60d660d06ea8c080c1a0dd5002c01200680591641891641888a50417c82f888c8cc00400400c896600200314a315980098019833800c4cc008008c1a0006294106220ca417882f0888888cc88ca60026eacc1a8c1ac00664660020026eb0c14cc1a0dd5005112cc004006297ae0899835983618349baa306c00133002002306d00141a959800982c1805801c520008acc004c1ac00e264b3001301c375c60ce0031375a60d000316419860d40071641a08329222598009919800800802112cc0040062946264664466446600400400244b30010018801c4c8cc89660026600a00a60f000915980099b8f007489008a518991919800800807112cc00400629422b30013375e60f40026e9c00e294626600400460f600283a90781983b1ba900733076375200497ae041c914a08390dd718388009bad3072001307400141c86eacc1bc00cdd718360009980180198388011837800a0da8acc004cdc399b81375a60da60d46ea8c1b4010dd6983698351baa306d0050018992cc004cdc3cc004dd6182b18359baa00da400122332259800cc004c18000694294506d44c96600266e24cc0980040166002013375c60e6007375c60e660e800680e2266e000100062c8370cdc1000802c400d06d1bac3070306d375400465300100ba4001225980099baf3029307037540046e9c00e266e00004dd6983218381baa0028800a0dc40946eb0c1c0c1b4dd500120443370200401710028b20d259800980f8054520018a400483422c83422c834060d4002660466eacc074c190dd50029bae305830643754603860c86ea801a600200b375c60ce60c86ea8c070c190dd5003400e004803888896600266e1cc024008c02000e33001003801488c96600260ac60c86ea8006264b30013375e60d260cc6ea8004c1a4c198dd5183498331baa0048acc004cdd7982d98331baa001305a3066375460d260cc6ea8012266e1e60026eacc168c198dd5000cdd71834802cdd7182d002a0243011375a60b460cc6ea80122941064452820c830683065375400316418c6601200c00280fa2c83008888c96600260a660c26ea8006264b30013375e60cc60c66ea8c198c18cdd5182b98319baa001304d33065375200a97ae08acc004c14e60026eacc15cc18cdd5182b98319baa001802d220108747265617375727900403d13259800982e18319baa0018991980f8008992cc004c15cc194dd5000c4c96600266ebcc1a8c19cdd5183518339baa001305133069375201297ae08acc004c15e60026eacc16cc19cdd5000c02691108747265617375727900404d13259800983018339baa001899198118008acc004cdd7981218349baa0034c0103d87a800089983580299835800998359ba6329800800cdd5982f18351baa00499198008009bab305f306b375460be60d66ea8024896600200314bd6f7b63044c8cc1bccdd818360009ba63233001001375660dc00444b30010018a5eb7bdb182264660e466ec0c1bc004dd418161bad3070001330030033074002307200141c06600600660e200460de00283690011112cc00400a2003132332298008034c1cc016646600200200a44b300100189983999bb037520086e9800d2f5bded8c113298009bae30710019bab3072001983b0012444b300133720010007133077337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820ee880144cc1e0cdd81ba9009374c00200483a0ca6002003008801a002222598008014400626466453001006983f802cc8cc004004014896600200313307f337606ea4010dd4001a5eb7bdb1822653001375c60fa003375a60fc00330820100248896600266e4002000e2661060266ec0dd48041ba80070058acc004cdc7804001c4c96600260e600310028998420099bb037520126ea00040090800119b800070028998418099bb037520066ea0008cc01801800507f20fe184000800a0fc40186eb8c1e0004dd6983c800983d80120f289983b99bb037520066e98008cc01801800507320e6183a000a0e440186eb8c1b0004dd59836800983780120da4bd70459067183598341baa0018b20cc305c3067375400316419516419460d260cc6ea80062c8320cc028dd6182d18329baa00800530673064375400316418860b060c66ea8c15cc18cdd5000c59061459061183298311baa0018b20c033006375860c860c26ea801000844c8cc896600260860031332259800981918201baa002899191919912cc004c12800e264b3001303830463754003132323322598009827801c4c966002607a00313232598009829001403a2c8278dd7182800098261baa0078acc004c0f00062b3001304c375400f00c8b209a8b2094412860946ea801a2c8260dd718260009bae304c002304c00130473754003164114609200b16411c6eb8c11c004c11c008c11c004c118004c104dd500145903f1821000898021821802c590401bae304000130410013758607e00481e8dc3a401d1323002303e003375a607800481d2264600460780066eb4c0e80090384590360c0cc004c0c8004c0c4004c0c0004c0bc004c0a8dd5000c590281816002c5902a1bac302a001302a002302a00130290013024375400716408832323259800980998109baa00189919912cc004c0a4006264b3001301730253754003132323232323232323232329800981a000cc0d002a60680133034008981a003cc0d001a606800b3034004981a001cdd6181a00124444444444b3001303f00b89980f181f00a89980f00489980f00409980f00389980f00309980f00289980f00209980f0018acc004c0b0c0e8dd500144c8c8c8ca60026eb8c1080066eb8c1080126eb8c10800e6eb8c1080092222598009823802c4cc0d4024896600200513302701410248992cc004c0dcc114dd5000c4c8c8c8cc8966002609e007132323322598009829801c4c02cc14c0322c8280dd718280009bae305000230500013758609c00b1641306eb4c130004dd698260011826000982580098231baa0018b208830480024119164110304200130410013040001303b37540051640e51640f030340013033001303200130310013030001302f001302e001302d001302c001302b0013026375400316409060500031640986eb8c098004c09c004c088dd5000c59020192cc004c04cc084dd5000c4c966002603660446ea8006264b3001301530233754003132323322598009816001c40162c8148c0a4004dd71814801181480098121baa0018b2044302630233754003164084602e60446ea8c058c088dd5181298111baa0018b20403300a3758602a60426ea80608c8cc004004c00cdd5980b98119baa30173023375400444b30010018a508acc004cdc79bae30270010218a518998010011814000a0444094600200244b30010018a5eb822660466040604800266004004604a00281108966002602460406ea800a2646464b3001302800289980318138018992cc004c0580062b3001302537540050058b204c8acc004c05400626464b3001302b002803c590281bae302900130253754005159800980e800c4c8c96600260560050078b205030290013025375400516408c811902318119baa0018b204a302600130260013021375400516407c600a00a44b30013010301e3754005132323259800981300144cc024c09400c4c9660026028003132598009814000c4c8c966002602e003132598009815800c4cc038c0a80040262c8140c098dd50014566002602c003132323298009bad302c0019bad302c0039bad302c002488966002606000900e8b205a1816000981580098131baa0028b2048409060486ea8004c09c0062c8128c08cdd50014566002602600315980098119baa002802c5902445902120423021375400316408c60480026048002603e6ea800a2c80e88b2010180480098021baa0098a4d1365640081", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolMintProtocolMintElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5942e3010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a493b657870656374206c6973742e6c656e677468286f75747075745f696e646963657329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a493865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00168a99801a4938657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a493e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f6964782900168a99801a49376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f72657175657374732900168a99801a4939657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a49856578706563740a2020202076616c69646174655f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a202020202020757364725f61737365742c0a202020202900168a99801a4942657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a49286578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d20646174756d00168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d657200164888888888888888888896600264653001301e001980f180f800cdc3a4009301e00248889660026004603c6ea800e330013022301f37540072302330243024001918119812000cdd2a4001223233001001003223300300130020029b87480026e1d20029b874801a6e1d20089b874802a6e1d200c9b80480066e05200091811981218121812181218121812181218121812000cdd2a4004911111111111111194c00488966002601c60626ea800e264b300100180144c96600200313259800800c012264b30010018acc004c0e800a330010038992cc004c04c006264b3001001803c4c966002003159800981e80144c966002602c00313259800800c02a264b30010018acc004c10000a33001001806402d00e402d03d402e01700b805a082303e00140f060746ea800a2b300130150018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c11c00e02701241106eb40060228238c1100050421bad00130430028072088304100140fc6eb4004c10000a0168208c0f800503c181d1baa002804a06e40dc60706ea800601081d2011008804402103e181d800a072303737540051598009809000c566002606e6ea800a00f00640e100640d081a0c0d4dd5000c0150084015037401600b005802a076303800140d86070005003801c00e00681c8c0d800503418191baa003800a05e911194c004006009003400444464b300130120018992cc00400600d13259800800c01e00f007803c4c966002607a0070058042074375c00281e8c0e8005038181b1baa0038acc004c044006264b300100180344c966002003007803c4c966002607a0071330160012259800801401e264b30010018cc00402a003130023040003402900b805c02e0168208c0f800903c402103a1bac001803c01d03d181d000a07030363754007159800980c800c4c9660020030068992cc00400600f0078992cc004c0f400e26602c00244b3001002803c4c966002003198008054006260046080006805201700b805c02d041181f001207880420743758003007803a07a303a00140e0606c6ea800e2b300130100018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009820001c4cc064004896600200500a8992cc0040063300100d800c4c008c10c00d00d403a01d00e8072088304100240fd00b40f46eb000601500a4100607a00281d8dd6800981e001401d03d181d000a070303637540071598009807800c4c9660020030068992cc00400600f007803c4c966002607a0070058042074375a00300740f4607400281c0c0d8dd5001c566002601c00313259800800c01a264b3001001803c01e00f13259800981e801c01601081d0dd6800c01d03d181d000a070303637540071598009806800c4c9660020030068992cc00400600f007803c01e264b3001303d003802c02103a1bae00140f4607400281c0c0d8dd5001c015033206640cc8199033206640cc60686ea800a44646600200200644b30010018a60103d87a80008992cc004c010006260246606c00297ae0899801801981c0012062303600140d091119192cc00400633001222598009809981b1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303f0028cc00400e264b300130180018acc004c0f0dd5001401e00c81ea2b300130170018992cc00400600f13259800800c02201100880444c966002608600700a804a080375c0028218c10000503e181e1baa0028acc004c07c006264b3001001803c4c9660026084005009804207e304000140f860786ea800a00c81c90392072303a3754003005403100540f1005802c01600a8200c0f400503b181e801400e007003801a07c303b00140e4606e6ea800e00281a2444b300130133036375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607800315980099b8948010c0ec00600d13259800982080244c9660026034003159800981f1baa006804c02103f4566002603200313259800800c026264b3001001805402a015132598009822801c0320168210dd6800c0290451821000a080303e375400d1598009810800c566002607c6ea801a01300840fd00840ec81d903b181e1baa005803a07c3017303b00140e500640f46ea800600b005802c015040181e800a076303d002801c00e00700340f8607600281c8c0dcdd5001c0050344889660026026606c6ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d132598009820801c02200e81f0dd6800c019041181f000a078375c002607a00481f0c0ec005039181b9baa003800a068911192cc004c050006264b3001001801c4c9660020030048024012264b3001303f003803401503c1bad001802207e303c00140e860706ea80122b300130130018acc004c0e0dd5002400e00481ca00481a9035181b1baa00348888cc8966002602c60726ea801e264b3001001811c4c96600200313259800800c096264b30010018992cc00400604f13259800800c0a2051132598009822801c566002603a60806ea801a264b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e899912cc00400606113259800800c0c6063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c4c9660020030388992cc0040062b30013055002899817007112cc00400a26606001a44b30010028cc00401e33001005899192cc004c0ccc158dd500d44c9660020030408992cc004006264b300100182144c966002003159800982f80144cc8966002607200313259800800c11a264b3001001823c11e264b3001306400389981e800912cc00400a00f13259800800c66002003130023067003825a054825c12e09704b41a060ca004831a0908308dd6000c11e08e8320c18400505f182e9baa0058acc004c0e0006264b300100182344c966002003047823c4c96600260c800713303d0012259800801401e264b30010018cc0040062600460ce00704b40a904b825c12e0968340c19400906341210611bac001823c11d0641830800a0be305d375400b1598009820000c4c9660020030468992cc00400608f0478992cc004c19000e26607a00244b3001002803c4c96600200319800800c4c008c19c00e096815209704b825c12d068183280120c682420c23758003047823a0c83061001417c60ba6ea80162b300130370018992cc00400608d13259800800c11e08f132598009832001c4cc0f400489660020050078992cc00400633001001898011833801c12d02a412e09704b825a0d03065002418d04841846eb000608f047419060c200282f8c174dd5002c566002606c00313259800800c11a264b3001001823c11e264b3001306400389981e800912cc00400a00f13259800800c66002003130023067003825a056825c12e09704b41a060ca004831a0908308dd6000c11e08e8320c18400505f182e9baa0058acc004c0d4006264b300100182344c966002003047823c4c96600260c800713303d0012259800801401e264b30010018cc0040062600460ce00704b40ad04b825c12e0968340c19400906341210611bac001823c11d0641830800a0be305d375400b159800981a000c4c9660020030468992cc00400608f0478992cc004c19000e26607a00244b3001002803c4c96600200319800800c4c008c19c00e096815209704b825c12d068183280120c682420c23758003047823a0c83061001417c60ba6ea80162b300130080018992cc00400608d13259800800c11e08f132598009832001c4cc0f400489660020050078992cc00400633001001898011833801c12d02a412e09704b825a0d03065002418d04841846eb000608f047419060c200282f8c174dd5002c11505a20b4416882d105a20b4416882d04c966002607000313259800800c116264b30010018acc004c18800a330010018044119028411905f411a08d04682320c63060001417860b86ea800a2b300130370018992cc00400608b13259800800c56600260c4005159800981d182e9baa0018992cc00400608f13259800800c4c9660020030498992cc0040062b300130660028cc00400e33001001806412902d412902d4129063412a09504a82520ce3064001418860c800504882441220908328c188005060182f1baa00182320b682320be823411a08d046418c60c000282f0c170dd5001411105920b2305a375400260b46ea800e08682e2087043821c10d060182e800a0b6305d002820c106083041417860b600282c8c15cdd500d40fd05409981980b112cc00400a33001305b30583754606e60b06ea809645300132330010010032259800800c528456600266ebcc17cc170dd5182f982e1baa303b305c375460be002605e660bc6ea400d2f5c114a31330020023060001416482ea942945057488c8cc00400400c896600200314bd7044cc896600266ebcc184c178dd51830982f1baa303d305e37540046062660c06ea40152f5c113306000233004004001899802002000a0b6305f00130600014175230343058375460b8646600200200444b30010018a5eb84103d87a80008101800044c8cc896600330013039305d375460c20074a14a282da2660c130014a14c103d87a8000a60103d8798000416c660c06e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c18c00400e294626600400460c800282e906144cc182600294298103d87a8000a60103d8798000416c660c06e9c0092f5c11330609800a51a60103d87a8000a60103d8798000416c660c06e9ccc180dd400080125eb8105b20b6375860be60c00026eb4c17c008cc008008c17c00505c48896600200514c103d87a80008acc004c0dc00626072660ba60bc00497ae08cc00400e60be0053031001400c82c105c488c8c8cc004004010896600200300389919912cc004cdc8803801456600266e3c01c00a20030064175133005005306400441746eb8c174004dd5982f0009830000a0bc14bd6f7b6304dc024005222329800800c012006800888966002005159800800c528c52820be8acc00400629422b3001330043061002375a60c200319800801cc18800a60c4002801a294105b20be417d25980099b88001480022605c003100141592305c305d305d305d0019112cc004c0dcc168dd5001c4c9660020030028992cc004006007003801c4c96600260c400700580220be375a003003418860be00282e8c16cdd5001c00505848c170c174c174c174c174006460b860ba60ba60ba60ba60ba60ba60ba60ba003222329800800c01200680088896600200510018cc00400e60c4005330043061002001400c82fa4466e0ccdc10011bad303a305a37540026eb4c0e4c168dd5000cdc424001371e9110455534472009112cc004c0dcc168dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800983380146600200f19800802c4c966002608000313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b3001306e0038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001307300380b40550701bae00141cc60e00028370dd7000983780120e0306d00141ad01041ac6eb000601f00f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981f800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c1b800e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1cc00e02d01541c06eb80050731838000a0dc375c00260de0048380c1b400506b404106b1bac001807c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002608e00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b300130710038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001307600380cc0610731bae00141d860e60028388dd7000983900120e6307000141b901341b86eb000602501241c460dc0028360dd68009836801403d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607c00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b3001306e0038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001307300380b40550701bae00141cc60e00028370dd7000983780120e0306d00141ad01041ac6eb000601f00f41b860d60028348dd68009835001403106b1834000a0cc30643754009159800981e800c4c96600200300b8992cc00400601900c80644c96600260d600700e806a0d0375a00300c41ac60d00028330c190dd50024566002607800313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009837001c0460208358dd6800c03d06e1835800a0d2375a00260d400500c41ac60d00028330c190dd50024566002607600313259800800c02e264b30010018064032019132598009835801c03a01a8340dd6800c03106b1834000a0cc306437540091598009807800c4c96600200300b8992cc00400601900c80644c96600260d600700e806a0d0375a00300c41ac60d00028330c190dd5002402906120c24184830906120c241848308c188dd5001c02502f402503340250641832800a0c63065002803c01e00f007419860c60028308c18c00a00b005802c0150641830800a0be3061002801c00e007003418860be00282e8c16cdd5001c005058488cc0a40088cdd7982f182d9baa001374e00491111111111111111114c004c1a8dd5009c8896600260260051329800800c0120074800100111112cc00400e2b30010028800c54cc1c1240112657870656374205b5d203d206c6973745f62001641cd159800801454cc1c12411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260ec007307600299912cc004c01c00a266e0000cdd69829983a1baa00283020e23075003375a60ea004802107320e68a9983624812e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e646963657329001641ad300f00f912cc0040062900044c03ccc008008c1c400506e489660020031480022601e6600400460e200283724446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e005100180320e2899802802983c00220e2375c60e20026eb4c1c8004c1d0005072198090020018a40012259800800c5200089807998010011838800a0dc91808800c88c96600260a260da6ea8006264b30010018cc0040062b30013375e601c60de6ea800cc1c8c1bcdd5002456600266ebcc138c1bcdd5000983918379baa0038800c18906c418506c418100641820c106083020e83071306e375400305e41ac609a60da6ea8c130c1b4dd50012444444445300130060069802802c896600266e2000520008a6103d87a8000899804801000a0e69801801a4444646644b300130570108cc004dd6183f183d9baa023983f183d9baa048982d183d9baa0494889660026604a6eb0c20404c1f8dd50301bae301d307e3754603460fc6ea8006264b30019800998129bac308201307f37540c26eb8c17cc1fcdd5180d983f9baa0029bac305e307f3754007375860a660fe6ea80092225980099b87300d003300d0078acc004c04000a33001003801488c96600260c26108026ea800626464b3001306330860137540031323298009980f804000cdd618131844809baa0049bad308c0100248896600260d06116026ea800e2b30013371264664466e0cc194cdc019b82001375a60de611e026ea800c008008dd698361846809baa001375a60d8611a026ea8020c23c04c23004dd5001cc004dd598359846009baa306b308c013754015375c611e02005375c611e0261200200480e22b30013370e0026eb4c1acc23004dd5003c4cdd79ba70043029308c01375400f14a084480a294108901454cc228052414365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f61737365742900164224043758611602611802002610e026ea800629410840118331843009baa3301300400130880130850137540030744208046601c012002811a0e083fa0de83f9159800cc004dd6182f983f9baa0618024dd6184100983f9baa0039984080982f183f9baa301b307f37540046610202981054455534472004bd70200a899b879800801418690004dd6982f983f9baa0039bad301e307f3754007004401800306a41f1153307d49018f6578706563740a2020202076616c69646174655f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641f130010039bac308101307e375400523018375a60bc60fe6ea800501241a107b22b300130560108cc004dd6183f183d9baa023983f183d9baa048982d183d9baa0494889660026604a6eb0c20404c1f8dd50301bae301d307e3754603460fc6ea80062b30019800998121bac308101307e37540c06eb8c178c1f8dd5180d183f1baa0019bac305d307e37540053308001305d307e3754603460fc6ea8004cc20005301054455534472004bd702444b30013370e6018006601800d159800980780146600200700291192cc004c180c20c04dd5000c4c8c96600260c2610a026ea800626464b3001337120033001375660ce6110026ea8c19cc22004dd5003cdd71845808044dd718458098460080420308acc004cdc3800982e9bad3067308801375400913375e611602611802004604a6110026ea80122941085014528210a02375a611402002610c026ea800629410830118329842809baa3301200400130870130840137540030734204046601a01000281120de83f20dc83f1159800cc004dd6182f183f1baa0609bac308101307e3754005375860a460fc6ea80052225980099b87300d002300c0068cc00401a00522325980098301841809baa0018cc004c21c04c21004dd5000cdd618109842009baa0039980d0021bac302130840137540069112cc004c18cc21804dd5000c56600266ebcc22804c21c04dd50019845009843809baa308a01308701375400d15980099baf3067308701375400660cc610e026ea8c22804c21c04dd500344cdc3cc004dd598331843809baa0039bae308a010029bae308a01308b01002405c66042604e6eb4c198c21c04dd50031845009843809baa0018a5042100514a084200a2a6610a029215365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001642100483ea102023300d005001408907941f8899b879800800c18290004dd6982f183f1baa0029bad301d307e3754005003401530010039bac308101307e37540052337106eb4c178c1fcdd5000a400080922a660f89219e6578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e726573657276655f6173736574732c0a2020202029001641ed153307c491846578706563740a2020202076616c69646174655f72656465656d5f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202020757364725f61737365742c0a2020202029001641ed06841ec8992cc004c14c04633001375860fe60f86ea809260fe60f86ea812660b660f86ea812922259800998131bac308201307f37540c26eb8c078c1fcdd5180d983f9baa0018992cc004cc896600266e1cc034008c03401a2b300130100018cc00400a00322325980098309842009baa001899912cc004c1a8c21804dd5000c4c96600200319800800c56600266ebcc09cc22004dd50019845809844009baa0068acc004cdd798339844009baa001308b0130880137540071325980098301844009baa001899b87375a6118026112026ea8004dd698341844809baa0048a5042180460d06110026ea80060f684280a0f484280a0f280fa0f307983cc1e508d011845009843809baa00183ba10802308801308501375400260ca610a026ea8c190c21404dd5001c1d10820119807004000a04683820fe837a0fe3302637586106026100026ea8188dd718301840009baa301c30800137540046eb0c17cc20004dd5001c5660033001375860c06100026ea818a00937586106026100026ea800e661040260be6100026ea8c070c20004dd50011984100a61054455534472004bd70200c8991919912cc004cdc3acc004c180c0340062900045660020030788992cc004c2240400a264b3001301e375c610a02005100183da10602375a610a02003079421804610e0200284280908101002c56600266e1ccdc09bad3087013084013754610e020066eb4c21c04c21004dd5184380802002c4cc024dd6182c1842009baa006232306298008024dd7184480800cdd7184480984500800a02c3758611002610a026ea80060fc84080a2a661040292012165787065637420757364725f6d696e746564203d3d206d696e745f616d6f756e7400164204046eacc21404c21804004cc094dd5980f9841009baa064375c60c26104026ea8c078c20804dd5002184280800cc00418a6eb8c20c04c20004dd5180e1840009baa0029bad30603080013754007375a603e6100026ea800d00841ad07d454cc1f9241776578706563740a2020202076616c69646174655f6469726563745f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202029001641f530010039bac308201307f375400523019375a60be6100026ea800501341a507c22b300130270118cc004dd6183f983e1baa024983f983e1baa049982d983e1baa04a4889660026604c6eb0c20804c1fcdd50309bae301e307f3754603660fe6ea80062b30019800998129bac308201307f37540c26eb8c17cc1fcdd5180d983f9baa0019bac305e307f37540053308101305e307f3754603660fe6ea8004cc20405301054455534472004bd702444b30013370e601a006601a00d159800980800146600200700291192cc004c184c21004dd5000c4cc896600260d4610c026ea8006264b30010018cc0040062b30013375e604e6110026ea800cc22c04c22004dd5003456600266ebcc19cc22004dd50009845809844009baa0038992cc004c0d0c22004dd5000c4c96600266e2400660026eacc1a4c22804dd518349845009baa0089bae308d010099bae308d01308e01009406913370e00260be6eb4c1a4c22804dd5002c528210e02375a6118026112026ea800629410860118341844009baa00183da10a0283d210a0283ca03e83cc1e60f3079423404611402610e026ea80060ee842008c22004c21404dd500098329842809baa306430850137540070744208046601c010002811a0e083fa0de83f9198009bad305f307f3754005375a603c60fe6ea800b3001003a4001225980099b88375a60c06102026ea80092000899b80001375a60c06102026ea800a0da83f101a4cc088dd5980e183f9baa061375c60bc60fe6ea8c06cc1fcdd5000a4444646464b30013370eb30013062300f0048a400115980080241ea264b3001308b010058992cc004c080dd7184380801440060fa842808dd6984380800c1ed08801184480802210e02420c0400b15980099b87337026eb4c22404c21804dd51844808011bad308901308601375461120200600b13300b375860b4610c026ea80208c8c1926002007375c611602003375c61160261180200280c0dd61845009843809baa0018a9984200a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206275726e5f616d6f756e740016420c051533084014912165787065637420757364725f6d696e746564203d3d206275726e5f616d6f756e740016420c046eacc22004c22404004c2200400660020cb375c610c026106026ea8c07cc20c04dd5002c0120068059153307d491896578706563740a2020202076616c69646174655f6469726563745f6275726e5f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206275726e5f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202020757364725f61737365742c0a2020202029001641f106941f08a5041e483c888c8cc00400400c896600200314a31598009801984100800c4cc008008c20c04006294107c21000241e083c0888888cc88ca60026eacc21404c2180400664660020026eb0c15cc20c04dd5005112cc004006297ae0899843009843809842009baa3087010013300200230880100142140559800982f1805801c520008acc00400e0ed1325980098438080244c96600260386eb8c20c0400a20030794204046eb4c20c040060ee842008c2140400d0830120fe488966002646600200200844b30010018a518991991199119801001000912cc004006200713233225980099802802984980802456600266e3c01d221008a518991919800800807112cc00400629422b30013375e612a020026e9c00e2946266004004612c020028478090930119848809ba90073309101375200497ae042300514a0846008dd71846008009bad308d01001308f010014234046eacc2280400cdd718438080099801801984600801184500800a110028acc004cdc399b81375a611002610a026ea8c22004010dd69844009842809baa3088010050018992cc004cdc3cc004dd6182d1843009baa00da400122332259800cc004c1980069429450870144c96600266e24cc0940040166002013375c611c02007375c611c02611e0200680da266e000100062a66112029212d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001642200466e080040162006843808dd61845809844009baa002329800805d2000912cc004cdd798141845809baa002374e0071337000026eb4c1a8c22c04dd50014400508801204837586116026110026ea800902119b8100200b8801454cc210052413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c74610016420c04b3001301e00a8a40031480090820141fd08201454cc20c052401b76578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a2020202020202020616363202626202820706f6c696379203d3d202222207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d65292920290a2020202020207d2c0a20202020290016420804308501001330223756603860fe6ea8014dd7182f183f9baa301b307f375400d30010059bae308201307f3754603660fe6ea801a007002401c4444b30013370e6012004601000719800801c00a4464b3001305c307f37540031325980099baf30840130810137540026108026102026ea8c21004c20404dd5002456600266ebcc184c20404dd500098301840809baa308401308101375400913370f3001375660c06102026ea80066eb8c210040166eb8c18001501118109bad3060308101375400914a083f2294107e1841809840009baa00183ca0fa33009006001407907541e8444464b30013059307c37540031325980099baf308101307e375461020260fc6ea8c174c1f8dd5000982899840009ba90054bd70456600260b33001375660ba60fc6ea8c174c1f8dd5000c016911087472656173757279004039132598009831183f1baa0018992cc004006330010018992cc004c174c20004dd5000c4c96600266ebcc21404c20804dd51842809841009baa00130553308401375201297ae08acc004c17660026eacc184c20804dd5000c02691010874726561737572790040491325980098331841009baa0018992cc004006330010018acc004cdd798119842009baa0034c103d87a800089984300802998430080099843009ba6329800800cdd598321842809baa00499198008009bab3065308601375460ca610c026ea8024896600200314bd6f7b63044c8cc22804cdd81843808009ba63233001001375661120200444b30010018a5eb7bdb1822646611a0266ec0c22804004dd418301bad308b0100133003003308f01002308d01001422c04660060066118020046114020028440090011112cc00400a2003132332298008034c23804016646600200200a44b30010018998470099bb037520086e9800d2f5bded8c113298009bae308c010019bab308d010019848808012444b30013372001000713309201337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c528212402880144cc24c04cdd81ba9009374c002004847008ca6002003008801a002222598008014400626466453001006984d00802cc8cc004004014896600200313309a01337606ea4010dd4001a5eb7bdb1822653001375c613002003375a613202003309d0100248896600266e4002000e26613c0266ec0dd48041ba80070058acc004cdc7804001c4c96600260f2003100289984f8099bb037520126ea000400909a0119b8000700289984f0099bb037520066ea0008cc01801800509901213202184d80800a1320240186eb8c24c04004dd6984a00800984b008012128028998490099bb037520066e98008cc01801800508d01211a02184780800a11a0240186eb8c21c04004dd59844008009845008012110024bd70454cc2080524126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001642040507b408907b83dc1ee0f6844808c21804c20c04dd5000c54cc2040524012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d001642000460c46104026ea80062a6610002920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641fd15330800149143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641fc6108026102026ea80062a660fe92013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f69647829001641f8660146eb0c180c20004dd5004002c1d901e41da0ed07683b210a02308201307f3754003153307d49013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d001641f060bc60fc6ea8c174c1f8dd5000c54cc1f12401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d2031001641ed153307c4914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f73637269707429001641ec61000260fa6ea80062a660f692013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641e86600c6eb0c1fcc1f0dd500200108992cc0040060830418992cc00400608513259800800c10e087043821c4cc89660020030458992cc0040062b300130620028992cc004c0ecc178dd500144c9660020030488992cc004006264b300100182544c96600200313259800800c132264b3001001826c13609b04d8992cc004c1a800e2b300130423065375400d13259800800c13e264b300100182841420a1050899912cc0040060a513259800800c14e0a7053829c4c96600260e0007132598009824800c4c9660020030568992cc0040060af05782bc15e264b3001307400380941610711bae00141d060e20028378c1b4dd5005c566002609000315980098369baa00b807c15506e415506a20d4306b375401505441b46eb80050701836800a0d6375c00260d80048368c1a800506818331baa00682720c682720ce375c0028350c19c0050651833801412e09704b825a0d03065001418c60ca005049824c1260928330c18c005061182f9baa002823a0b813007306200882320be823411a08d046418c60c000282f0dd7000982f80120c0305d001416c6eb0006083041417860b600482c8dc3a401d03d407903d407913259800800c0fa07d03e8991801982d8021bad00181f20b63058002415913259800800c0f207903c8991801982c8021bad00181e20b230560024151039414903981cc0e607282b0c14c005051182980140de06f03781ba0a83051001413c6eb4004c14000a0688288c13800504c1bad001304d002818a09c304b00141246eb0004c12800a05d02e412c60900028230dd6000982380140ae0568240c11400504318209baa006814a07c814a0843758003028814208a304200141006084005026813409a04c8218c10000503e182000140920490248122082303e00140f060746ea801e04481b888966002602e60746ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018992cc00400601313259800800c02a01500a8992cc004c12400e330010098cc00401201900b403d00b404500b41186eb40060148248c11800504418230014022011008804208e304400141086eb4004c10c00a00a8220c10400503f1820801400e007003801a084303f00140f460766ea800e00281c088966002602e60746ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b132598009826001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a025132598009828801c0520268270dd7000a0a2304e00141306eb8004c13400904e1825800a092807202480720288072092375800300d806a0983049001411c609200500b805c02e0168250c11c0050451bad0013046002804208e304400141086eb4004c10c00a00a8220c10400503f1820801400e007003801a084303f00140f460766ea800e00281c101c80e407203881c8cc88c9660026024606a6ea80062606c6466ec0c0e8004c0e8c0ec004dd6181c981b1baa0018a9981a24818b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640cc646600200200644b30010018a60103d87a80008992cc004cdd7981b80099ba548010cc0e8c02ccc0e8dd480225eb812f5c1130163303a374e66074606e00266074607000297ae04bd7044cc00c00cc0f0009035181d000a0703756600e60666ea8054dd7181b18199baa0019800912cc004006297ae089981b1819981b80099801001181c000a06a9112cc004cdc48012400110018cc00400e66e10009201499b8b3370066e14009201448180005003206491111919800800802912cc004006200b13259800800c4cc010c0f000801a26600a60780046600600600281d0c0f00050394dd6180898191baa01448888c8c8c8cc88c966002003159800980c181d9baa0018992cc00400604d13259800800c09e04f027813c4cc89660020030298992cc0040062b300130450028acc004c074c100dd5000c4c96600200302b8992cc004006264b3001001816c4c96600200313259800800c0be264b30010018992cc00400606313259800800c4c9660020030338992cc004006264b300100181ac4c96600200313259800800c0de264b30010018992cc00400607313259800800c4c96600200303b8992cc004006264b300100181ec4c96600200303e81f44cc89660020030408992cc0040062b3001305c0028cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c0d0c15cdd500344c9660020030428992cc004006087043821c10e26644b3001001822c4c966002003046823411a08d1332259800800c122264b3001001824c126093049899912cc00400609713259800800c13209904c82644c96600260d000713304100f225980080146600201f102b827a06e8992cc0040062b300130433066375400313259800800c146264b3001001829414a26644b300100182a44c96600200305582ac15626644b300100182bc4c96600200305882c4162264b300130740038acc00401e0b313259800800c16a0b505a82d44cc896600200305c8992cc0040060bb05d82ec176264b3001307900389808183c808c1790761bae00141e460ec00283a0dd7000983a80420ec307300741c505941c46eb40060b083a0c1c400506f1bad001307000282aa0e2306e00141b06eb0004c1b400a0a505241b860d60028348c19cdd5000c14106441420a105082820d83069002419d04d41946eb80050681832800a0c6375c00260c80048328c1880050601bae0013061002418860be00282e8dd7000982f00120be305c001416860b06ea801a08282aa0828142082814208281420828142082814208281420828142082814208282ca083041820c10505d182d000a0b0375800260b200503e81f20b43057001415460ae00503c81e40f207882c0c154005053182a80140ea07503a81d20ac3053001414460a600503881c40e207082a0c14400504f182880140da06d03681b20a4304f0014134609e00503481a40d20688280c13400504b182680140ca065032819209c304b0014124609600503081840c20608260c124005047182480140ba05d02e817209430470014114608e00502c81640b20588240c11400504318209baa001815207c815208481540aa05502a411860860028208dd700098210012086304000140f860786ea800604a81ca04b025812c09504129981c99b964912467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea40dd22010013259800980c181d9baa00189929981d99b9649113666f756e642070726f7879207574786f3a3a2000373266008002910100132598009810981e9baa0018992cc0040062b3001301b303e375400313259800800c0ee264b300100181e40f207903c899912cc00400607d1325980098240014401a07e8228c1180050441bae0013045002411860860028208c0fcdd5000c0e903c40ea07503a81d20883041303e3754003153303c49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640ec603a607a6ea8c070c0f4dd5000981f981e1baa0018a9981d24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640e46601400c4646600200260066eacc070c0f4dd5180e181e9baa0022259800800c528456600266e3cdd7182080081d4528c4cc008008c10800503b207e300100130070072223259800801c4c8c8cc88cc024008cdc524501280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100c20825980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81d903b1bac303e002375a60780026466ec0dd4181e0009ba7303d001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6082003337149101023a200098008054c10800600a805100a182200144ca6002015304100199b8a489023a200098008054c108006600e66008008004805100a182200120843044001410466e29220102207d0000340f86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a0028039009207c3758007133005375a0060051323371491102682700329800800cc050dc68014cdc52450127000044004444b30013371000490004400626466453001006980c802ccdc599b800025980099b88002480522903045206e410066e2ccdc0000acc004cdc4000a4029148182290372080004401866e0c00520203370c002901019b8e00400240f46eb800d0411b8a4881022c20002232330010010032259800980b800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002301000189980299b8400148050cdc599b803370a002900a240c000681c10381801801844464b3001300e0018992cc00400600713259800800c01200900480244c9660026072007006802a06c375c00281c8c0d800503418191baa0048acc004c034006264b3001001801c4c966002003004802401200913259800981c801c01a00a81b0dd7000a072303600140d060646ea8012004817902f18181baa00345901c0c078004c064dd500fc5268a9980ba491856616c696461746f722072657475726e65642066616c7365001365640581" + : + "5922b1010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a37540072300e300f300f001918071807800cdd2a4001223233001001003223300300130020029b87480026e1d20029b874801a6e1d20089b874802a6e1d200c91807180798079807980798079807980798079807800cdd2a400491111111111114c00488c8cc00400400c896600200314c0103d87a80008992cc004c0100062601e6603c00297ae089980180198100012034301e001407122232598009806000c4c8c96600260420050048b203c375c603e00260366ea800e2b3001300b0018992cc004c08000626601c6eb0c07c00489660020050058cc00401e6042005130013022002401c80fa2c80e8c06cdd5001c5660026026003132598009810000c4cc038dd6180f800912cc00400a00b19800803cc08400a260026044004803901f45901d180d9baa0038acc004c0280062646644b300130220018998081bac30210012259800801401e33001009981180144c004c09000900920428b203e375a603e002604000260366ea800e2b30013009001899192cc004c08400a0091640786eb4c07c004c06cdd5001c56600260100031323259800981080140122c80f0dd6980f800980d9baa0038acc004c01c00626464b3001302100280245901e1bae301f001301b375400716406480c90192032406480c9019180c9baa00291192cc004c02c00626464b3001302000280245901d1bae301e001301a37540071598009805000c4c8c96600260400050048b203a375c603c00260346ea800e2c80c1018180c1baa002912cc004c028c060dd500144c8c8c966002604000513232598009807800c566002603c6ea800a00d16407d1598009807000c4c8c96600260480050088b2042375a6044002603c6ea800a2b300130160018acc004c078dd5001401a2c80fa2c80e101c2038301c3754002603e00716407464b3001301c0018acc004cdc4a400860360031689806180d800a0348b203a3754603c002603c00260326ea800a2c80ba44b3001300a30183754005132323322598009810801c0162c80f0dd6980f0009bae301e002301e0013019375400516405d2232598009805800c4c8c96600260400050048b203a375a603c00260346ea800e2b3001300a0018acc004c068dd5001c00a2c80da2c80c1018180c1baa0024888888cc88cc8a6002664464b30013015302337540031302432337606050002605060520026eb0c09cc090dd5000c590221919800800801912cc004006298103d87a80008992cc004cdd7981280099ba548010cc0a0c040cc0a0dd480225eb812f5c11301933028374e66050604a00266050604c00297ae04bd7044cc00c00cc0a80090241814000a04c3756601860426ea8060dd7181218109baa002912cc004c050c088dd500144c8c8c8ca60026eb4c0a80066eb4c0a800e60540049112cc004c0b8012266014605a00e26601e0020111640ac302a00130290013028001302337540051640852259800980a18111baa002899191919194c004dd61815800cdd698158024dd69815801cc0ac0092222598009818002c4cc030c0bc0244cc0440044c8cc8966002606600700d8b2060375c60600026eb8c0c0014c0c00122c8168605600260540026052002605000260466ea800a2c810922259800980a98119baa003899191919912cc004c0b400e264b3001301b30293754003132323232323298009819800cdd61819802cdd698198024dd69819801cc0cc0092222259800981c80344cc09cdd6181c005912cc00400a26605200c44b300100289980e80289980e804899192cc004c0b0c0e8dd5009c4c8c8c9660026084005132332259800981900144c966002608c0031330343758608a00244b300100280244cc084c11c0084c004c12000904545904318209baa0038acc004c0c400a264b3001304600189981a1bac304500122598008014012266042608e004260026090004822a2c8218c104dd5001c5660026072005132598009823000c4cc0d0dd61822800912cc00400a0091330213047002130013048002411516410c60826ea800e2b300130300028992cc004c1180062660686eb0c11400489660020050048998109823801098009824001208a8b208630413754007159800981780144c966002608c0031330343758608a00244b300100280244cc088c11c0084c004c12000904545904318209baa0038acc004c0b800a264b3001304600189981a1bac304500122598008014012266044608e004260026090004822a2c8218c104dd5001c566002605a005132598009823000c4cc0d0dd61822800912cc00400a0091330213047002130013048002411516410c60826ea800e2b300130080028992cc004c1180062660686eb0c11400489660020050048998109823801098009824001208a8b2086304137540071640fc81f903f207e40fc81f903f207e303e3754002264b300130310018992cc004c11400626604c608800200f16410860806ea800e2b300130300018992cc004c114006264b3001303330413754003132323259800982480144cc0acc12000c4cc0ac00402e2c8230c11c004c11c004c108dd5000c590401822000c5904218201baa0038b207c40f8607c6ea8008c10400e2c81f8c100004c100004c0ecdd5009c59039099816009912cc00400a33001303f303c3754606060786ea806e45300132330010010032259800800c528456600266ebcc10cc100dd5182198201baa30343040375460860026054660846ea400d2f5c114a3133002002304400140f8820a94294503c488c8cc00400400c896600200314bd7044cc896600266ebcc114c108dd5182298211baa3036304237540046058660886ea40152f5c113304400233004004001899802002000a0803043001304400141052302d303c37546080646600200200444b30010018a5eb84103d87a80008101800044c8cc89660033001303230413754608a0074a14a2820226608930014a14c103d87a8000a60103d87980004100660886e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11c00400e29462660040046090002821104544cc112600294298103d87a8000a60103d87980004100660886e9c0092f5c11330449800a51a60103d87a8000a60103d87980004100660886e9ccc110dd400080125eb8104020803758608660880026eb4c10c008cc008008c10c00504048896600200514c103d87a80008acc004c0c00062606466082608400497ae08cc00400e6086005337000029000a00640f482024464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208489980280298240022084375c60820026eacc108004c1100050420a5eb7bdb1826e012002911194c0040060090034004444b30010028acc00400629462941043456600200314a11598009980218228011bad30450018cc00400e608c0053046001400d14a0820104320869b81480024608060826082608200322598009817981e9baa002899192cc004c11000a0071641046eb4c108004c0f8dd500145903c48c100c104c104c104c1040064608060826082608260826082608260826082003222329800800c01200680088896600200510018cc00400e608c005330043045002001400c821a4466e0ccdc10011bad3033303e37540026eb4c0c8c0f8dd5000cdc424001371e911045553447200912cc004c0bcc0f4dd500144c8c8c8ca6002608a003304500398228012444b3001304900489981418240038998128010992cc004c0dc0062646644b3001304d0018991919912cc004c14400e0211641386eb8c138004dd7182700118270009bac304c0018b2094375a60940026096002608c6ea800a2b3001303600189919912cc004c134006264646644b3001305100380845904e1bae304e001375c609c004609c0026eb0c1300062c8250dd69825000982580098231baa0028acc004c0f8006264653001375a6096003304c0019bad304b002488966002609e005132323322598009829801c04a2c8280dd718280009bae305000230500013758609c005164130304b00130463754005159800981a800c4c8cc8966002609a003132323322598009828801c0422c8270dd718270009bae304e002304e001375860980031641286eb4c128004c12c004c118dd50014566002606800313232598009826001402e2c8248dd6982500098231baa0028acc004c0cc006264646644b3001304e003806c5904b1bad304b001375a60960046096002608c6ea800a2b30013032001899192cc004c13000a0171641246eb4c128004c118dd50014566002601a00313232598009826001402e2c8248dd6982500098231baa0028b20884110822104420884110822104418221baa0018b208c182280098220009821800981f1baa0028b20789119813801119baf3042303f37540026e9c0092222222222222222222980098271baa0139112cc004c04c00a2653001001802400e90002002222259800801c56600200510018b20ae8cc00401260b4007305a00299912cc004c01c00a266e0000cdd69826182c1baa0028b20ac3059003375a60b200480210574590504c03c03e44b30010018a40011300f33002002305500141492259800800c520008980799801001182a800a0a491119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c82b226600a00a60b800882b0dd7182a8009bad3056001305800141586602400800629000496600266e20005200089806000c400504e489660020031480022601e6600400460aa002829246022003223259800982518289baa001899198030008acc004cdd7980718299baa00330563053375400915980099baf30473053375400260ac60a66ea800e200316414516414460aa60a46ea80062c8280c118c144dd5182298289baa0024888888888a6002600e00f3006006912cc004cdc4000a400114c0103d87a8000899805001000a0b29801801a4444646644b300130510118cc004dd6183198301baa024983198301baa03f982a18301baa0414889660026604c6eb0c198c18cdd502d1bae301e30633754603660c66ea80062b30019800998129bac3066306337540b46eb8c160c18cdd5180d98319baa0019bac3057306337540053758609c60c66ea80052225980099b87300c003300c0068acc004c03c00a33001003801488c96600260b460d06ea800626464b3001305c306a37540031323298009980f804000cdd6181318369baa0049bad307000248896600260c260de6ea800e2b30013371264664466e0ccdc019b80337040026eb4c1a0c1ccdd5001801240020046eb4c194c1c4dd50009bad30653071375401060e660e06ea800e60026eacc190c1c0dd5183218381baa00a9bae30730029bae30733074002407115980099b87001375a60c860e06ea801e266ebcdd3802181498381baa0078a5041b914a083722c83706eb0c1bcc1c0004c1acdd5000c52820d2305f306a37546602400800260d860d26ea80062c8338cc03402000502345906445906422b300198009bac3058306337540b50039bac30663063375400533065305730633754603660c66ea8004cc195301054455534472004bd702008899b879800800c16a90004dd6982c18319baa0029bad301e30633754005003401530010039bac30663063375400523019375a60b060c86ea800501345906145906145906122b300130500118cc004dd6183198301baa024983198301baa03f982a18301baa0414889660026604c6eb0c198c18cdd502d1bae301e30633754603660c66ea80062b30019800998129bac3066306337540b46eb8c160c18cdd5180d98319baa0019bac30573063375400533065305730633754603660c66ea8004cc195301054455534472004bd702444b30013370e6018006601800d159800980780146600200700291192cc004c168c1a0dd5000c4c8c96600260b660d46ea800626464b3001337120033001375660c260da6ea8c184c1b4dd5003cdd718380044dd71838183880420328acc004cdc380098149bad3061306d375400913375e60e060e2004604c60da6ea8012294106b452820d6375a60de00260d66ea80062941069182f98351baa33012004001306c3069375400316419c6601a010002811a2c83222c8321159800cc004dd6182c18319baa05a9bac3066306337540053758609c60c66ea80052225980099b87300d002300c0068cc00401a005223259800982d18341baa0018cc004c1b0c1a4dd5000cdd6181118349baa0039980d8021bac3022306937540069112cc004c174c1acdd5000c56600266ebcc1bcc1b0dd5001983798361baa306f306c375400d15980099baf3061306c375400660c060d86ea8c1bcc1b0dd500344cdc3cc004dd5983018361baa0039bae306f0029bae306f3070002406066044602e6eb4c180c1b0dd5003183798361baa0018a5041a914a083522c835116419c6601a00a002811a2c832113370f300100182d520009bad305830633754005375a603c60c66ea800a006802a6002007375860cc60c66ea800a466e20dd6982c18321baa001480010134590614590614590612264b3001304d0128cc004dd6183218309baa025983218309baa040982a98309baa0424889660026604e6eb0c19cc190dd502d9bae301f30643754603860c86ea80062b300133225980099b87300c002300c0058acc004c03c00633001002800c88c96600260b460d06ea800626644b30013063306a37540031323301f00115980099baf3027306c375400660de60d86ea801a2b30013375e60c060d86ea8004c1bcc1b0dd5001c4c96600260b260d86ea8006266e1cdd6983818369baa001375a60c260da6ea8012294106b183098361baa0018b20d48b20d4306e306b37540031641a460d860d26ea8004c178c1a4dd5182e98349baa0038b20ce3300d007001408d1641911641906604c6eb0c19cc190dd502d9bae305930643754603860c86ea8004dd6182c18321baa0028acc00660026eb0c164c190dd502dc00e6eb0c19cc190dd50014cc198c160c190dd5180e18321baa001330664c01054455534472004bd70200a8cc004dd6982c98321baa0029bad301f306437540059800801cdd6183398321baa0029180d1bad30593065375400280a2660466eacc074c190dd502d9bae305830643754603860c86ea800522223232325980099b8759800982e18078024520008acc004c1bc012264b30013020375c60d60031375a60d80031641a860dc0091641b083480162b30013370e66e04dd6983718359baa306e002375a60dc60d66ea8c1b800c0162660166eb0c158c1acdd5004119182f4c00400e6eb8c1c00066eb8c1c0c1c40050191bac306f306c37540031641a51641a46eacc1b4c1b8004c1b400660020bf375c60d660d06ea8c080c1a0dd5002c01200680591641891641891641888acc004c0a004a33001375860c860c26ea809660c860c26ea810260aa60c26ea810922259800998139bac3067306437540b66eb8c07cc190dd5180e18321baa0018acc00660026604c6eb0c19cc190dd502d9bae305930643754603860c86ea80066eb0c160c190dd50014cc198c160c190dd5180e18321baa001330664c01054455534472004bd702444b30013370e601a006601a00d159800980800146600200700291192cc004c16cc1a4dd5000c4cc896600260c860d66ea8006264660400022b30013375e605060da6ea800cc1c0c1b4dd5003456600266ebcc184c1b4dd5000983818369baa0038992cc004c0d4c1b4dd5000c4c96600266e2400660026eacc18cc1bcdd5183198379baa0089bae30720099bae30723073009406d13370e00260566eb4c18cc1bcdd5002c52820da375a60e260dc6ea8006294106c183118369baa0018b20d68b20d6306f306c37540031641a860da60d46ea8004c17cc1a8dd5182f18351baa0038b20d03300e00800140911641951641948cc004dd6982c98321baa0029bad301f306437540059800801d2000912cc004cdc41bad305a30663754004900044cdc00009bad305a3066375400516419080da660466eacc074c190dd502d9bae305830643754603860c86ea800522223232325980099b8759800982e18078024520008acc004c1bc012264b30013020375c60d60031375a60d80031641a860dc0091641b083480162b30013370e66e04dd6983718359baa306e002375a60dc60d66ea8c1b800c0162660166eb0c158c1acdd5004119182f4c00400e6eb8c1c00066eb8c1c0c1c40050191bac306f306c37540031641a51641a46eacc1b4c1b8004c1b400660020bf375c60d660d06ea8c080c1a0dd5002c01200680591641891641888a50417c82f888c8cc00400400c896600200314a315980098019833800c4cc008008c1a0006294106220ca417882f0888888cc88ca60026eacc1a8c1ac00664660020026eb0c14cc1a0dd5005112cc004006297ae0899835983618349baa306c00133002002306d00141a959800982c1805801c520008acc004c1ac00e264b3001301c375c60ce0031375a60d000316419860d40071641a08329222598009919800800802112cc0040062946264664466446600400400244b30010018801c4c8cc89660026600a00a60f000915980099b8f007489008a518991919800800807112cc00400629422b30013375e60f40026e9c00e294626600400460f600283a90781983b1ba900733076375200497ae041c914a08390dd718388009bad3072001307400141c86eacc1bc00cdd718360009980180198388011837800a0da8acc004cdc399b81375a60da60d46ea8c1b4010dd6983698351baa306d0050018992cc004cdc3cc004dd6182b18359baa00da400122332259800cc004c18000694294506d44c96600266e24cc0980040166002013375c60e6007375c60e660e800680e2266e000100062c8370cdc1000802c400d06d1bac3070306d375400465300100ba4001225980099baf3029307037540046e9c00e266e00004dd6983218381baa0028800a0dc40946eb0c1c0c1b4dd500120443370200401710028b20d259800980f8054520018a400483422c83422c834060d4002660466eacc074c190dd50029bae305830643754603860c86ea801a600200b375c60ce60c86ea8c070c190dd5003400e004803888896600266e1cc024008c02000e33001003801488c96600260ac60c86ea8006264b30013375e60d260cc6ea8004c1a4c198dd5183498331baa0048acc004cdd7982d98331baa001305a3066375460d260cc6ea8012266e1e60026eacc168c198dd5000cdd71834802cdd7182d002a0243011375a60b460cc6ea80122941064452820c830683065375400316418c6601200c00280fa2c83008888c96600260a660c26ea8006264b30013375e60cc60c66ea8c198c18cdd5182b98319baa001304d33065375200a97ae08acc004c14e60026eacc15cc18cdd5182b98319baa001802d220108747265617375727900403d13259800982e18319baa0018991980f8008992cc004c15cc194dd5000c4c96600266ebcc1a8c19cdd5183518339baa001305133069375201297ae08acc004c15e60026eacc16cc19cdd5000c02691108747265617375727900404d13259800983018339baa001899198118008acc004cdd7981218349baa0034c0103d87a800089983580299835800998359ba6329800800cdd5982f18351baa00499198008009bab305f306b375460be60d66ea8024896600200314bd6f7b63044c8cc1bccdd818360009ba63233001001375660dc00444b30010018a5eb7bdb182264660e466ec0c1bc004dd418161bad3070001330030033074002307200141c06600600660e200460de00283690011112cc00400a2003132332298008034c1cc016646600200200a44b300100189983999bb037520086e9800d2f5bded8c113298009bae30710019bab3072001983b0012444b300133720010007133077337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820ee880144cc1e0cdd81ba9009374c00200483a0ca6002003008801a002222598008014400626466453001006983f802cc8cc004004014896600200313307f337606ea4010dd4001a5eb7bdb1822653001375c60fa003375a60fc00330820100248896600266e4002000e2661060266ec0dd48041ba80070058acc004cdc7804001c4c96600260e600310028998420099bb037520126ea00040090800119b800070028998418099bb037520066ea0008cc01801800507f20fe184000800a0fc40186eb8c1e0004dd6983c800983d80120f289983b99bb037520066e98008cc01801800507320e6183a000a0e440186eb8c1b0004dd59836800983780120da4bd70459067183598341baa0018b20cc305c3067375400316419516419460d260cc6ea80062c8320cc028dd6182d18329baa00800530673064375400316418860b060c66ea8c15cc18cdd5000c59061459061183298311baa0018b20c033006375860c860c26ea801000844c8cc896600260860031332259800981918201baa002899191919912cc004c12800e264b3001303830463754003132323322598009827801c4c966002607a00313232598009829001403a2c8278dd7182800098261baa0078acc004c0f00062b3001304c375400f00c8b209a8b2094412860946ea801a2c8260dd718260009bae304c002304c00130473754003164114609200b16411c6eb8c11c004c11c008c11c004c118004c104dd500145903f1821000898021821802c590401bae304000130410013758607e00481e8dc3a401d1323002303e003375a607800481d2264600460780066eb4c0e80090384590360c0cc004c0c8004c0c4004c0c0004c0bc004c0a8dd5000c590281816002c5902a1bac302a001302a002302a00130290013024375400716408832323259800980998109baa00189919912cc004c0a4006264b3001301730253754003132323232323232323232329800981a000cc0d002a60680133034008981a003cc0d001a606800b3034004981a001cdd6181a00124444444444b3001303f00b89980f181f00a89980f00489980f00409980f00389980f00309980f00289980f00209980f0018acc004c0b0c0e8dd500144c8c8c8ca60026eb8c1080066eb8c1080126eb8c10800e6eb8c1080092222598009823802c4cc0d4024896600200513302701410248992cc004c0dcc114dd5000c4c8c8c8cc8966002609e007132323322598009829801c4c02cc14c0322c8280dd718280009bae305000230500013758609c00b1641306eb4c130004dd698260011826000982580098231baa0018b208830480024119164110304200130410013040001303b37540051640e51640f030340013033001303200130310013030001302f001302e001302d001302c001302b0013026375400316409060500031640986eb8c098004c09c004c088dd5000c59020192cc004c04cc084dd5000c4c966002603660446ea8006264b3001301530233754003132323322598009816001c40162c8148c0a4004dd71814801181480098121baa0018b2044302630233754003164084602e60446ea8c058c088dd5181298111baa0018b20403300a3758602a60426ea80608c8cc004004c00cdd5980b98119baa30173023375400444b30010018a508acc004cdc79bae30270010218a518998010011814000a0444094600200244b30010018a5eb822660466040604800266004004604a00281108966002602460406ea800a2646464b3001302800289980318138018992cc004c0580062b3001302537540050058b204c8acc004c05400626464b3001302b002803c590281bae302900130253754005159800980e800c4c8c96600260560050078b205030290013025375400516408c811902318119baa0018b204a302600130260013021375400516407c600a00a44b30013010301e3754005132323259800981300144cc024c09400c4c9660026028003132598009814000c4c8c966002602e003132598009815800c4cc038c0a80040262c8140c098dd50014566002602c003132323298009bad302c0019bad302c0039bad302c002488966002606000900e8b205a1816000981580098131baa0028b2048409060486ea8004c09c0062c8128c08cdd50014566002602600315980098119baa002802c5902445902120423021375400316408c60480026048002603e6ea800a2c80e88b2010180480098021baa0098a4d1365640081", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolOrchestratorProtocolOrchestratorWithdraw { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "592899010100222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0059bae0049bae0039bae0024888888888888a60022a6600c921266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998032492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a998032493172656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e00164889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038992cc00400a264646466453001222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc004006264b3001001804c4c96600200300a805402a264b3001302b0038cc00402633001004806402d00e402d00f402d0281bad001805205630280014098605000500880440220108148c0980050241bad0013025002802a04c302300140846046005003801c00e0068120c08400501f180e9baa003800a0349112cc004c040c070dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001302e0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001303300380a404d0301bae00140cc60600028170dd700098178012060302d00140ad00e404500e404900e40ac6eb000601b00d40b860560028148c0ac00a01700b805c02d02c1814800a04e375a002605000500840a4604c0028120dd6800981280140150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a488c8cc00400400c88cc00c004c00800a44464b300130110018992cc00400600713259800800c0120090048992cc004c09400e00d00540886eb40060088128c088005020180f1baa0048acc004c0240062b3001301e3754009003801203e8012036406c60386ea800e444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c4c966002604400315980099b8948010c08400600d13259800981380244c966002602e00315980098121baa006804c0210254566002601e00313259800800c026264b3001001805402a015132598009815801c0320168140dd6800c02902b1814000a04c3024375400d159800980b000c56600260486ea801a01300840950084084810902118111baa005803a048300d3021001407d006408c6ea800600b005802c0150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a244444b30013012301e375401913259800800c05a264b30010018992cc00400603113259800800c4c96600200301a8992cc00400603701b8992cc004c0a800e2b300130193025375400d13259800800c076264b300100180f407a26644b300100181044c966002003021810c4cc89660020030238992cc00400604902481244cc89660020030268992cc00400604f027813c4cc89660020030298992cc004006264b3001001815c4c966002003159800981d00144cc068038896600200513301c00d225980080146600200f19800802c660026e1d20089b874802a6e1d200c4888c9660026062607a6ea8072264b300100181ac4c96600200313259800800c0de264b30010018acc004c11800a26644b300130370018992cc00400607713259800800c0f2079132598009825801c4cc0ac00489660020050078992cc00400633001001898011827001c10102f4102081040820209e304c002412903d41206eb000607903c412c60900028230c110dd5002c566002605e00313259800800c0ee264b300100181e40f2264b3001304b003899815800912cc00400a00f13259800800c6600200313002304e003820205e8204102081040413c6098004825207a8240dd6000c0f20788258c12000504618221baa0058acc004c0d8006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b159800981c000c4c96600200303b8992cc00400607903c8992cc004c12c00e26605600244b3001002803c4c96600200319800800c4c008c13800e080817a081040820410104f1826001209481ea090375800303c81e20963048001411860886ea80162b3001300a0018992cc00400607713259800800c0f2079132598009825801c4cc0ac00489660020050078992cc00400633001001898011827001c1010304102081040820209e304c002412903d41206eb000607903c412c60900028230c110dd5002c566002601200313259800800c0ee264b300100181e40f2264b3001304b003899815800912cc00400a00f13259800800c6600200313002304e00382020608204102081040413c6098004825207a8240dd6000c0f20788258c12000504618221baa0058acc004c020006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b15980099b8748038006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b03a41048209041208241048209041208213259800981b000c4c96600200303a8992cc0040062b300130490028cc00400601103b40b103b411903b81dc0ee0768250c11c00504518219baa0028acc004c0b8006264b300100181d44c96600200315980098248014566002607060886ea8006264b300100181e44c96600200313259800800c0fa264b30010018acc004c13400a330010038cc00400601903f40ad03f40ad03f412903f81fc0fe07e8270c12c005049182580140f607b03d81ea0983049001411c608a6ea80060768212076823207703b81dc0ed04a1823800a08a3043375400503941008200c104dd500098209baa00381c208681c40e2071038411c60880028210c11000a06d03681b40d90451821000a080303e375403903440ec26604203044b30010028cc0048896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801903f48888c8cc004004014896600200310058992cc004006266008609200400d133005304900233003003001411c609200282326e0120019182198221822000c8c10cc1100066e9520004888888c8c8c8c8c96600200313259800981f18251baa0028992cc00400608713259800800c4c9660020030458992cc004006264b3001001823c4c96600200313259800800c126264b30010018992cc00400609713259800800c4c96600200304d8992cc004006264b3001001827c4c96600200313259800800c146264b30010018992cc0040060a713259800800c4c9660020030558992cc0040060ad056899912cc0040060b113259800800c56600260cc0051980080b466002029198008094660020211980080746600201919800805466002011159800982a98309baa0068992cc0040060b513259800800c16e0b705b82dc4cc896600200305d8992cc0040060bd05e82f417a26644b300100183044c966002003061830c1860c31332259800800c18e264b300100183241920c90648992cc004c1c800e2660a401e44b30010028cc00403e33001302d307037540bb23074307530753075001911919800800801912cc00400629422b3001300330770018a51899801001183c000a0e241d52307430753075307530753075307530750019b804800a6e9520024888888c9660033001222323322598009838001456600260e060f86ea80062980103d87a80008a6103d879800041e91598009837801456600260de60f86ea80062980103d87a80008a6103d87b800041e913322598009839000c530103d87b80008acc004c1a8006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041f483e8dd6984100983f9baa0038a6103d879800041f083e0dd6984000983e9baa003307c375400283d107a183d1baa00130020033001003919191919912cc004c1c000a29422b3001306f0028cc004cdd7984000983e9baa0014c103d87b8000a50a5141e913233225980098398014528c56600260d6005133225980098369840809baa303f308201375400d13371000400313371200400283f8dd69841809840009baa003598009835983f9baa303d308001375400f100189806000a0fa8a5041f483e8c1f4dd50009bad308101307e375400861000260fa6ea800507a20f4307a375400260fc60fe00660fa60f46ea8004c1f0004c1e0dd5000cc0d0c1dcdd5003a444b3001306d3079375400313233009375860fc60f66ea81a48cdd7983f983e1baa001002307d307a375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1fcc1f0dd50014c1fcc1f0dd5000c8c8c96600260d460fc6ea8c20804c20c0400a2003132598009835800c4c02ccc20804dd418061bad308301308001375400497ae08acc004c1cc0062005100241f483e8c1f8dd5000a0f8308101001307d37540028029300103d87b8000a50a5141e51980099baf9800981c983e1baa002981c983e1baa001919192cc004c1a8c1f8dd518410098418080144006264b3001306b0018980599841009ba8303f375a6106026100026ea80092f5c11598009839800c400a200483e907d183f1baa00141f061020200260fa6ea8005005260103d8798000a50a5141e514a083c907920f2307d307a3754002600e60f46ea81a1077226464b30019800912cc0040062900044c01ccc008008c1fc00507c4c1f0c1f400664660020026eb0c0e0c1e8dd5033912cc004006297ae089983e9ba732323307f3080010023307f303b307d3754002660fe6ea4cc894cc1f4cdcb249165369675374727563747572652e636f6e746578743a200037326606e61040260fe6ea8005220100153307d3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a200037326606e607860fe6ea8005220100153307d3372c92011b5369675374727563747572652e65787465726e616c5f6161643a200037326606e607a60fe6ea8005220100153307d3372c9201165369675374727563747572652e7061796c6f61643a200037326606e601c60fe6ea800522010013253307e3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a20003732660706ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241f883f0dc68009bae308201307f375400266e28c008dd7181e183f9baa0013371460046eb8c0f4c1fcdd500098011bae300e307f3754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241f083e0dc6800981c9983fa610b4a5369676e617475726531003307f308001307d375461000260fa6ea8004cc1fd3010140003307f375200e97ae04bd70183f9840008009bac307e00133002002307f00141f13006307937540cf3756600460f26ea819d22222323233001001006223259800983a800c4c94cc20404cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660766ea400522010013259800983b9841809baa001899194c004dd7184480800cdd7184480984500800cdd71844808012444a6610e029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e001533087013372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660826ea40052201001533087013372c9201187665726966795f65643235353139207061796c6f61643a20003732660826ea40092201001533087013372c92011a7665726966795f65643235353139207369676e61747572653a20003732660826ea400d220100132533088013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660853001001a60103d87a8000a60103d8798000421c0491010010019800800c00a006b950c22404004dd61843809842009baa0018a998410099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660786ea400922010014a0840808c8cc004004024896600200314c0103d87a80008992cc004cdc79bc8375c611202002009130423308801374e00297ae08998018019845008012106023758611002002843008dd71842809841009baa0028acc004c1b4006264a661020266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660766ea0c014005220100132533082013372c92010e416c6c4f6620726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132330010010022259800800c528c5660026600c00c6110020031330020023089010018a50420804843008dd61842809841009baa0028acc004c1d0006264a661020266e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660766ea0c014005220100132533082013372c92010e416e794f6620726573756c743a20003732660793001001a60103d87a8000a60103d87980004204049101001001330110012330050050013758610a026104026ea800a2b3001307600189919912998418099b96490112436865636b696e672041744c656173743a200037326607a6ea0009220100132533084013372c92011941744c656173742073617469736669656420636f756e743a200037326607c6ea0005220100132533085013372c92011041744c6561737420726573756c743a200037326607f3001001a60103d87a8000a60103d8798000421004910100100133712006002646600200200444b30010018a400113322598009980500500144c0540062002843008c22804004cc008008c22c04005088011bad3086010013758610c02610e020026104026ea800a2b300130480018992998408099b9649111436865636b696e67204265666f72653a20003732660766ea0005220100132533082013372c92010f4265666f726520726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132325980098381842009baa0018acc004c1c0c21004dd518440098448080144cdc49bad30880130850137540020071337106eb4c22004c21404dd5000801a104028a50420804610e020026106026ea8c100c20c04dd50039bad30850130820137540051598009823800c4c94cc20404cdcb24910436865636b696e672041667465723a20003732660766ea0005220100132533082013372c92010e416674657220726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132325980098381842009baa0018acc004c1c0c21004dd518440098448080144cdc48019bad30880130850137540031337100066eb4c22004c21404dd5000a104028a50420804610e020026106026ea8c21804c20c04dd50039bad3085013082013754005132533081013372c920111436865636b696e67205363726970743a20003732660766ea4005220100132533082013372c92010f53637269707420726573756c743a20003732660793001001a60103d87a8000a60103d879800042040491010010013232330010010082259800800c528456600266ebc00cc21404c22404006294626600400461140200284180908701180719842809ba90014bd701bae308501308201375400483f907f20fe41fc83f907f1840009baa001300500544c8cc88cc008008004896600200314a115980099baf307b307f00130073307e375200697ae08a51899801001184000800a0f241f46eacc00cc1e8dd50341bae307c0018a9983ba481956578706563740a2020202020207361746973666965645f7061796c6f616473280a20202020202020207065726d697373696f6e2c0a20202020202020207369676e6174757265735f776974685f7061796c6f6164732c0a202020202020202073656c662e76616c69646974795f72616e67652c0a202020202020202073656c662e7769746864726177616c732c0a20202020202029001641d864b3001306c00189983d9ba90743307b307c3079375406097ae08acc004c1900062660f66ea41d0cc1ecc0d8c1e4dd501825eb822b3001303d00189983d9ba90743307b30023079375406097ae08acc004cdc3a401c00313307b37520e8660f6600c60f26ea80c12f5c1159800981f800c4cc1ecdd48399983d983e183e983e983e983e983c9baa0304bd704566002607c00313307b37520e6660f660f860fa60fa60fa60fa60fa60f26ea80c12f5c11598009836800c4cc1ecdd48391983d9804183c9baa0304bd7044cc1ecdd48391983d981b983c9baa0304bd7020ec41d883b107620ec41d883b0c1dcdd5183d983c1baa0082307b307c307c307c307c307c307c0018a9983aa4812f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c6629001641d06e50dd980320ce82ca264b30010018acc004c190c1c0dd5000c4c9660020030698992cc0040060d506a899912cc0040060d913259800800c1b60db06d899912cc0040060df13259800800c1c20e10708992cc004c1f800e2b3001007838c4c96600200307283941ca0e51332259800800c1d2264b300100183ac1d60eb0758992cc004c20c0400e260206106020230764200046eb800508301184000800a0fc375c00260fe010840008c1f401d07b41c507b1bad00183820fc307b00141e46eb4004c1e800a0da83d8c1e00050761bac001307700283541a9078183a800a0e63071375400306841b906883441a20d083b0c1cc009071419506f1bae00141c860de0028368dd7000983700120de306c00141a86eb8004c1ac00906c1834800a0ce375c00260d00048348c19800506418311baa00682ca0be82ca03082ca03082ca03082ca03082ca03082ca03082ca03082ca03082ca0c682cc1660b3059419c60c80028310dd60009831801415a0ac8320c18400505f183080141520a905482a20c4305f001417460be005052829414a0a48300c17400505b182e80141420a105082820bc305b001416460b600504e827413a09c82e0c164005057182c801413209904c82620b43057001415460ae00504a825412a09482c0c154005053182a801412209104882420ac3053001414460a6005046823411a08c82a0c14400504f1828801411208904482220a4304f001413460966ea800a0848240888ca6002003004801a00222232598009822000c4c9660020030068992cc00400600f007803c01e264b30013058003802c0210551bae001416060aa0028298c144dd5001c566002607800313259800800c01a264b3001001803c01e264b3001305800389981c000912cc00400a00f13259800800c6600201500189801182d801a014805c02e01700b417060b200482ba01082a8dd6000c01e00e82c0c15400505318289baa0038acc004c10c006264b300100180344c966002003007803c4c96600260b00071330380012259800801401e264b30010018cc00402a00313002305b003402900b805c02e01682e0c16400905740210551bac001803c01d058182a800a0a6305137540071598009822800c4c9660020030068992cc00400600f007803c4cc89660020030098992cc00400601500a8992cc004c16c00e26607600244b300100280544c96600200319800806c0062600460bc006806a01d00e807403905f182e00120b4805a0b0375800300a80520b6305800141586eb4004c15c00a00e82c0c15400505318289baa0038acc004c05c006264b300100180344c966002003007803c01e264b30013058003802c0210551bad001803a0b03055001414c60a26ea800e2b300130160018992cc00400600d13259800800c01e00f0078992cc004c16000e00b00841546eb400600e82c0c15400505318289baa0038acc004c054006264b300100180344c966002003007803c01e00f13259800982c001c01601082a8dd7000a0b03055001414c60a26ea800e00a827104e209c4138827104e209c304f3754005041820c1060828278c018c124dd519199129982519b9649012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea412122010013259800982018261baa00189929982619b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800982098271baa0018992cc0040062b30013043304f375400313259800800c126264b3001001825412a09504a899912cc00400609913259800982c8014401a09a82b0c15c0050551bae0013056002415c60a80028290c140dd5000c12104d412209104882420aa3052304f3754003153304d49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001641306018609c6ea8c02cc138dd5000982818269baa0018a99825a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164128646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd5980698281baa300d3050375400444b30010018a508acc004cdc79bae305400104d8a51899801001182a800a09c41491300b330510014bd7044cc00c00cc14c00904c1828800a09e30010013758600e60946ea80e0896600200314bd7044cc134c128c138004cc008008c13c00504c1800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100f20a05980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c825104a1bac304d002375a60960026466ec0dd418258009ba7304c001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a60a0003337149101023a200098008054c14400600a805100a182980144ca6002015305000199b8a489023a200098008054c144006600e66008008004805100a182980120a23053001414066e29220102207d0000341346eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900c209a3758007133005375a0060051323371491102682700329800800cc030dc68014cdc52450127000044004444b300133710004900044006264664530010069808802ccdc599b800025980099b88002480522903045206e413c66e2ccdc0000acc004cdc4000a402914818229037209e004401866e0c00520203370c002901019b8e00400241306eb800d0501b8a4881022c20002232330010010032259800981e800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003411c8238c01801913259800800c0da06d13259800800c0de264b300100181c40e2071038899912cc00400607513259800800c566002609200513259800981c98229baa0028992cc00400607b13259800800c4c96600200303f8992cc004006264b3001001820c4c966002003042821410a085132598009828801c566002608060986ea801a264b300100182244c966002003045822c11608b1332259800800c11e264b300100182441220910488992cc004c15c00e264b300130470018992cc00400609713259800800c13209904c82644c96600260b6007012826a0b0375c00282d8c160005056182a1baa00b8acc004c0fc0062b30013054375401700f82520aa82520a2414460a46ea802a09282a0dd7000a0ae305400141486eb8004c14c0090541828800a09e304d375400d043412904341386eb80050511827000a098304e0028204102081040413c60980028250c13000a07d03e81f40f904d1825000a0903046375400503c410c2600e609201103b411903b81dc0ee0768250c11c0050451bae0013046002411c60880028210dd6000c0da06c8228c108009040206080ea06080ea264b3001001818c0c606313230033040004375a0030314100607a00481da264b3001001817c0be05f1323003303e004375a00302f40f8607600481ca05881ba05902c81640b103b181c000a06c303800281540aa05502a40e4606c00281a0dd6800981a801409d0361819800a062375a002606400502440cc60600028170dd6000981780140860428180c0b400502b1bac001302c00280f407902d1815000a0503026375400d01c408d01c409c6eb000603701b40a8604e0028128c09c00a03301980cc0650281812800a046302500280bc05e02f017409860460028108c07cdd5006405501c088966002601c60346ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08c00a330010038992cc004c04c0062b30013020375400500780320428acc004c02c006264b3001001803c4c9660020030088044022011132598009813801c02a0128120dd7000a04e3024001408860406ea800a2b300130120018992cc00400600f13259800981300140260108118c09000502218101baa002803203a407480e8c078dd5000c0150084015020401600b005802a0483021001407c6042005003801c00e0068110c07c00501d180d9baa003800a030222598009807180d1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002604a007008803a044375a003006409460440028100dd700098108012044301f001407460366ea800e00280c088966002601a60326ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08800a330010038992cc004c048006264b3001001803c4c966002003159800981280144c966002602a00313259800800c02a264b30010018acc004c0a000a33001001806402d00e402d025402e01700b805a0523026001409060446ea800a2b3001300d0018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c0bc00e02701240b06eb40060228178c0b000502a1bad001302b00280720583029001409c6eb4004c0a000a0168148c09800502418111baa002804a03e407c60406ea8006010811201100880440210261811800a042301f37540051598009805000c566002603e6ea800a00f0064081006407080e0c074dd5000c015008401501f401600b005802a046302000140786040005003801c00e0068108c07800501c180d1baa003800a02e22232598009806800c4c9660020030038992cc0040060090048024012264b30013021003803401501e1bae0014084603c00280e0c068dd50024566002600a00313259800800c00e264b300100180240120090048992cc004c08400e00d00540786eb8005021180f000a038301a3754009002405c80b8c060dd50019b874800a01700b805c02d01a180b980a1baa0048acc004c02000e26464b30013009301537546032603400514a314a08098dd6980c000980a1baa0048b2022404430133014001301300445268a99804a491856616c696461746f722072657475726e65642066616c7365001365640201" + : + "5913f1010100222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0059bae0049bae0039bae00248888888888966003300130073754019370e90034dc3a4001370e90022444464653001300c3754003301000698080012444b300130060038cc004c04cc040dd5002488c8cc00400400c88cc00c004c00800a6e1d2002912cc004c024c044dd500144c8c8cc896600260340070058b202e375a602e0026eb8c05c008c05c004c048dd500145901024444646465300122598009808180c1baa0028991919194c004dd69810000cdd69810001cc08000922259800981200244cc028c08c01c4cc0340040222c81086040002603e002603c00260326ea800a2c80ba44b30013010301837540051323232323298009bac30210019bad30210049bad3021003981080124444b30013026005899806181280489980780089919912cc004c0a400e01b1640986eb8c098004dd7181300298130024590230c084004c080004c07c004c078004c064dd5001459017488c96600260220031323259800981000140122c80e8dd6980f000980d1baa0038acc004c0200062b3001301a37540070028b20368b2030406060306ea800a44b3001301030183754005132323259800981000144c8c966002602a003159800980f1baa00280345901f456600260180031323259800981200140222c8108dd69811000980f1baa0028acc004c0500062b3001301e37540050068b203e8b2038407080e0c070dd5000980f801c5901d192cc004c0700062b3001337129002180d800c5a26014603600280d22c80e8dd5180f000980f000980c9baa0028b202e4888966002602460346ea803226464646644b300130240038992cc004c060c080dd5000c4c8c8c8c8c8ca600260540033758605400b375a6054009375a6054007302a00248888966002606000d13301b3758605e01644b300100289980e803112cc00400a26602e00a26602e01233001370e90044dc3a4015370e9006244464b3001302b3033375402b132323259800981d80144c8cc8966002606200513259800981f800c4cc0a8dd6181f000912cc00400a009133025304000213001304100240f91640f060746ea800e2b300130280028992cc004c0fc0062660546eb0c0f800489660020050048998129820001098009820801207c8b2078303a3754007159800981800144c966002607e00313302a3758607c00244b300100280244cc094c1000084c004c10400903e45903c181d1baa0038acc004c0c800a264b3001303f0018998151bac303e0012259800801401226604a608000426002608200481f22c81e0c0e8dd5001c566002601400513259800981f800c4cc0a8dd6181f000912cc00400a009133026304000213001304100240f91640f060746ea800e2b300130090028992cc004c0fc0062660546eb0c0f800489660020050048998131820001098009820801207c8b2078303a3754007159800980400144c966002607e00313302a3758607c00244b300100280244cc094c1000084c004c10400903e45903c181d1baa0038acc004cdc3a401c00513259800981f800c4cc0a8dd6181f000912cc00400a009133025304000213001304100240f91640f060746ea800e2c81c1038207040e081c1038207040e0606e6ea80044c966002606000313259800981f000c4cc09cc0f400401e2c81d8c0e4dd5001c566002604e00313259800981f000c4c966002606460746ea80062646464b300130420028998121820801899812000805c5903f18200009820000981d9baa0018b2072303d0018b2076303937540071640dc81b8c0dcdd5001181d001c59038181c800981c800981a1baa0158b20641330220152259800801466002460726074607400323039303a0019ba54800244464b30013030001899192cc004c0fc00a0091640f06eb8c0f4004c0e4dd5001c566002604e00313259800981f000c4cc0a4dd6181e800912cc00400a00b19800803cc0fc00a260026080004803903d45903b181c9baa0038acc004c0bc006264b3001303e0018998149bac303d0012259800801401633001007981f80144c004c100009007207a8b2076303937540071598009818800c4c8cc8966002608000313302b3758607e00244b3001002803c660020133041002898009821001201240fd1640f46eb4c0f4004c0f8004c0e4dd5001c56600260120031323259800981f80140122c81e0dd6981e800981c9baa0038acc004c02000626464b3001303f00280245903c1bad303d001303937540071598009803800c4c8c966002607e0050048b2078375c607a00260726ea800e2c81b9037206e40dc81b9037206e30373754004911119912cc004c0c8c0e8dd500144c8c8c8c8c8c8c8c8c8c8ca60026092003304900a9824804cc124022609200f30490069824802cc12401260920073758609200491111111112cc004c15002e26602c60a602a26602c01226602c01026602c00e26602c00c26602c00a26602c00826602c0062b30013047304f375400513232323298009bae30570019bae30570049bae30570039bae3057002488896600260b800b133047009225980080144cc11405066002604860b46ea812e460bc60be60be60be0032232330010010032259800800c5284566002600660c200314a31330020023062001417082fa460bc60be60be60be60be60be60be60be003370090014dd2a4004911111192cc0066002444646644b3001305e0028acc004c178c198dd5000c530103d87a80008a6103d87980004195159800982e801456600260ba60cc6ea80062980103d87a80008a6103d87b8000419513322598009830000c530103d87b80008acc004c15c006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041a08340dd6983618349baa0038a6103d8798000419c8338dd6983518339baa00330663754002832906518321baa00130020033001003919191919912cc004c17800a29422b3001305d0028cc004cdd7983518339baa0014c103d87b8000a50a51419513233225980098308014528c56600260b00051332259800982d18359baa3036306c375400d1337100040031337120040028350dd6983698351baa00359800982c18349baa3034306a375400f100189806000a0d08a5041a08340c19cdd50009bad306b3068375400860d460ce6ea800506520ca3064375400260d060d200660ce60c86ea8004c198004c188dd5000cc0acc184dd5003a444b3001305b3063375400313233009375860d060ca6ea815c8cdd7983498331baa00100230673064375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1a4c198dd50014c1a4c198dd5000c8c8c96600260ae60d06ea8c1b0c1b400a200313259800982c000c4c02ccc1b0dd418061bad306d306a375400497ae08acc004c1840062005100241a08340c1a0dd5000a0ce306b001306737540028029300103d87b8000a50a5141911980099baf9800981818331baa002981818331baa001919192cc004c15cc1a0dd51836183680144006264b3001305800189805998361ba8337006eb4c1b4c1a8dd50012400297ae08acc004c1840062005100241a08340c1a0dd5000a0ce306b001306737540028029300103d8798000a50a51419114a0832106420c8306730643754002600e60c86ea8159062226464b3001980098331833800cc8cc004004dd6181798321baa0552259800800c52f5c1133067374e6464660d260d4004660d2606460ce6ea8004cc1a4dd4999119b8a489018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241a48348dc68009bae306c3069375400266e28c008dd7181998349baa0013371460046eb8c0d0c1a4dd500098011bae300e30693754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e18005208004002419c8338dc6800981819834a610b4a5369676e6174757265310033069306a3067375460d460ce6ea8004cc1a530101400033069375200e97ae04bd70183498350009bac306800133002002306900141993006306337540ab3756600460c66ea8155222232330010010052232598009830800c4c8c96600260c660d66ea8006264653001375c60e2005375c60e260e4003375c60e2002b9518388009bac306f306c375400314a08350c8cc004004020896600200314c103d87a80008992cc004cdc79bc8375c60e20020091303733070374e00297ae0899801801983900120d8375860e00028370dd7183698351baa0028acc004c160006264660020026eb0c1b8c1acdd5001912cc00400629462b300133005005306f0018998010011838000c52820d441b51598009830000c4cc038dd6183698351baa0022330040040018acc004c18800626466e24dd6983700099198008009bac306f30700022259800800c52000899912cc004cc02002000a26022003100141b460e00026600400460e20028370c1a8dd500145660026074003132332259800982d98361baa0028acc004c16cc1b0dd518381838801c4cdc49bad3070306d37540040031337106eb4c1c0c1b4dd5001000a0d68a5041ac60dc0026eb4c1b8c1acdd500198351baa3034306a375400b159800981c800c4c8cc896600260b660d86ea800a2b3001305b306c375460e060e20071337120026eb4c1c0c1b4dd500144cdc40009bad3070306d3754004835a294106b18370009bad306e306b375400660d46ea8c1b4c1a8dd5002c4c8c8cc004004018896600200314a115980099baf003306c30700018a518998010011838800a0d641b86016660d860da60d46ea80092f5c0834106820d041a0834106818341baa00144c8cc88cc008008004896600200314a115980099baf30653069001300733068375200697ae08a518998010011835000a0c8419c6eacc00cc190dd502b1bae30660018b20c23259800982d000c4cc194dd482f99832983318319baa02a4bd70456600260a200313306537520be660ca605a60c66ea80a92f5c11598009818800c4cc194dd482f99832980118319baa02a4bd70456600266e1d200e0018998329ba905f3306530063063375405497ae08acc004c0cc0062660ca6ea4178cc194c198c19cc19cc19cc19cc18cdd501525eb822b300130320018998329ba905e330653066306730673067306730673063375405497ae08acc004c16c0062660ca6ea4174cc194c020c18cdd501525eb822660ca6ea4174cc194c0b8c18cdd501525eb8106120c24184830906120c2418460c26ea8c194c188dd500411832983318331833183318331833000c5905f1b94376600c8992cc004c148c168dd5000c4c8c8c8cc896600260c8007132323322598009834001c4c02cc1a00322c8328dd718328009bae30650023065001375860c600b1641846eb4c184004dd6983080118308009830000982d9baa0018b20b2305d002416d164164305700130560013055001305037540051641391641443049001304800130470013046001304500130440013043001304200130410013040001303b37540051640e4600660726ea8c8c8c966002606660766ea8006264b30013033303c375400313259800981a981e9baa0018991919912cc004c11800e200b16410c60860026eb8c10c008c10c004c0f8dd5000c5903c1820181e9baa0018b20763007303c3754600c60786ea8c0fcc0f0dd5000c5903a19198008009bac3006303c375405c44b30010018a60103d87a80008992cc004c8cc004004c014dd59804981f9baa3009303f375400444b30010018a508acc004cdc79bae304300103d8a518998010011822000a07c410513007330400014bd7044cc00c00cc10800903c1820000a07c30010012259800800c52f5c113303d303a303e00133002002303f00140f0600200289919912cc004c0f000626644b300130313039375400513232323322598009821801c4c966002606e607e6ea8006264646644b300130480038992cc004c0f000626464b3001304b0028074590481bae30490013045375400f1598009819800c566002608a6ea801e01916411916410c8218c10cdd50034590451bae3045001375c608a004608a00260806ea80062c81f0c1080162c8200dd7182000098200011820000981f800981d1baa0028b2070303b00113004303c0058b2072375c607200260740026eb0c0e000903622646004606a0066eb4c0cc00903144c8c008c0cc00cdd69818801205e8b205a1815000981480098140009813800981300098109baa0018b203e30230058b20423758604200260420046042002604000260366ea80322c80c844b3001300f30173754005132323259800980f80144cc018c07800c4c9660026026003159800980e1baa002802c5901d4566002601400313232598009811001401e2c80f8dd71810000980e1baa0028acc004c04800626464b30013022002803c5901f1810000980e1baa0028b2034406880d0c068dd5000c5901c180e800980e800980c1baa0028b202c22598009807180b1baa00289919192cc004c07800a26600c603a006264b300130120018992cc004c08000626464b300130150018992cc004c08c0062660166044002013164080603c6ea800a2b3001300c00189919194c004dd69812000cdd69812001cdd698120012444b300130280048074590250c090004c08c004c078dd500145901c2038301c3754002603e00316407460366ea800a2b300130090018acc004c06cdd500140162c80e22c80c9019180c9baa0018b2036301c001301c001301737540051640544464b3001300e001899192cc004c07400a0091640686eb8c06c004c05cdd5001c566002600a0031323259800980e80140122c80d0dd7180d800980b9baa0038b202a4054602a6ea80091598009804001c4c8c966002601260226ea8c054c05800a294629410101bad3014001301037540091640388070601e6020002601e0088a4d1365640141", + Type.Tuple([ + PolicyId, + ScriptHash, + ScriptHash, + ScriptHash, + ]), + [ + proxyPolicyId, + mintValidator, + stakeValidator, + managementValidator, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolOrchestratorProtocolOrchestratorPublish { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "592899010100222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0059bae0049bae0039bae0024888888888888a60022a6600c921266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998032492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a998032493172656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e00164889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038992cc00400a264646466453001222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc004006264b3001001804c4c96600200300a805402a264b3001302b0038cc00402633001004806402d00e402d00f402d0281bad001805205630280014098605000500880440220108148c0980050241bad0013025002802a04c302300140846046005003801c00e0068120c08400501f180e9baa003800a0349112cc004c040c070dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001302e0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001303300380a404d0301bae00140cc60600028170dd700098178012060302d00140ad00e404500e404900e40ac6eb000601b00d40b860560028148c0ac00a01700b805c02d02c1814800a04e375a002605000500840a4604c0028120dd6800981280140150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a488c8cc00400400c88cc00c004c00800a44464b300130110018992cc00400600713259800800c0120090048992cc004c09400e00d00540886eb40060088128c088005020180f1baa0048acc004c0240062b3001301e3754009003801203e8012036406c60386ea800e444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c4c966002604400315980099b8948010c08400600d13259800981380244c966002602e00315980098121baa006804c0210254566002601e00313259800800c026264b3001001805402a015132598009815801c0320168140dd6800c02902b1814000a04c3024375400d159800980b000c56600260486ea801a01300840950084084810902118111baa005803a048300d3021001407d006408c6ea800600b005802c0150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a244444b30013012301e375401913259800800c05a264b30010018992cc00400603113259800800c4c96600200301a8992cc00400603701b8992cc004c0a800e2b300130193025375400d13259800800c076264b300100180f407a26644b300100181044c966002003021810c4cc89660020030238992cc00400604902481244cc89660020030268992cc00400604f027813c4cc89660020030298992cc004006264b3001001815c4c966002003159800981d00144cc068038896600200513301c00d225980080146600200f19800802c660026e1d20089b874802a6e1d200c4888c9660026062607a6ea8072264b300100181ac4c96600200313259800800c0de264b30010018acc004c11800a26644b300130370018992cc00400607713259800800c0f2079132598009825801c4cc0ac00489660020050078992cc00400633001001898011827001c10102f4102081040820209e304c002412903d41206eb000607903c412c60900028230c110dd5002c566002605e00313259800800c0ee264b300100181e40f2264b3001304b003899815800912cc00400a00f13259800800c6600200313002304e003820205e8204102081040413c6098004825207a8240dd6000c0f20788258c12000504618221baa0058acc004c0d8006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b159800981c000c4c96600200303b8992cc00400607903c8992cc004c12c00e26605600244b3001002803c4c96600200319800800c4c008c13800e080817a081040820410104f1826001209481ea090375800303c81e20963048001411860886ea80162b3001300a0018992cc00400607713259800800c0f2079132598009825801c4cc0ac00489660020050078992cc00400633001001898011827001c1010304102081040820209e304c002412903d41206eb000607903c412c60900028230c110dd5002c566002601200313259800800c0ee264b300100181e40f2264b3001304b003899815800912cc00400a00f13259800800c6600200313002304e00382020608204102081040413c6098004825207a8240dd6000c0f20788258c12000504618221baa0058acc004c020006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b15980099b8748038006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b03a41048209041208241048209041208213259800981b000c4c96600200303a8992cc0040062b300130490028cc00400601103b40b103b411903b81dc0ee0768250c11c00504518219baa0028acc004c0b8006264b300100181d44c96600200315980098248014566002607060886ea8006264b300100181e44c96600200313259800800c0fa264b30010018acc004c13400a330010038cc00400601903f40ad03f40ad03f412903f81fc0fe07e8270c12c005049182580140f607b03d81ea0983049001411c608a6ea80060768212076823207703b81dc0ed04a1823800a08a3043375400503941008200c104dd500098209baa00381c208681c40e2071038411c60880028210c11000a06d03681b40d90451821000a080303e375403903440ec26604203044b30010028cc0048896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801903f48888c8cc004004014896600200310058992cc004006266008609200400d133005304900233003003001411c609200282326e0120019182198221822000c8c10cc1100066e9520004888888c8c8c8c8c96600200313259800981f18251baa0028992cc00400608713259800800c4c9660020030458992cc004006264b3001001823c4c96600200313259800800c126264b30010018992cc00400609713259800800c4c96600200304d8992cc004006264b3001001827c4c96600200313259800800c146264b30010018992cc0040060a713259800800c4c9660020030558992cc0040060ad056899912cc0040060b113259800800c56600260cc0051980080b466002029198008094660020211980080746600201919800805466002011159800982a98309baa0068992cc0040060b513259800800c16e0b705b82dc4cc896600200305d8992cc0040060bd05e82f417a26644b300100183044c966002003061830c1860c31332259800800c18e264b300100183241920c90648992cc004c1c800e2660a401e44b30010028cc00403e33001302d307037540bb23074307530753075001911919800800801912cc00400629422b3001300330770018a51899801001183c000a0e241d52307430753075307530753075307530750019b804800a6e9520024888888c9660033001222323322598009838001456600260e060f86ea80062980103d87a80008a6103d879800041e91598009837801456600260de60f86ea80062980103d87a80008a6103d87b800041e913322598009839000c530103d87b80008acc004c1a8006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041f483e8dd6984100983f9baa0038a6103d879800041f083e0dd6984000983e9baa003307c375400283d107a183d1baa00130020033001003919191919912cc004c1c000a29422b3001306f0028cc004cdd7984000983e9baa0014c103d87b8000a50a5141e913233225980098398014528c56600260d6005133225980098369840809baa303f308201375400d13371000400313371200400283f8dd69841809840009baa003598009835983f9baa303d308001375400f100189806000a0fa8a5041f483e8c1f4dd50009bad308101307e375400861000260fa6ea800507a20f4307a375400260fc60fe00660fa60f46ea8004c1f0004c1e0dd5000cc0d0c1dcdd5003a444b3001306d3079375400313233009375860fc60f66ea81a48cdd7983f983e1baa001002307d307a375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1fcc1f0dd50014c1fcc1f0dd5000c8c8c96600260d460fc6ea8c20804c20c0400a2003132598009835800c4c02ccc20804dd418061bad308301308001375400497ae08acc004c1cc0062005100241f483e8c1f8dd5000a0f8308101001307d37540028029300103d87b8000a50a5141e51980099baf9800981c983e1baa002981c983e1baa001919192cc004c1a8c1f8dd518410098418080144006264b3001306b0018980599841009ba8303f375a6106026100026ea80092f5c11598009839800c400a200483e907d183f1baa00141f061020200260fa6ea8005005260103d8798000a50a5141e514a083c907920f2307d307a3754002600e60f46ea81a1077226464b30019800912cc0040062900044c01ccc008008c1fc00507c4c1f0c1f400664660020026eb0c0e0c1e8dd5033912cc004006297ae089983e9ba732323307f3080010023307f303b307d3754002660fe6ea4cc894cc1f4cdcb249165369675374727563747572652e636f6e746578743a200037326606e61040260fe6ea8005220100153307d3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a200037326606e607860fe6ea8005220100153307d3372c92011b5369675374727563747572652e65787465726e616c5f6161643a200037326606e607a60fe6ea8005220100153307d3372c9201165369675374727563747572652e7061796c6f61643a200037326606e601c60fe6ea800522010013253307e3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a20003732660706ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241f883f0dc68009bae308201307f375400266e28c008dd7181e183f9baa0013371460046eb8c0f4c1fcdd500098011bae300e307f3754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241f083e0dc6800981c9983fa610b4a5369676e617475726531003307f308001307d375461000260fa6ea8004cc1fd3010140003307f375200e97ae04bd70183f9840008009bac307e00133002002307f00141f13006307937540cf3756600460f26ea819d22222323233001001006223259800983a800c4c94cc20404cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660766ea400522010013259800983b9841809baa001899194c004dd7184480800cdd7184480984500800cdd71844808012444a6610e029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e001533087013372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660826ea40052201001533087013372c9201187665726966795f65643235353139207061796c6f61643a20003732660826ea40092201001533087013372c92011a7665726966795f65643235353139207369676e61747572653a20003732660826ea400d220100132533088013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660853001001a60103d87a8000a60103d8798000421c0491010010019800800c00a006b950c22404004dd61843809842009baa0018a998410099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660786ea400922010014a0840808c8cc004004024896600200314c0103d87a80008992cc004cdc79bc8375c611202002009130423308801374e00297ae08998018019845008012106023758611002002843008dd71842809841009baa0028acc004c1b4006264a661020266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660766ea0c014005220100132533082013372c92010e416c6c4f6620726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132330010010022259800800c528c5660026600c00c6110020031330020023089010018a50420804843008dd61842809841009baa0028acc004c1d0006264a661020266e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660766ea0c014005220100132533082013372c92010e416e794f6620726573756c743a20003732660793001001a60103d87a8000a60103d87980004204049101001001330110012330050050013758610a026104026ea800a2b3001307600189919912998418099b96490112436865636b696e672041744c656173743a200037326607a6ea0009220100132533084013372c92011941744c656173742073617469736669656420636f756e743a200037326607c6ea0005220100132533085013372c92011041744c6561737420726573756c743a200037326607f3001001a60103d87a8000a60103d8798000421004910100100133712006002646600200200444b30010018a400113322598009980500500144c0540062002843008c22804004cc008008c22c04005088011bad3086010013758610c02610e020026104026ea800a2b300130480018992998408099b9649111436865636b696e67204265666f72653a20003732660766ea0005220100132533082013372c92010f4265666f726520726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132325980098381842009baa0018acc004c1c0c21004dd518440098448080144cdc49bad30880130850137540020071337106eb4c22004c21404dd5000801a104028a50420804610e020026106026ea8c100c20c04dd50039bad30850130820137540051598009823800c4c94cc20404cdcb24910436865636b696e672041667465723a20003732660766ea0005220100132533082013372c92010e416674657220726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132325980098381842009baa0018acc004c1c0c21004dd518440098448080144cdc48019bad30880130850137540031337100066eb4c22004c21404dd5000a104028a50420804610e020026106026ea8c21804c20c04dd50039bad3085013082013754005132533081013372c920111436865636b696e67205363726970743a20003732660766ea4005220100132533082013372c92010f53637269707420726573756c743a20003732660793001001a60103d87a8000a60103d879800042040491010010013232330010010082259800800c528456600266ebc00cc21404c22404006294626600400461140200284180908701180719842809ba90014bd701bae308501308201375400483f907f20fe41fc83f907f1840009baa001300500544c8cc88cc008008004896600200314a115980099baf307b307f00130073307e375200697ae08a51899801001184000800a0f241f46eacc00cc1e8dd50341bae307c0018a9983ba481956578706563740a2020202020207361746973666965645f7061796c6f616473280a20202020202020207065726d697373696f6e2c0a20202020202020207369676e6174757265735f776974685f7061796c6f6164732c0a202020202020202073656c662e76616c69646974795f72616e67652c0a202020202020202073656c662e7769746864726177616c732c0a20202020202029001641d864b3001306c00189983d9ba90743307b307c3079375406097ae08acc004c1900062660f66ea41d0cc1ecc0d8c1e4dd501825eb822b3001303d00189983d9ba90743307b30023079375406097ae08acc004cdc3a401c00313307b37520e8660f6600c60f26ea80c12f5c1159800981f800c4cc1ecdd48399983d983e183e983e983e983e983c9baa0304bd704566002607c00313307b37520e6660f660f860fa60fa60fa60fa60fa60f26ea80c12f5c11598009836800c4cc1ecdd48391983d9804183c9baa0304bd7044cc1ecdd48391983d981b983c9baa0304bd7020ec41d883b107620ec41d883b0c1dcdd5183d983c1baa0082307b307c307c307c307c307c307c0018a9983aa4812f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c6629001641d06e50dd980320ce82ca264b30010018acc004c190c1c0dd5000c4c9660020030698992cc0040060d506a899912cc0040060d913259800800c1b60db06d899912cc0040060df13259800800c1c20e10708992cc004c1f800e2b3001007838c4c96600200307283941ca0e51332259800800c1d2264b300100183ac1d60eb0758992cc004c20c0400e260206106020230764200046eb800508301184000800a0fc375c00260fe010840008c1f401d07b41c507b1bad00183820fc307b00141e46eb4004c1e800a0da83d8c1e00050761bac001307700283541a9078183a800a0e63071375400306841b906883441a20d083b0c1cc009071419506f1bae00141c860de0028368dd7000983700120de306c00141a86eb8004c1ac00906c1834800a0ce375c00260d00048348c19800506418311baa00682ca0be82ca03082ca03082ca03082ca03082ca03082ca03082ca03082ca03082ca0c682cc1660b3059419c60c80028310dd60009831801415a0ac8320c18400505f183080141520a905482a20c4305f001417460be005052829414a0a48300c17400505b182e80141420a105082820bc305b001416460b600504e827413a09c82e0c164005057182c801413209904c82620b43057001415460ae00504a825412a09482c0c154005053182a801412209104882420ac3053001414460a6005046823411a08c82a0c14400504f1828801411208904482220a4304f001413460966ea800a0848240888ca6002003004801a00222232598009822000c4c9660020030068992cc00400600f007803c01e264b30013058003802c0210551bae001416060aa0028298c144dd5001c566002607800313259800800c01a264b3001001803c01e264b3001305800389981c000912cc00400a00f13259800800c6600201500189801182d801a014805c02e01700b417060b200482ba01082a8dd6000c01e00e82c0c15400505318289baa0038acc004c10c006264b300100180344c966002003007803c4c96600260b00071330380012259800801401e264b30010018cc00402a00313002305b003402900b805c02e01682e0c16400905740210551bac001803c01d058182a800a0a6305137540071598009822800c4c9660020030068992cc00400600f007803c4cc89660020030098992cc00400601500a8992cc004c16c00e26607600244b300100280544c96600200319800806c0062600460bc006806a01d00e807403905f182e00120b4805a0b0375800300a80520b6305800141586eb4004c15c00a00e82c0c15400505318289baa0038acc004c05c006264b300100180344c966002003007803c01e264b30013058003802c0210551bad001803a0b03055001414c60a26ea800e2b300130160018992cc00400600d13259800800c01e00f0078992cc004c16000e00b00841546eb400600e82c0c15400505318289baa0038acc004c054006264b300100180344c966002003007803c01e00f13259800982c001c01601082a8dd7000a0b03055001414c60a26ea800e00a827104e209c4138827104e209c304f3754005041820c1060828278c018c124dd519199129982519b9649012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea412122010013259800982018261baa00189929982619b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800982098271baa0018992cc0040062b30013043304f375400313259800800c126264b3001001825412a09504a899912cc00400609913259800982c8014401a09a82b0c15c0050551bae0013056002415c60a80028290c140dd5000c12104d412209104882420aa3052304f3754003153304d49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001641306018609c6ea8c02cc138dd5000982818269baa0018a99825a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164128646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd5980698281baa300d3050375400444b30010018a508acc004cdc79bae305400104d8a51899801001182a800a09c41491300b330510014bd7044cc00c00cc14c00904c1828800a09e30010013758600e60946ea80e0896600200314bd7044cc134c128c138004cc008008c13c00504c1800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100f20a05980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c825104a1bac304d002375a60960026466ec0dd418258009ba7304c001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a60a0003337149101023a200098008054c14400600a805100a182980144ca6002015305000199b8a489023a200098008054c144006600e66008008004805100a182980120a23053001414066e29220102207d0000341346eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900c209a3758007133005375a0060051323371491102682700329800800cc030dc68014cdc52450127000044004444b300133710004900044006264664530010069808802ccdc599b800025980099b88002480522903045206e413c66e2ccdc0000acc004cdc4000a402914818229037209e004401866e0c00520203370c002901019b8e00400241306eb800d0501b8a4881022c20002232330010010032259800981e800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003411c8238c01801913259800800c0da06d13259800800c0de264b300100181c40e2071038899912cc00400607513259800800c566002609200513259800981c98229baa0028992cc00400607b13259800800c4c96600200303f8992cc004006264b3001001820c4c966002003042821410a085132598009828801c566002608060986ea801a264b300100182244c966002003045822c11608b1332259800800c11e264b300100182441220910488992cc004c15c00e264b300130470018992cc00400609713259800800c13209904c82644c96600260b6007012826a0b0375c00282d8c160005056182a1baa00b8acc004c0fc0062b30013054375401700f82520aa82520a2414460a46ea802a09282a0dd7000a0ae305400141486eb8004c14c0090541828800a09e304d375400d043412904341386eb80050511827000a098304e0028204102081040413c60980028250c13000a07d03e81f40f904d1825000a0903046375400503c410c2600e609201103b411903b81dc0ee0768250c11c0050451bae0013046002411c60880028210dd6000c0da06c8228c108009040206080ea06080ea264b3001001818c0c606313230033040004375a0030314100607a00481da264b3001001817c0be05f1323003303e004375a00302f40f8607600481ca05881ba05902c81640b103b181c000a06c303800281540aa05502a40e4606c00281a0dd6800981a801409d0361819800a062375a002606400502440cc60600028170dd6000981780140860428180c0b400502b1bac001302c00280f407902d1815000a0503026375400d01c408d01c409c6eb000603701b40a8604e0028128c09c00a03301980cc0650281812800a046302500280bc05e02f017409860460028108c07cdd5006405501c088966002601c60346ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08c00a330010038992cc004c04c0062b30013020375400500780320428acc004c02c006264b3001001803c4c9660020030088044022011132598009813801c02a0128120dd7000a04e3024001408860406ea800a2b300130120018992cc00400600f13259800981300140260108118c09000502218101baa002803203a407480e8c078dd5000c0150084015020401600b005802a0483021001407c6042005003801c00e0068110c07c00501d180d9baa003800a030222598009807180d1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002604a007008803a044375a003006409460440028100dd700098108012044301f001407460366ea800e00280c088966002601a60326ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08800a330010038992cc004c048006264b3001001803c4c966002003159800981280144c966002602a00313259800800c02a264b30010018acc004c0a000a33001001806402d00e402d025402e01700b805a0523026001409060446ea800a2b3001300d0018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c0bc00e02701240b06eb40060228178c0b000502a1bad001302b00280720583029001409c6eb4004c0a000a0168148c09800502418111baa002804a03e407c60406ea8006010811201100880440210261811800a042301f37540051598009805000c566002603e6ea800a00f0064081006407080e0c074dd5000c015008401501f401600b005802a046302000140786040005003801c00e0068108c07800501c180d1baa003800a02e22232598009806800c4c9660020030038992cc0040060090048024012264b30013021003803401501e1bae0014084603c00280e0c068dd50024566002600a00313259800800c00e264b300100180240120090048992cc004c08400e00d00540786eb8005021180f000a038301a3754009002405c80b8c060dd50019b874800a01700b805c02d01a180b980a1baa0048acc004c02000e26464b30013009301537546032603400514a314a08098dd6980c000980a1baa0048b2022404430133014001301300445268a99804a491856616c696461746f722072657475726e65642066616c7365001365640201" + : + "5913f1010100222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0059bae0049bae0039bae00248888888888966003300130073754019370e90034dc3a4001370e90022444464653001300c3754003301000698080012444b300130060038cc004c04cc040dd5002488c8cc00400400c88cc00c004c00800a6e1d2002912cc004c024c044dd500144c8c8cc896600260340070058b202e375a602e0026eb8c05c008c05c004c048dd500145901024444646465300122598009808180c1baa0028991919194c004dd69810000cdd69810001cc08000922259800981200244cc028c08c01c4cc0340040222c81086040002603e002603c00260326ea800a2c80ba44b30013010301837540051323232323298009bac30210019bad30210049bad3021003981080124444b30013026005899806181280489980780089919912cc004c0a400e01b1640986eb8c098004dd7181300298130024590230c084004c080004c07c004c078004c064dd5001459017488c96600260220031323259800981000140122c80e8dd6980f000980d1baa0038acc004c0200062b3001301a37540070028b20368b2030406060306ea800a44b3001301030183754005132323259800981000144c8c966002602a003159800980f1baa00280345901f456600260180031323259800981200140222c8108dd69811000980f1baa0028acc004c0500062b3001301e37540050068b203e8b2038407080e0c070dd5000980f801c5901d192cc004c0700062b3001337129002180d800c5a26014603600280d22c80e8dd5180f000980f000980c9baa0028b202e4888966002602460346ea803226464646644b300130240038992cc004c060c080dd5000c4c8c8c8c8c8ca600260540033758605400b375a6054009375a6054007302a00248888966002606000d13301b3758605e01644b300100289980e803112cc00400a26602e00a26602e01233001370e90044dc3a4015370e9006244464b3001302b3033375402b132323259800981d80144c8cc8966002606200513259800981f800c4cc0a8dd6181f000912cc00400a009133025304000213001304100240f91640f060746ea800e2b300130280028992cc004c0fc0062660546eb0c0f800489660020050048998129820001098009820801207c8b2078303a3754007159800981800144c966002607e00313302a3758607c00244b300100280244cc094c1000084c004c10400903e45903c181d1baa0038acc004c0c800a264b3001303f0018998151bac303e0012259800801401226604a608000426002608200481f22c81e0c0e8dd5001c566002601400513259800981f800c4cc0a8dd6181f000912cc00400a009133026304000213001304100240f91640f060746ea800e2b300130090028992cc004c0fc0062660546eb0c0f800489660020050048998131820001098009820801207c8b2078303a3754007159800980400144c966002607e00313302a3758607c00244b300100280244cc094c1000084c004c10400903e45903c181d1baa0038acc004cdc3a401c00513259800981f800c4cc0a8dd6181f000912cc00400a009133025304000213001304100240f91640f060746ea800e2c81c1038207040e081c1038207040e0606e6ea80044c966002606000313259800981f000c4cc09cc0f400401e2c81d8c0e4dd5001c566002604e00313259800981f000c4c966002606460746ea80062646464b300130420028998121820801899812000805c5903f18200009820000981d9baa0018b2072303d0018b2076303937540071640dc81b8c0dcdd5001181d001c59038181c800981c800981a1baa0158b20641330220152259800801466002460726074607400323039303a0019ba54800244464b30013030001899192cc004c0fc00a0091640f06eb8c0f4004c0e4dd5001c566002604e00313259800981f000c4cc0a4dd6181e800912cc00400a00b19800803cc0fc00a260026080004803903d45903b181c9baa0038acc004c0bc006264b3001303e0018998149bac303d0012259800801401633001007981f80144c004c100009007207a8b2076303937540071598009818800c4c8cc8966002608000313302b3758607e00244b3001002803c660020133041002898009821001201240fd1640f46eb4c0f4004c0f8004c0e4dd5001c56600260120031323259800981f80140122c81e0dd6981e800981c9baa0038acc004c02000626464b3001303f00280245903c1bad303d001303937540071598009803800c4c8c966002607e0050048b2078375c607a00260726ea800e2c81b9037206e40dc81b9037206e30373754004911119912cc004c0c8c0e8dd500144c8c8c8c8c8c8c8c8c8c8ca60026092003304900a9824804cc124022609200f30490069824802cc12401260920073758609200491111111112cc004c15002e26602c60a602a26602c01226602c01026602c00e26602c00c26602c00a26602c00826602c0062b30013047304f375400513232323298009bae30570019bae30570049bae30570039bae3057002488896600260b800b133047009225980080144cc11405066002604860b46ea812e460bc60be60be60be0032232330010010032259800800c5284566002600660c200314a31330020023062001417082fa460bc60be60be60be60be60be60be60be003370090014dd2a4004911111192cc0066002444646644b3001305e0028acc004c178c198dd5000c530103d87a80008a6103d87980004195159800982e801456600260ba60cc6ea80062980103d87a80008a6103d87b8000419513322598009830000c530103d87b80008acc004c15c006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041a08340dd6983618349baa0038a6103d8798000419c8338dd6983518339baa00330663754002832906518321baa00130020033001003919191919912cc004c17800a29422b3001305d0028cc004cdd7983518339baa0014c103d87b8000a50a51419513233225980098308014528c56600260b00051332259800982d18359baa3036306c375400d1337100040031337120040028350dd6983698351baa00359800982c18349baa3034306a375400f100189806000a0d08a5041a08340c19cdd50009bad306b3068375400860d460ce6ea800506520ca3064375400260d060d200660ce60c86ea8004c198004c188dd5000cc0acc184dd5003a444b3001305b3063375400313233009375860d060ca6ea815c8cdd7983498331baa00100230673064375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1a4c198dd50014c1a4c198dd5000c8c8c96600260ae60d06ea8c1b0c1b400a200313259800982c000c4c02ccc1b0dd418061bad306d306a375400497ae08acc004c1840062005100241a08340c1a0dd5000a0ce306b001306737540028029300103d87b8000a50a5141911980099baf9800981818331baa002981818331baa001919192cc004c15cc1a0dd51836183680144006264b3001305800189805998361ba8337006eb4c1b4c1a8dd50012400297ae08acc004c1840062005100241a08340c1a0dd5000a0ce306b001306737540028029300103d8798000a50a51419114a0832106420c8306730643754002600e60c86ea8159062226464b3001980098331833800cc8cc004004dd6181798321baa0552259800800c52f5c1133067374e6464660d260d4004660d2606460ce6ea8004cc1a4dd4999119b8a489018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241a48348dc68009bae306c3069375400266e28c008dd7181998349baa0013371460046eb8c0d0c1a4dd500098011bae300e30693754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e18005208004002419c8338dc6800981819834a610b4a5369676e6174757265310033069306a3067375460d460ce6ea8004cc1a530101400033069375200e97ae04bd70183498350009bac306800133002002306900141993006306337540ab3756600460c66ea8155222232330010010052232598009830800c4c8c96600260c660d66ea8006264653001375c60e2005375c60e260e4003375c60e2002b9518388009bac306f306c375400314a08350c8cc004004020896600200314c103d87a80008992cc004cdc79bc8375c60e20020091303733070374e00297ae0899801801983900120d8375860e00028370dd7183698351baa0028acc004c160006264660020026eb0c1b8c1acdd5001912cc00400629462b300133005005306f0018998010011838000c52820d441b51598009830000c4cc038dd6183698351baa0022330040040018acc004c18800626466e24dd6983700099198008009bac306f30700022259800800c52000899912cc004cc02002000a26022003100141b460e00026600400460e20028370c1a8dd500145660026074003132332259800982d98361baa0028acc004c16cc1b0dd518381838801c4cdc49bad3070306d37540040031337106eb4c1c0c1b4dd5001000a0d68a5041ac60dc0026eb4c1b8c1acdd500198351baa3034306a375400b159800981c800c4c8cc896600260b660d86ea800a2b3001305b306c375460e060e20071337120026eb4c1c0c1b4dd500144cdc40009bad3070306d3754004835a294106b18370009bad306e306b375400660d46ea8c1b4c1a8dd5002c4c8c8cc004004018896600200314a115980099baf003306c30700018a518998010011838800a0d641b86016660d860da60d46ea80092f5c0834106820d041a0834106818341baa00144c8cc88cc008008004896600200314a115980099baf30653069001300733068375200697ae08a518998010011835000a0c8419c6eacc00cc190dd502b1bae30660018b20c23259800982d000c4cc194dd482f99832983318319baa02a4bd70456600260a200313306537520be660ca605a60c66ea80a92f5c11598009818800c4cc194dd482f99832980118319baa02a4bd70456600266e1d200e0018998329ba905f3306530063063375405497ae08acc004c0cc0062660ca6ea4178cc194c198c19cc19cc19cc19cc18cdd501525eb822b300130320018998329ba905e330653066306730673067306730673063375405497ae08acc004c16c0062660ca6ea4174cc194c020c18cdd501525eb822660ca6ea4174cc194c0b8c18cdd501525eb8106120c24184830906120c2418460c26ea8c194c188dd500411832983318331833183318331833000c5905f1b94376600c8992cc004c148c168dd5000c4c8c8c8cc896600260c8007132323322598009834001c4c02cc1a00322c8328dd718328009bae30650023065001375860c600b1641846eb4c184004dd6983080118308009830000982d9baa0018b20b2305d002416d164164305700130560013055001305037540051641391641443049001304800130470013046001304500130440013043001304200130410013040001303b37540051640e4600660726ea8c8c8c966002606660766ea8006264b30013033303c375400313259800981a981e9baa0018991919912cc004c11800e200b16410c60860026eb8c10c008c10c004c0f8dd5000c5903c1820181e9baa0018b20763007303c3754600c60786ea8c0fcc0f0dd5000c5903a19198008009bac3006303c375405c44b30010018a60103d87a80008992cc004c8cc004004c014dd59804981f9baa3009303f375400444b30010018a508acc004cdc79bae304300103d8a518998010011822000a07c410513007330400014bd7044cc00c00cc10800903c1820000a07c30010012259800800c52f5c113303d303a303e00133002002303f00140f0600200289919912cc004c0f000626644b300130313039375400513232323322598009821801c4c966002606e607e6ea8006264646644b300130480038992cc004c0f000626464b3001304b0028074590481bae30490013045375400f1598009819800c566002608a6ea801e01916411916410c8218c10cdd50034590451bae3045001375c608a004608a00260806ea80062c81f0c1080162c8200dd7182000098200011820000981f800981d1baa0028b2070303b00113004303c0058b2072375c607200260740026eb0c0e000903622646004606a0066eb4c0cc00903144c8c008c0cc00cdd69818801205e8b205a1815000981480098140009813800981300098109baa0018b203e30230058b20423758604200260420046042002604000260366ea80322c80c844b3001300f30173754005132323259800980f80144cc018c07800c4c9660026026003159800980e1baa002802c5901d4566002601400313232598009811001401e2c80f8dd71810000980e1baa0028acc004c04800626464b30013022002803c5901f1810000980e1baa0028b2034406880d0c068dd5000c5901c180e800980e800980c1baa0028b202c22598009807180b1baa00289919192cc004c07800a26600c603a006264b300130120018992cc004c08000626464b300130150018992cc004c08c0062660166044002013164080603c6ea800a2b3001300c00189919194c004dd69812000cdd69812001cdd698120012444b300130280048074590250c090004c08c004c078dd500145901c2038301c3754002603e00316407460366ea800a2b300130090018acc004c06cdd500140162c80e22c80c9019180c9baa0018b2036301c001301c001301737540051640544464b3001300e001899192cc004c07400a0091640686eb8c06c004c05cdd5001c566002600a0031323259800980e80140122c80d0dd7180d800980b9baa0038b202a4054602a6ea80091598009804001c4c8c966002601260226ea8c054c05800a294629410101bad3014001301037540091640388070601e6020002601e0088a4d1365640141", + Type.Tuple([ + PolicyId, + ScriptHash, + ScriptHash, + ScriptHash, + ]), + [ + proxyPolicyId, + mintValidator, + stakeValidator, + managementValidator, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolOrchestratorProtocolOrchestratorElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "592899010100222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0059bae0049bae0039bae0024888888888888a60022a6600c921266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998032492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a998032493172656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e00164889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038992cc00400a264646466453001222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc004006264b3001001804c4c96600200300a805402a264b3001302b0038cc00402633001004806402d00e402d00f402d0281bad001805205630280014098605000500880440220108148c0980050241bad0013025002802a04c302300140846046005003801c00e0068120c08400501f180e9baa003800a0349112cc004c040c070dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001302e0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001303300380a404d0301bae00140cc60600028170dd700098178012060302d00140ad00e404500e404900e40ac6eb000601b00d40b860560028148c0ac00a01700b805c02d02c1814800a04e375a002605000500840a4604c0028120dd6800981280140150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a488c8cc00400400c88cc00c004c00800a44464b300130110018992cc00400600713259800800c0120090048992cc004c09400e00d00540886eb40060088128c088005020180f1baa0048acc004c0240062b3001301e3754009003801203e8012036406c60386ea800e444b30013010301c375400713259800800c00a264b30010018992cc00400600913259800800c4c966002604400315980099b8948010c08400600d13259800981380244c966002602e00315980098121baa006804c0210254566002601e00313259800800c026264b3001001805402a015132598009815801c0320168140dd6800c02902b1814000a04c3024375400d159800980b000c56600260486ea801a01300840950084084810902118111baa005803a048300d3021001407d006408c6ea800600b005802c0150261811800a0423023002801c00e0070034090604200280f8c074dd5001c00501a244444b30013012301e375401913259800800c05a264b30010018992cc00400603113259800800c4c96600200301a8992cc00400603701b8992cc004c0a800e2b300130193025375400d13259800800c076264b300100180f407a26644b300100181044c966002003021810c4cc89660020030238992cc00400604902481244cc89660020030268992cc00400604f027813c4cc89660020030298992cc004006264b3001001815c4c966002003159800981d00144cc068038896600200513301c00d225980080146600200f19800802c660026e1d20089b874802a6e1d200c4888c9660026062607a6ea8072264b300100181ac4c96600200313259800800c0de264b30010018acc004c11800a26644b300130370018992cc00400607713259800800c0f2079132598009825801c4cc0ac00489660020050078992cc00400633001001898011827001c10102f4102081040820209e304c002412903d41206eb000607903c412c60900028230c110dd5002c566002605e00313259800800c0ee264b300100181e40f2264b3001304b003899815800912cc00400a00f13259800800c6600200313002304e003820205e8204102081040413c6098004825207a8240dd6000c0f20788258c12000504618221baa0058acc004c0d8006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b159800981c000c4c96600200303b8992cc00400607903c8992cc004c12c00e26605600244b3001002803c4c96600200319800800c4c008c13800e080817a081040820410104f1826001209481ea090375800303c81e20963048001411860886ea80162b3001300a0018992cc00400607713259800800c0f2079132598009825801c4cc0ac00489660020050078992cc00400633001001898011827001c1010304102081040820209e304c002412903d41206eb000607903c412c60900028230c110dd5002c566002601200313259800800c0ee264b300100181e40f2264b3001304b003899815800912cc00400a00f13259800800c6600200313002304e00382020608204102081040413c6098004825207a8240dd6000c0f20788258c12000504618221baa0058acc004c020006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b15980099b8748038006264b300100181dc4c96600200303c81e44c966002609600713302b0012259800801401e264b30010018cc00400626004609c00704040bd04082041020808278c13000904a40f50481bac00181e40f104b1824000a08c3044375400b03a41048209041208241048209041208213259800981b000c4c96600200303a8992cc0040062b300130490028cc00400601103b40b103b411903b81dc0ee0768250c11c00504518219baa0028acc004c0b8006264b300100181d44c96600200315980098248014566002607060886ea8006264b300100181e44c96600200313259800800c0fa264b30010018acc004c13400a330010038cc00400601903f40ad03f40ad03f412903f81fc0fe07e8270c12c005049182580140f607b03d81ea0983049001411c608a6ea80060768212076823207703b81dc0ed04a1823800a08a3043375400503941008200c104dd500098209baa00381c208681c40e2071038411c60880028210c11000a06d03681b40d90451821000a080303e375403903440ec26604203044b30010028cc0048896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801903f48888c8cc004004014896600200310058992cc004006266008609200400d133005304900233003003001411c609200282326e0120019182198221822000c8c10cc1100066e9520004888888c8c8c8c8c96600200313259800981f18251baa0028992cc00400608713259800800c4c9660020030458992cc004006264b3001001823c4c96600200313259800800c126264b30010018992cc00400609713259800800c4c96600200304d8992cc004006264b3001001827c4c96600200313259800800c146264b30010018992cc0040060a713259800800c4c9660020030558992cc0040060ad056899912cc0040060b113259800800c56600260cc0051980080b466002029198008094660020211980080746600201919800805466002011159800982a98309baa0068992cc0040060b513259800800c16e0b705b82dc4cc896600200305d8992cc0040060bd05e82f417a26644b300100183044c966002003061830c1860c31332259800800c18e264b300100183241920c90648992cc004c1c800e2660a401e44b30010028cc00403e33001302d307037540bb23074307530753075001911919800800801912cc00400629422b3001300330770018a51899801001183c000a0e241d52307430753075307530753075307530750019b804800a6e9520024888888c9660033001222323322598009838001456600260e060f86ea80062980103d87a80008a6103d879800041e91598009837801456600260de60f86ea80062980103d87a80008a6103d87b800041e913322598009839000c530103d87b80008acc004c1a8006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041f483e8dd6984100983f9baa0038a6103d879800041f083e0dd6984000983e9baa003307c375400283d107a183d1baa00130020033001003919191919912cc004c1c000a29422b3001306f0028cc004cdd7984000983e9baa0014c103d87b8000a50a5141e913233225980098398014528c56600260d6005133225980098369840809baa303f308201375400d13371000400313371200400283f8dd69841809840009baa003598009835983f9baa303d308001375400f100189806000a0fa8a5041f483e8c1f4dd50009bad308101307e375400861000260fa6ea800507a20f4307a375400260fc60fe00660fa60f46ea8004c1f0004c1e0dd5000cc0d0c1dcdd5003a444b3001306d3079375400313233009375860fc60f66ea81a48cdd7983f983e1baa001002307d307a375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1fcc1f0dd50014c1fcc1f0dd5000c8c8c96600260d460fc6ea8c20804c20c0400a2003132598009835800c4c02ccc20804dd418061bad308301308001375400497ae08acc004c1cc0062005100241f483e8c1f8dd5000a0f8308101001307d37540028029300103d87b8000a50a5141e51980099baf9800981c983e1baa002981c983e1baa001919192cc004c1a8c1f8dd518410098418080144006264b3001306b0018980599841009ba8303f375a6106026100026ea80092f5c11598009839800c400a200483e907d183f1baa00141f061020200260fa6ea8005005260103d8798000a50a5141e514a083c907920f2307d307a3754002600e60f46ea81a1077226464b30019800912cc0040062900044c01ccc008008c1fc00507c4c1f0c1f400664660020026eb0c0e0c1e8dd5033912cc004006297ae089983e9ba732323307f3080010023307f303b307d3754002660fe6ea4cc894cc1f4cdcb249165369675374727563747572652e636f6e746578743a200037326606e61040260fe6ea8005220100153307d3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a200037326606e607860fe6ea8005220100153307d3372c92011b5369675374727563747572652e65787465726e616c5f6161643a200037326606e607a60fe6ea8005220100153307d3372c9201165369675374727563747572652e7061796c6f61643a200037326606e601c60fe6ea800522010013253307e3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a20003732660706ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241f883f0dc68009bae308201307f375400266e28c008dd7181e183f9baa0013371460046eb8c0f4c1fcdd500098011bae300e307f3754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e1800520800400241f083e0dc6800981c9983fa610b4a5369676e617475726531003307f308001307d375461000260fa6ea8004cc1fd3010140003307f375200e97ae04bd70183f9840008009bac307e00133002002307f00141f13006307937540cf3756600460f26ea819d22222323233001001006223259800983a800c4c94cc20404cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a20003732660766ea400522010013259800983b9841809baa001899194c004dd7184480800cdd7184480984500800cdd71844808012444a6610e029211d466f756e64207369676e61747572652c20766572696679696e672e2e2e001533087013372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660826ea40052201001533087013372c9201187665726966795f65643235353139207061796c6f61643a20003732660826ea40092201001533087013372c92011a7665726966795f65643235353139207369676e61747572653a20003732660826ea400d220100132533088013372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660853001001a60103d87a8000a60103d8798000421c0491010010019800800c00a006b950c22404004dd61843809842009baa0018a998410099b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a20003732660786ea400922010014a0840808c8cc004004024896600200314c0103d87a80008992cc004cdc79bc8375c611202002009130423308801374e00297ae08998018019845008012106023758611002002843008dd71842809841009baa0028acc004c1b4006264a661020266e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a20003732660766ea0c014005220100132533082013372c92010e416c6c4f6620726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132330010010022259800800c528c5660026600c00c6110020031330020023089010018a50420804843008dd61842809841009baa0028acc004c1d0006264a661020266e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a20003732660766ea0c014005220100132533082013372c92010e416e794f6620726573756c743a20003732660793001001a60103d87a8000a60103d87980004204049101001001330110012330050050013758610a026104026ea800a2b3001307600189919912998418099b96490112436865636b696e672041744c656173743a200037326607a6ea0009220100132533084013372c92011941744c656173742073617469736669656420636f756e743a200037326607c6ea0005220100132533085013372c92011041744c6561737420726573756c743a200037326607f3001001a60103d87a8000a60103d8798000421004910100100133712006002646600200200444b30010018a400113322598009980500500144c0540062002843008c22804004cc008008c22c04005088011bad3086010013758610c02610e020026104026ea800a2b300130480018992998408099b9649111436865636b696e67204265666f72653a20003732660766ea0005220100132533082013372c92010f4265666f726520726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132325980098381842009baa0018acc004c1c0c21004dd518440098448080144cdc49bad30880130850137540020071337106eb4c22004c21404dd5000801a104028a50420804610e020026106026ea8c100c20c04dd50039bad30850130820137540051598009823800c4c94cc20404cdcb24910436865636b696e672041667465723a20003732660766ea0005220100132533082013372c92010e416674657220726573756c743a20003732660793001001a60103d87a8000a60103d8798000420404910100100132325980098381842009baa0018acc004c1c0c21004dd518440098448080144cdc48019bad30880130850137540031337100066eb4c22004c21404dd5000a104028a50420804610e020026106026ea8c21804c20c04dd50039bad3085013082013754005132533081013372c920111436865636b696e67205363726970743a20003732660766ea4005220100132533082013372c92010f53637269707420726573756c743a20003732660793001001a60103d87a8000a60103d879800042040491010010013232330010010082259800800c528456600266ebc00cc21404c22404006294626600400461140200284180908701180719842809ba90014bd701bae308501308201375400483f907f20fe41fc83f907f1840009baa001300500544c8cc88cc008008004896600200314a115980099baf307b307f00130073307e375200697ae08a51899801001184000800a0f241f46eacc00cc1e8dd50341bae307c0018a9983ba481956578706563740a2020202020207361746973666965645f7061796c6f616473280a20202020202020207065726d697373696f6e2c0a20202020202020207369676e6174757265735f776974685f7061796c6f6164732c0a202020202020202073656c662e76616c69646974795f72616e67652c0a202020202020202073656c662e7769746864726177616c732c0a20202020202029001641d864b3001306c00189983d9ba90743307b307c3079375406097ae08acc004c1900062660f66ea41d0cc1ecc0d8c1e4dd501825eb822b3001303d00189983d9ba90743307b30023079375406097ae08acc004cdc3a401c00313307b37520e8660f6600c60f26ea80c12f5c1159800981f800c4cc1ecdd48399983d983e183e983e983e983e983c9baa0304bd704566002607c00313307b37520e6660f660f860fa60fa60fa60fa60fa60f26ea80c12f5c11598009836800c4cc1ecdd48391983d9804183c9baa0304bd7044cc1ecdd48391983d981b983c9baa0304bd7020ec41d883b107620ec41d883b0c1dcdd5183d983c1baa0082307b307c307c307c307c307c307c0018a9983aa4812f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c6629001641d06e50dd980320ce82ca264b30010018acc004c190c1c0dd5000c4c9660020030698992cc0040060d506a899912cc0040060d913259800800c1b60db06d899912cc0040060df13259800800c1c20e10708992cc004c1f800e2b3001007838c4c96600200307283941ca0e51332259800800c1d2264b300100183ac1d60eb0758992cc004c20c0400e260206106020230764200046eb800508301184000800a0fc375c00260fe010840008c1f401d07b41c507b1bad00183820fc307b00141e46eb4004c1e800a0da83d8c1e00050761bac001307700283541a9078183a800a0e63071375400306841b906883441a20d083b0c1cc009071419506f1bae00141c860de0028368dd7000983700120de306c00141a86eb8004c1ac00906c1834800a0ce375c00260d00048348c19800506418311baa00682ca0be82ca03082ca03082ca03082ca03082ca03082ca03082ca03082ca03082ca0c682cc1660b3059419c60c80028310dd60009831801415a0ac8320c18400505f183080141520a905482a20c4305f001417460be005052829414a0a48300c17400505b182e80141420a105082820bc305b001416460b600504e827413a09c82e0c164005057182c801413209904c82620b43057001415460ae00504a825412a09482c0c154005053182a801412209104882420ac3053001414460a6005046823411a08c82a0c14400504f1828801411208904482220a4304f001413460966ea800a0848240888ca6002003004801a00222232598009822000c4c9660020030068992cc00400600f007803c01e264b30013058003802c0210551bae001416060aa0028298c144dd5001c566002607800313259800800c01a264b3001001803c01e264b3001305800389981c000912cc00400a00f13259800800c6600201500189801182d801a014805c02e01700b417060b200482ba01082a8dd6000c01e00e82c0c15400505318289baa0038acc004c10c006264b300100180344c966002003007803c4c96600260b00071330380012259800801401e264b30010018cc00402a00313002305b003402900b805c02e01682e0c16400905740210551bac001803c01d058182a800a0a6305137540071598009822800c4c9660020030068992cc00400600f007803c4cc89660020030098992cc00400601500a8992cc004c16c00e26607600244b300100280544c96600200319800806c0062600460bc006806a01d00e807403905f182e00120b4805a0b0375800300a80520b6305800141586eb4004c15c00a00e82c0c15400505318289baa0038acc004c05c006264b300100180344c966002003007803c01e264b30013058003802c0210551bad001803a0b03055001414c60a26ea800e2b300130160018992cc00400600d13259800800c01e00f0078992cc004c16000e00b00841546eb400600e82c0c15400505318289baa0038acc004c054006264b300100180344c966002003007803c01e00f13259800982c001c01601082a8dd7000a0b03055001414c60a26ea800e00a827104e209c4138827104e209c304f3754005041820c1060828278c018c124dd519199129982519b9649012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea412122010013259800982018261baa00189929982619b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800982098271baa0018992cc0040062b30013043304f375400313259800800c126264b3001001825412a09504a899912cc00400609913259800982c8014401a09a82b0c15c0050551bae0013056002415c60a80028290c140dd5000c12104d412209104882420aa3052304f3754003153304d49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001641306018609c6ea8c02cc138dd5000982818269baa0018a99825a4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164128646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd5980698281baa300d3050375400444b30010018a508acc004cdc79bae305400104d8a51899801001182a800a09c41491300b330510014bd7044cc00c00cc14c00904c1828800a09e30010013758600e60946ea80e0896600200314bd7044cc134c128c138004cc008008c13c00504c1800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100f20a05980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c825104a1bac304d002375a60960026466ec0dd418258009ba7304c001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a60a0003337149101023a200098008054c14400600a805100a182980144ca6002015305000199b8a489023a200098008054c144006600e66008008004805100a182980120a23053001414066e29220102207d0000341346eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900c209a3758007133005375a0060051323371491102682700329800800cc030dc68014cdc52450127000044004444b300133710004900044006264664530010069808802ccdc599b800025980099b88002480522903045206e413c66e2ccdc0000acc004cdc4000a402914818229037209e004401866e0c00520203370c002901019b8e00400241306eb800d0501b8a4881022c20002232330010010032259800981e800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003411c8238c01801913259800800c0da06d13259800800c0de264b300100181c40e2071038899912cc00400607513259800800c566002609200513259800981c98229baa0028992cc00400607b13259800800c4c96600200303f8992cc004006264b3001001820c4c966002003042821410a085132598009828801c566002608060986ea801a264b300100182244c966002003045822c11608b1332259800800c11e264b300100182441220910488992cc004c15c00e264b300130470018992cc00400609713259800800c13209904c82644c96600260b6007012826a0b0375c00282d8c160005056182a1baa00b8acc004c0fc0062b30013054375401700f82520aa82520a2414460a46ea802a09282a0dd7000a0ae305400141486eb8004c14c0090541828800a09e304d375400d043412904341386eb80050511827000a098304e0028204102081040413c60980028250c13000a07d03e81f40f904d1825000a0903046375400503c410c2600e609201103b411903b81dc0ee0768250c11c0050451bae0013046002411c60880028210dd6000c0da06c8228c108009040206080ea06080ea264b3001001818c0c606313230033040004375a0030314100607a00481da264b3001001817c0be05f1323003303e004375a00302f40f8607600481ca05881ba05902c81640b103b181c000a06c303800281540aa05502a40e4606c00281a0dd6800981a801409d0361819800a062375a002606400502440cc60600028170dd6000981780140860428180c0b400502b1bac001302c00280f407902d1815000a0503026375400d01c408d01c409c6eb000603701b40a8604e0028128c09c00a03301980cc0650281812800a046302500280bc05e02f017409860460028108c07cdd5006405501c088966002601c60346ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08c00a330010038992cc004c04c0062b30013020375400500780320428acc004c02c006264b3001001803c4c9660020030088044022011132598009813801c02a0128120dd7000a04e3024001408860406ea800a2b300130120018992cc00400600f13259800981300140260108118c09000502218101baa002803203a407480e8c078dd5000c0150084015020401600b005802a0483021001407c6042005003801c00e0068110c07c00501d180d9baa003800a030222598009807180d1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002604a007008803a044375a003006409460440028100dd700098108012044301f001407460366ea800e00280c088966002601a60326ea800e264b300100180144c96600200313259800800c012264b30010018acc004c08800a330010038992cc004c048006264b3001001803c4c966002003159800981280144c966002602a00313259800800c02a264b30010018acc004c0a000a33001001806402d00e402d025402e01700b805a0523026001409060446ea800a2b3001300d0018992cc00400601513259800800c02e01700b899912cc00400601b13259800800c03a01d00e899912cc00400602113259800800c0460230118992cc004c0bc00e02701240b06eb40060228178c0b000502a1bad001302b00280720583029001409c6eb4004c0a000a0168148c09800502418111baa002804a03e407c60406ea8006010811201100880440210261811800a042301f37540051598009805000c566002603e6ea800a00f0064081006407080e0c074dd5000c015008401501f401600b005802a046302000140786040005003801c00e0068108c07800501c180d1baa003800a02e22232598009806800c4c9660020030038992cc0040060090048024012264b30013021003803401501e1bae0014084603c00280e0c068dd50024566002600a00313259800800c00e264b300100180240120090048992cc004c08400e00d00540786eb8005021180f000a038301a3754009002405c80b8c060dd50019b874800a01700b805c02d01a180b980a1baa0048acc004c02000e26464b30013009301537546032603400514a314a08098dd6980c000980a1baa0048b2022404430133014001301300445268a99804a491856616c696461746f722072657475726e65642066616c7365001365640201" + : + "5913f1010100222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0059bae0049bae0039bae00248888888888966003300130073754019370e90034dc3a4001370e90022444464653001300c3754003301000698080012444b300130060038cc004c04cc040dd5002488c8cc00400400c88cc00c004c00800a6e1d2002912cc004c024c044dd500144c8c8cc896600260340070058b202e375a602e0026eb8c05c008c05c004c048dd500145901024444646465300122598009808180c1baa0028991919194c004dd69810000cdd69810001cc08000922259800981200244cc028c08c01c4cc0340040222c81086040002603e002603c00260326ea800a2c80ba44b30013010301837540051323232323298009bac30210019bad30210049bad3021003981080124444b30013026005899806181280489980780089919912cc004c0a400e01b1640986eb8c098004dd7181300298130024590230c084004c080004c07c004c078004c064dd5001459017488c96600260220031323259800981000140122c80e8dd6980f000980d1baa0038acc004c0200062b3001301a37540070028b20368b2030406060306ea800a44b3001301030183754005132323259800981000144c8c966002602a003159800980f1baa00280345901f456600260180031323259800981200140222c8108dd69811000980f1baa0028acc004c0500062b3001301e37540050068b203e8b2038407080e0c070dd5000980f801c5901d192cc004c0700062b3001337129002180d800c5a26014603600280d22c80e8dd5180f000980f000980c9baa0028b202e4888966002602460346ea803226464646644b300130240038992cc004c060c080dd5000c4c8c8c8c8c8ca600260540033758605400b375a6054009375a6054007302a00248888966002606000d13301b3758605e01644b300100289980e803112cc00400a26602e00a26602e01233001370e90044dc3a4015370e9006244464b3001302b3033375402b132323259800981d80144c8cc8966002606200513259800981f800c4cc0a8dd6181f000912cc00400a009133025304000213001304100240f91640f060746ea800e2b300130280028992cc004c0fc0062660546eb0c0f800489660020050048998129820001098009820801207c8b2078303a3754007159800981800144c966002607e00313302a3758607c00244b300100280244cc094c1000084c004c10400903e45903c181d1baa0038acc004c0c800a264b3001303f0018998151bac303e0012259800801401226604a608000426002608200481f22c81e0c0e8dd5001c566002601400513259800981f800c4cc0a8dd6181f000912cc00400a009133026304000213001304100240f91640f060746ea800e2b300130090028992cc004c0fc0062660546eb0c0f800489660020050048998131820001098009820801207c8b2078303a3754007159800980400144c966002607e00313302a3758607c00244b300100280244cc094c1000084c004c10400903e45903c181d1baa0038acc004cdc3a401c00513259800981f800c4cc0a8dd6181f000912cc00400a009133025304000213001304100240f91640f060746ea800e2c81c1038207040e081c1038207040e0606e6ea80044c966002606000313259800981f000c4cc09cc0f400401e2c81d8c0e4dd5001c566002604e00313259800981f000c4c966002606460746ea80062646464b300130420028998121820801899812000805c5903f18200009820000981d9baa0018b2072303d0018b2076303937540071640dc81b8c0dcdd5001181d001c59038181c800981c800981a1baa0158b20641330220152259800801466002460726074607400323039303a0019ba54800244464b30013030001899192cc004c0fc00a0091640f06eb8c0f4004c0e4dd5001c566002604e00313259800981f000c4cc0a4dd6181e800912cc00400a00b19800803cc0fc00a260026080004803903d45903b181c9baa0038acc004c0bc006264b3001303e0018998149bac303d0012259800801401633001007981f80144c004c100009007207a8b2076303937540071598009818800c4c8cc8966002608000313302b3758607e00244b3001002803c660020133041002898009821001201240fd1640f46eb4c0f4004c0f8004c0e4dd5001c56600260120031323259800981f80140122c81e0dd6981e800981c9baa0038acc004c02000626464b3001303f00280245903c1bad303d001303937540071598009803800c4c8c966002607e0050048b2078375c607a00260726ea800e2c81b9037206e40dc81b9037206e30373754004911119912cc004c0c8c0e8dd500144c8c8c8c8c8c8c8c8c8c8ca60026092003304900a9824804cc124022609200f30490069824802cc12401260920073758609200491111111112cc004c15002e26602c60a602a26602c01226602c01026602c00e26602c00c26602c00a26602c00826602c0062b30013047304f375400513232323298009bae30570019bae30570049bae30570039bae3057002488896600260b800b133047009225980080144cc11405066002604860b46ea812e460bc60be60be60be0032232330010010032259800800c5284566002600660c200314a31330020023062001417082fa460bc60be60be60be60be60be60be60be003370090014dd2a4004911111192cc0066002444646644b3001305e0028acc004c178c198dd5000c530103d87a80008a6103d87980004195159800982e801456600260ba60cc6ea80062980103d87a80008a6103d87b8000419513322598009830000c530103d87b80008acc004c15c006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041a08340dd6983618349baa0038a6103d8798000419c8338dd6983518339baa00330663754002832906518321baa00130020033001003919191919912cc004c17800a29422b3001305d0028cc004cdd7983518339baa0014c103d87b8000a50a51419513233225980098308014528c56600260b00051332259800982d18359baa3036306c375400d1337100040031337120040028350dd6983698351baa00359800982c18349baa3034306a375400f100189806000a0d08a5041a08340c19cdd50009bad306b3068375400860d460ce6ea800506520ca3064375400260d060d200660ce60c86ea8004c198004c188dd5000cc0acc184dd5003a444b3001305b3063375400313233009375860d060ca6ea815c8cdd7983498331baa00100230673064375400313322598009802000c528c566002600800514a1159800cc004cdd7cc004c1a4c198dd50014c1a4c198dd5000c8c8c96600260ae60d06ea8c1b0c1b400a200313259800982c000c4c02ccc1b0dd418061bad306d306a375400497ae08acc004c1840062005100241a08340c1a0dd5000a0ce306b001306737540028029300103d87b8000a50a5141911980099baf9800981818331baa002981818331baa001919192cc004c15cc1a0dd51836183680144006264b3001305800189805998361ba8337006eb4c1b4c1a8dd50012400297ae08acc004c1840062005100241a08340c1a0dd5000a0ce306b001306737540028029300103d8798000a50a51419114a0832106420c8306730643754002600e60c86ea8159062226464b3001980098331833800cc8cc004004dd6181798321baa0552259800800c52f5c1133067374e6464660d260d4004660d2606460ce6ea8004cc1a4dd4999119b8a489018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241a48348dc68009bae306c3069375400266e28c008dd7181998349baa0013371460046eb8c0d0c1a4dd500098011bae300e30693754002464b300133712002901744cdc599b80482000400400a2b300133712002907f01c4cdc5a41600266e2c00400a266e2d20b2013371666e0c0052080043371666e18005208004002419c8338dc6800981819834a610b4a5369676e6174757265310033069306a3067375460d460ce6ea8004cc1a530101400033069375200e97ae04bd70183498350009bac306800133002002306900141993006306337540ab3756600460c66ea8155222232330010010052232598009830800c4c8c96600260c660d66ea8006264653001375c60e2005375c60e260e4003375c60e2002b9518388009bac306f306c375400314a08350c8cc004004020896600200314c103d87a80008992cc004cdc79bc8375c60e20020091303733070374e00297ae0899801801983900120d8375860e00028370dd7183698351baa0028acc004c160006264660020026eb0c1b8c1acdd5001912cc00400629462b300133005005306f0018998010011838000c52820d441b51598009830000c4cc038dd6183698351baa0022330040040018acc004c18800626466e24dd6983700099198008009bac306f30700022259800800c52000899912cc004cc02002000a26022003100141b460e00026600400460e20028370c1a8dd500145660026074003132332259800982d98361baa0028acc004c16cc1b0dd518381838801c4cdc49bad3070306d37540040031337106eb4c1c0c1b4dd5001000a0d68a5041ac60dc0026eb4c1b8c1acdd500198351baa3034306a375400b159800981c800c4c8cc896600260b660d86ea800a2b3001305b306c375460e060e20071337120026eb4c1c0c1b4dd500144cdc40009bad3070306d3754004835a294106b18370009bad306e306b375400660d46ea8c1b4c1a8dd5002c4c8c8cc004004018896600200314a115980099baf003306c30700018a518998010011838800a0d641b86016660d860da60d46ea80092f5c0834106820d041a0834106818341baa00144c8cc88cc008008004896600200314a115980099baf30653069001300733068375200697ae08a518998010011835000a0c8419c6eacc00cc190dd502b1bae30660018b20c23259800982d000c4cc194dd482f99832983318319baa02a4bd70456600260a200313306537520be660ca605a60c66ea80a92f5c11598009818800c4cc194dd482f99832980118319baa02a4bd70456600266e1d200e0018998329ba905f3306530063063375405497ae08acc004c0cc0062660ca6ea4178cc194c198c19cc19cc19cc19cc18cdd501525eb822b300130320018998329ba905e330653066306730673067306730673063375405497ae08acc004c16c0062660ca6ea4174cc194c020c18cdd501525eb822660ca6ea4174cc194c0b8c18cdd501525eb8106120c24184830906120c2418460c26ea8c194c188dd500411832983318331833183318331833000c5905f1b94376600c8992cc004c148c168dd5000c4c8c8c8cc896600260c8007132323322598009834001c4c02cc1a00322c8328dd718328009bae30650023065001375860c600b1641846eb4c184004dd6983080118308009830000982d9baa0018b20b2305d002416d164164305700130560013055001305037540051641391641443049001304800130470013046001304500130440013043001304200130410013040001303b37540051640e4600660726ea8c8c8c966002606660766ea8006264b30013033303c375400313259800981a981e9baa0018991919912cc004c11800e200b16410c60860026eb8c10c008c10c004c0f8dd5000c5903c1820181e9baa0018b20763007303c3754600c60786ea8c0fcc0f0dd5000c5903a19198008009bac3006303c375405c44b30010018a60103d87a80008992cc004c8cc004004c014dd59804981f9baa3009303f375400444b30010018a508acc004cdc79bae304300103d8a518998010011822000a07c410513007330400014bd7044cc00c00cc10800903c1820000a07c30010012259800800c52f5c113303d303a303e00133002002303f00140f0600200289919912cc004c0f000626644b300130313039375400513232323322598009821801c4c966002606e607e6ea8006264646644b300130480038992cc004c0f000626464b3001304b0028074590481bae30490013045375400f1598009819800c566002608a6ea801e01916411916410c8218c10cdd50034590451bae3045001375c608a004608a00260806ea80062c81f0c1080162c8200dd7182000098200011820000981f800981d1baa0028b2070303b00113004303c0058b2072375c607200260740026eb0c0e000903622646004606a0066eb4c0cc00903144c8c008c0cc00cdd69818801205e8b205a1815000981480098140009813800981300098109baa0018b203e30230058b20423758604200260420046042002604000260366ea80322c80c844b3001300f30173754005132323259800980f80144cc018c07800c4c9660026026003159800980e1baa002802c5901d4566002601400313232598009811001401e2c80f8dd71810000980e1baa0028acc004c04800626464b30013022002803c5901f1810000980e1baa0028b2034406880d0c068dd5000c5901c180e800980e800980c1baa0028b202c22598009807180b1baa00289919192cc004c07800a26600c603a006264b300130120018992cc004c08000626464b300130150018992cc004c08c0062660166044002013164080603c6ea800a2b3001300c00189919194c004dd69812000cdd69812001cdd698120012444b300130280048074590250c090004c08c004c078dd500145901c2038301c3754002603e00316407460366ea800a2b300130090018acc004c06cdd500140162c80e22c80c9019180c9baa0018b2036301c001301c001301737540051640544464b3001300e001899192cc004c07400a0091640686eb8c06c004c05cdd5001c566002600a0031323259800980e80140122c80d0dd7180d800980b9baa0038b202a4054602a6ea80091598009804001c4c8c966002601260226ea8c054c05800a294629410101bad3014001301037540091640388070601e6020002601e0088a4d1365640141", + Type.Tuple([ + PolicyId, + ScriptHash, + ScriptHash, + ScriptHash, + ]), + [ + proxyPolicyId, + mintValidator, + stakeValidator, + managementValidator, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolStakeProtocolStakeWithdraw { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "593b9d010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a493b657870656374206c6973742e6c656e677468286f75747075745f696e646963657329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a49666578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d206d61746368696e675f726571756573742e616d6f756e7400168a99801a493865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00168a99801a4938657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f6964782900168a99801a49376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f72657175657374732900168a99801a4939657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a493565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f69647800168a99801a493365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f69647800168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49286578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d20646174756d00168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d657200164888888888888888896600264653001301b001980d980e000cdc3a4009301b0024888966002600460366ea800e33001301f301c37540072302030213021001918101810800c88c8cc00400400c88cc00c004c00800a6e1d20009b874800a6e1d20069b87480226e1d200a9b87480326e9520009b80480066e95200248888888888888c8cc88c8c966002003198009112cc004c044c0c0dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981c80146600200713259800980b000c566002606c6ea800a00f00640dd159800980a800c4c9660020030078992cc0040060110088044022264b3001303d003805402503a1bae00140f4607400281c0c0d8dd50014566002603800313259800800c01e264b3001303c002804c021039181d000a0703036375400500640cc8199033181a1baa001802a016802a06c802c01600b00540e8606e00281a8c0dc00a007003801c00d038181a800a0663031375400700140b922259800980898181baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300130360018acc004cdc4a4008606a0030068992cc004c0ec012264b300130180018acc004c0e0dd5003402601081ca2b300130170018992cc00400601313259800800c02a01500a8992cc004c0fc00e01900b40f06eb400601481f8c0f000503a181c1baa0068acc004c0780062b30013038375400d0098042072804206a40d481a8c0d8dd5002c01d038180a981a800a066803206e3754003005802c01600a81d0c0dc005035181b801400e007003801a070303500140cc60626ea800e0028172444b300130113030375400713259800800c00a264b3001001801c00e007003899912cc00400600b13259800800c01a00d0068992cc004c0ec00e01100740e06eb400600c81d8c0e00050361bae001303700240e0606a0028198c0c4dd5001c00502e4888c966002602400313259800800c00e264b3001001802401200913259800981c801c01a00a81b0dd6800c011039181b000a068303237540091598009808800c56600260646ea801200700240cd00240bc8178c0c0dd5001a44446644b300130143033375400f13259800800c082264b30010018992cc00400604513259800800c4c9660020030248992cc00400604b0258992cc004c0fc00e2b3001301b303a375400d13259800800c09e264b300100181440a226644b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e81744cc89660020030308992cc004006063031818c4cc89660020030338992cc004006264b300100181ac4c966002003159800982780144cc0b0038896600200513302e00d225980080146600200f19800802c4c9660026060609e6ea8066264b300100181e44c96600200313259800800c0fa264b30010018acc004c16000a26644b300130360018992cc00400608513259800800c10e08713259800982e801c4cc0e800489660020050078992cc00400633001001898011830001c11d029411e08f047823a0c2305e002417104441686eb0006087043417460b400282c0c158dd5002c566002606a00313259800800c10a264b3001001821c10e264b3001305d00389981d000912cc00400a00f13259800800c66002003130023060003823a052823c11e08f047418460bc00482e208882d0dd6000c10e08682e8c168005058182b1baa0058acc004c0f0006264b300100182144c966002003043821c4c96600260ba00713303a0012259800801401e264b30010018cc0040062600460c000704740a5047823c11e08e8308c17800905c411105a1bac001821c10d05d182d000a0b03056375400b159800981a000c4c9660020030428992cc0040060870438992cc004c17400e26607400244b3001002803c4c96600200319800800c4c008c18000e08e814a08f047823c11d061182f00120b882220b43758003043821a0ba305a001416060ac6ea80162b300130330018992cc00400608513259800800c10e08713259800982e801c4cc0e800489660020050078992cc00400633001001898011830001c11d02a411e08f047823a0c2305e002417104441686eb0006087043417460b400282c0c158dd5002c566002606400313259800800c10a264b3001001821c10e264b3001305d00389981d000912cc00400a00f13259800800c66002003130023060003823a054823c11e08f047418460bc00482e208882d0dd6000c10e08682e8c168005058182b1baa0058acc004c0c4006264b300100182144c966002003043821c4c96600260ba00713303a0012259800801401e264b30010018cc0040062600460c000704740a5047823c11e08e8308c17800905c411105a1bac001821c10d05d182d000a0b03056375400b15980099b8748038006264b300100182144c966002003043821c4c96600260ba00713303a0012259800801401e264b30010018cc0040062600460c000704740a5047823c11e08e8308c17800905c411105a1bac001821c10d05d182d000a0b03056375400b041414c829905320a6414c829905320a613259800981a800c4c9660020030418992cc0040062b3001305b0028cc004006011042409d0424161042821410a08482e0c164005057182a9baa0028acc004c0d0006264b3001001820c4c966002003159800982d8014566002606e60ac6ea8006264b3001001821c4c96600200313259800800c116264b30010018acc004c17c00a330010038cc00400601904640b104640b10464171046823411a08c8300c17400505b182e801411208904482220bc305b001416460ae6ea800608482a208482c2085042821410905c182c800a0ae3055375400504041488290c14cdd500098299baa00381fa0aa81fc0fe07f03f416460ac00282a0c15800a07b03d81ec0f5057182a000a0a43050375403303b413426606002a44b30010028cc004c150c144dd5181998289baa024914c004c8cc00400400c896600200314a115980099baf30583055375460b060aa6ea8c0dcc154dd5182c00098169982b9ba90034bd704528c4cc008008c16400505220aca50a51414123055305630563056305630563056305630560019181898289baa305532330010010022259800800c52f5c303d87a80008101800044c8cc8966003300130363056375460b40074a14a282a22660b330014a14c103d87a8000a60103d87980004150660b26e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c17000400e294626600400460ba00282b105a44cc166600294298103d87a8000a60103d87980004150660b26e9c0092f5c11330599800a51a60103d87a8000a60103d87980004150660b26e9ccc164dd400080125eb8105420a8375860b060b20026eb4c160008cc008008c16000505548c154c158c158c158c158006444b30010028a6103d87a80008acc004c0d00062605c660ac60ae00497ae08cc00400e60b0005302d001400c82890554888c8cc88cc008008004896600200300389919912cc004cdc8803801456600266e3c01c00a2003006415d133005005305e004415c6eb8c15c004dd6982c000982d000a0b03232330010010062259800800c00e2646644b30013372201200515980099b8f0090028800c01905844cc014014c17c0110581bae3058001375660b200260b600282c852f5bded8c029000488966002606860a66ea800e264b300100180144c966002003003801c00e264b3001305b003802c0110581bad001801a0b63058001415860a86ea800e002828a44646600200200644b30010018a5eb8226644b30013375e60b460ae6ea8c168c15cdd5181c982b9baa002302f33059375200a97ae089982c80119802002000c4cc010010005054182c000982c800a0ac9182a982b182b182b182b182b000c8c154c158c158c15800644b30010018a4001133700900119801001182b800a0a8911194c0040060090034004444b30010028acc00400629462941058456600200314a115980099802182d0011bad305a0018cc00400e60b6005305b001400d14a082a105820b09112cc004c0d0c14cdd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800983000146600200f19800802c4c966002607a00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b300130670038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001306c00380b40550691bae00141b060d20028338dd7000983400120d23066001419101041906eb000601f00f419c60c80028310dd6800983180140310641830800a0be305d3754009159800981e000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c19c00e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1b000e02d01541a46eb800506c1834800a0ce375c00260d00048348c19800506440410641bac001807c03d0671832000a0c4375a00260c600500c419060c200282f8c174dd50024566002608600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b3001306a0038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001306f00380cc06106c1bae00141bc60d80028350dd7000983580120d83069001419d013419c6eb000602501241a860ce0028328dd68009833001403d0671832000a0c4375a00260c600500c419060c200282f8c174dd50024566002607600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b300130670038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001306c00380b40550691bae00141b060d20028338dd7000983400120d23066001419101041906eb000601f00f419c60c80028310dd6800983180140310641830800a0be305d3754009159800981d000c4c96600200300b8992cc00400601900c80644c96600260c800700e806a0c2375a00300c419060c200282f8c174dd50024566002607200313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009833801c0460208320dd6800c03d0671832000a0c4375a00260c600500c419060c200282f8c174dd50024566002607000313259800800c02e264b30010018064032019132598009832001c03a01a8308dd6800c0310641830800a0be305d375400915980099b8748038006264b3001001805c4c96600200300c8064032264b3001306400380740350611bad00180620c83061001417c60ba6ea801201482d105a20b4416882d105a20b4416860b66ea800e0128172012818a01282e8c17800505c182f001401e00f007803a0be305c001416860b8005005802c01600a82e8c168005058182d001400e007003801a0b63058001415860a86ea800e002828a44b30010018a4001133700900119801001182b800a0a89b89480026e21200048888888888888888a600260c26ea8046444b300130110028994c004006009003a40008008888966002007159800801440062a660ce92112657870656374205b5d203d206c6973745f62001641a9159800801454cc19d2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260da007306d00299912cc004c01c00a266e0000cdd6982698359baa0028a99834a4811a6578706563742076616c69646174696f6e287265717565737429001641a060d80066eb4c1b000900420d441a9153306349012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900164189300c00c980300348c03c00660060069111111919912cc004c12002633001375860dc60d66ea806a60dc60d66ea80fa609a60d66ea80fd222598009980e1bac3071306e37540a66eb8c1c4c1b8dd5180d98371baa001899912cc004c140c1bcdd5000c4c8cc896600260260051598009809800c566002b300130530018a518980900120e08992cc004c04c0062b300198009980d9bac3077307437540b26eb8c15cc1d0dd51810983a1baa0079bac30563074375401133076305630743754604260e86ea801ccc1d93001054455534472004bd702444b30013370e60240066024019159800980880146600200700291192cc004c168c1e4dd5000c4cc896600260c460f66ea8006264b30010018cc0040062b30013375e60c060fa6ea800cc20004c1f4dd5003456600266ebcc17cc1f4dd5000984000983e9baa0038acc004cdc49bad305f307d37540073001375660be60fa6ea8c17cc1f4dd50034dd7184000803cdd7182f803a04c8992cc004c16cc1f4dd5000c4cdc39bad308101307e37540026eb4c180c1f8dd5002452820f63060307d375400307541e907441e907341e9072407d07283941ca0e4841008c1fcc1f0dd5000c1b1079183e983d1baa001305d307a375460b860f46ea800e0dc83b8cc04403800501a41a907441a507422b300198009bac3057307437540b3375860ee60e86ea8022660ec60ac60e86ea8c084c1d0dd50039983b260106457355534472004bd702444b30013370e6020004602401919800806400a4464b3001305a307937540031325980099baf307e307b375400260fc60f66ea8c1f8c1ecdd5002456600266ebcc178c1ecdd5000982e983d9baa307e307b375400913370f3001375660ba60f66ea80066eb8c1f80166eb8c1740150242cc004c16c02626eb4c174c1ecdd500244cdc199b82375a60ba60f66ea8010024029078452820f08a5041e060fa60f46ea80060e883b8cc04401400501a41c10742264b30013055307437540031325980099b87375a60f200266e000140222b30013370e6eb4c1e4c1e8004cdc0002001c56600266e1e60026eacc084c1d8dd502dcdd7182c183b1baa302330763754013488105735553447200407c0071305698009bab3021307637540b7375c60b060ec6ea8c08cc1d8dd5004d2201045553447200407d1533074491246578706563742073757364725f6d696e746564203d3d2073757364725f746f5f6d696e74001641cd15330744914a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202b2073757364725f746f5f6d696e74001641cd153307449140657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202b20746f74616c5f757364725f7374616b6564001641cd3001375860b060ea6ea816a6eb8c068c1d4dd51811183a9baa0089bae305730753754604460ea6ea80226eb4c1e0c1d4dd5000a01683220e4301a307437540111533072491dc6578706563740a2020202076616c69646174655f7374616b655f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020207374616b655f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e7375736472292c0a2020202020207661756c745f757364725f6265666f72652c0a20202020202063697263756c6174696e675f73757364725f6265666f72652c0a2020202029001641c51533072491a26578706563740a2020202076616c69646174655f7374616b655f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020207374616b655f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e75736472292c0a2020202029001641c51533072491186578706563742073757364725f746f5f6d696e74203e2030001641c4b300130530018802c4cdc199b8200500100241c115330714913d6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c207661756c745f757364725f6265666f7265203e2030001641c11533071491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001641c115330714911d657870656374207661756c745f757364725f6265666f7265203e3d2030001641c06eb4c1d0004dd6983a183a800cc004dd6183998381baa0559bae301530703754603a60e06ea800e6eb8c148c1c0dd5180e98381baa0039bad307330703754002803a0bc836a6002007375860e260dc6ea800a4b3001300e375a60a260de6ea80062609e6eb4c050c1bcdd5000c52820d8402c603260dc6ea800a0b683591598009823804c660026eb0c1b8c1acdd500d4c1b8c1acdd501f4c134c1acdd501fa444b30013301c375860e260dc6ea814cdd7183898371baa301b306e37540031332259800982818379baa00189919912cc004c04800a2b3001301200189919912cc004c05400a2b300198009980e9bac3079307637540b66eb8c164c1d8dd51811983b1baa0099bac30583076375401533078305830763754604660ec6ea8024cc1e130106457355534472004bd702444b30013370e6028006602801d159800980980146600200700291192cc004c170c1ecdd5000c4cc896600260c860fa6ea8006264b30010018cc0040062b30013375e60c460fe6ea800cc20804c1fcdd5003456600266ebcc184c1fcdd5000984100983f9baa0038acc004cdc49bad3061307f37540073001375660c260fe6ea8c184c1fcdd50034dd7184100803cdd71830803a0508992cc004c170c1fcdd5000c4c96600266e1cdd69842008009bad3063308101375400b13370e6eb4c21004c21404004dd698131840809baa0058a5041f86100026ea8006294107d1831183f9baa00183ba0f883b20f883aa0f883a204283a41d20e907442100461020260fc6ea80060dc83d8c1fcc1f0dd5000982f983e1baa305e307c375400707041e46602602000280e20d883b20d683b115980099b8798009bab3021307637540b7375c60b060ec6ea8c08cc1d8dd5004d220105735553447200407c66e0520000088992cc004c15cc1d8dd5000c4c96600266e1cdd6983d80099b810070048acc004cdc39bad307b307c0013370200c015159800982c4c004dd59811983c1baa05d9bae305a30783754604a60f06ea802e9110455534472004085159800cc004dd6182d983c1baa05d9bac307b307837540193307a305a30783754604a60f06ea802ccc1e9301054455534472004bd702444b30013370e6028004602c02119800808400a4464b3001305e307d37540031325980099baf308201307f375400261040260fe6ea8c20804c1fcdd5002456600266ebcc188c1fcdd50009830983f9baa308201307f375400913370f3001375660c260fe6ea80066eb8c208040166eb8c18401502819b813370666e08dd69830983f9baa00400e00d375a604860fe6ea8012294107c452820f8308101307e375400307841ec6602a00a00280f20e883c1198009bac305b307837540bb307b307c307c307c307c307c307c307c307c307c307c307837540173307a305a30783754604a60f06ea802ccc1e9301054455534472004bd702444b3001305b0068a51899b8900632330010010042259800800c52000899912cc004cdd7984100983f9baa002006899b8000198009bab3061307f3754005375c61040200b375c60c200a8142200283e0c20004004cc008008c2040400507e20f0454cc1d9241df6578706563740a2020202076616c69646174655f756e7374616b655f6f757470757473280a20202020202074782e6f7574707574732c0a202020202020756e7374616b655f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e75736472292c0a2020202020207661756c745f757364725f6265666f72652c0a20202020202063697263756c6174696e675f73757364725f6265666f72652c0a2020202029001641d515330764911765787065637420757364725f6d696e746564203d3d2030001641d51533076491536578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e6564001641d515330764913e657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20757364725f746f5f72656c65617365001641d53001375860b460ee6ea81726eb8c070c1dcdd51812183b9baa00a9bae305930773754604860ee6ea802a6eb4c1e8c1dcdd5000a01a83320e8301c3076375401515330744912a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e6564001641cd1533074491a76578706563740a2020202076616c69646174655f756e7374616b655f696e70757473280a2020202020206f726465725f696e707574732c0a202020202020756e7374616b655f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e7375736472292c0a2020202029001641cd15330744911a65787065637420757364725f746f5f72656c65617365203e2030001641cc6eb4c1dc004dd6983b983c000994c0040060134bd709010000810100002002222598008014400633001003983d0014c8c96600260306eb4c074c1e0dd5001456600266e24dd6980e983c1baa00200189983d1ba8337006eb4c1ec00c004cc1e8dd419b80375a60f660f80066eb4c074c1e0dd500125eb822a660ec92012065787065637420722e666f7266656974203c3d20726571756573745f75736472001641d515330764911565787065637420722e666f7266656974203e3d2030001641d466e0ccdc11bad30593077375400200c00a60f20048019077454cc1c52401236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001641c115330714911c657870656374207661756c745f757364725f6265666f7265203e2030001641c06eb4c1d0004dd6983a183a800cc004dd6183998381baa0559bae301530703754603a60e06ea800e6eb8c148c1c0dd5180e98381baa0039bad307330703754002803a0bc836a6002007375860e260dc6ea800a4601c6eb4c144c1bcdd5000a0163019306e375400505b41ac8a5041a083408888c966002609c60da6ea8006264b30013375e60e460de6ea8c1c8c1bcdd5182898379baa001304733071375200a97ae08acc004c13a60026eacc144c1bcdd5182898379baa001802d2210d7374616b696e675f7661756c7400406113259800982b18379baa0018992cc004006330010018998399ba898009bab30533071375460a660e26ea800e00d4890455534472004068660e660e860e26ea8004cc1cc00d2f5c10624065062831418a0c483b0c1ccc1c0dd5000c18106d182918379baa3051306f3754003153306d4901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641b1153306d4914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641b060e260dc6ea80062a660d892013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641ac6600a008002444464b3001304e306d37540031325980099baf3072306f375460e460de6ea8004c11ccc1c4dd4802a5eb822b3001304e98009bab3051306f3754003005a4410d7374616b696e675f7661756c7400406113259800982b18379baa0018992cc004006330010018acc004cdd7980b18389baa0034c103d87a80008998399ba898009bab305330713754007006a4410455534472004068660e660e860e26ea8004cc1cc00d2f5c1153306f490126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001641b90624065062831418a0c483b0c1ccc1c0dd5000c54cc1b924012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001641b460a460de6ea80062a660da92014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641b1153306d49141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641b060e260dc6ea80062a660d892013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641ac6600a00800244b300133710002900045300103d87a8000899803001000a0ce2264b300100181ec0f6264b300100181f44c96600200303f81fc0fe07f1332259800800c106264b30010018acc004c16c00a264b300130383057375400513259800800c112264b30010018992cc00400608d13259800800c4c9660020030488992cc004006093049824c126264b300130630038acc004c0fcc178dd500344c96600200304b8992cc00400609904c826413226644b300100182744c96600200304f827c13e09f132598009834801c4c966002608c00313259800800c14a264b3001001829c14e0a70538992cc004c1b400e02505441a86eb800506d1835000a0d0306637540171598009822800c56600260cc6ea802e01f051419d051418c8318c190dd500541410661bae00141a460cc0028320dd7000983280120cc3063001418460be6ea801a09482e20948300dd7000a0c63060001417860c0005047823c11e08e8308c17800505c182f001411608b045822a0be305c001416860b06ea800a08682a84c01cc16c02208482c2085042821410905c182c800a0ae375c00260b000482c8c1580050541bac00181ec0f5057182a00120a481d203c81d203c8992cc00400607703b81dc4c8c00cc154010dd6800c0ed055182900120a08992cc00400607303981cc4c8c00cc14c010dd6800c0e50531828001209c81b209881b40da06d0364140609a0028258c13400a06903481a40d104e1825800a092375a0026094005031412c60900028230dd6800982380140b90481822800a0863758002608800502b815a08a304200141006eb0004c10400a0510284108607e00281e8c0ecdd50034099038409903c1bac001812c09503f181e000a074303c002811c08e04702340f4607400281c0c0e800a043021810c08503b181c000a06c3034375400f01f40c4444b300130153034375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c4c9660020030098992cc00400601500a80544c966002608600719800804c6600200900c805a01e805a022805a080375a00300a410c608000281f0c10000a0110088044021041181f000a078375a002607a00500540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c8444b300130153034375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c11800e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c12c00e02901341206eb800504b1824000a08c375c002608e0048240c1140050434039012403901440390431bac001806c0350461821800a0823043002805c02e01700b4110608200281f8dd680098200014021041181f000a078375a002607a00500540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c880cc06603301940cc664464b30013010302f375400313030323376060680026068606a0026eb0c0ccc0c0dd5000c54cc0b924018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b4646600200200644b30010018a60103d87a80008992cc004cdd7981880099ba548010cc0d0c028cc0d0dd480225eb812f5c11300c33034374e66068606200266068606400297ae04bd7044cc00c00cc0d800902f181a000a06437566060606260626062606260626062606260626062605a6ea8048dd7181818169baa0019800912cc004006297ae089981818169818800998010011819000a05e9112cc004cdc48012400110018cc00400e66e10009201499b8b3370066e14009201448180005003205891111919800800802912cc004006200b13259800800c4cc010c0d800801a26600a606c0046600600600281a0c0d80050334dd6180718161baa01148888c8c8c8cc88c966002003159800980b181a9baa0018992cc00400604713259800800c09204902481244cc89660020030268992cc0040062b3001303f0028acc004c06cc0e8dd5000c4c9660020030288992cc004006264b300100181544c96600200313259800800c0b2264b30010018992cc00400605d13259800800c4c9660020030308992cc004006264b300100181944c96600200313259800800c0d2264b30010018992cc00400606d13259800800c4c9660020030388992cc004006264b300100181d44c96600200303b81dc4cc896600200303d8992cc0040062b300130560028cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c0c8c144dd500344c96600200303f8992cc004006081040820410226644b300100182144c966002003043821c10e0871332259800800c116264b3001001823411a08d046899912cc00400609113259800800c126093049824c4c96600260c400713303f00f225980080146600201f102b826206c8992cc0040062b300130413060375400313259800800c13a264b3001001827c13e26644b3001001828c4c966002003052829414a26644b300100182a44c96600200305582ac156264b3001306e0038acc00401e0ad13259800800c15e0af05782bc4cc89660020030598992cc0040060b505a82d416a264b30013073003898081839808c16d0701bae00141cc60e00028370dd7000983780420e0306d00741ad05641ac6eb40060aa8370c1ac0050691bad001306a00282920d6306800141986eb0004c19c00a09f04f41a060ca0028318c184dd5000c13505e413609b04d826a0cc3063002418504a417c6eb8005062182f800a0ba375c00260bc00482f8c17000505a1bae001305b002417060b200282b8dd7000982c00120b23056001415060a46ea801a07c827a07c813a07c813a07c813a07c813a07c813a07c813a07c813a07c813a07c829a07d03e81f40f9057182a000a0a4375800260a600503b81da0a83051001413c60a200503981cc0e60728290c13c00504d182780140de06f03781ba0a0304d001412c609a00503581ac0d606a8270c12c005049182580140ce067033819a0983049001411c6092005031818c0c60628250c11c005045182380140be05f02f817a0903045001410c608a00502d816c0b605a8230c10c005041182180140ae05702b815a088304100140fc6082005029814c0a60528210c0fc00503d181d9baa001813a070813a078813c09e04f0274100607a00281d8dd7000981e001207a303a00140e0606c6ea8006044819a045022811408903b29981999b964912467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea40c522010013259800980b181a9baa00189929981a99b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980f181b9baa0018992cc0040062b300130193038375400313259800800c0d6264b300100181b40da06d036899912cc0040060711325980098210014401a07281f8c10000503e1bae001303f0024100607a00281d8c0e4dd5000c0d103640d206903481a207c303b30383754003153303649013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640d46034606e6ea8c064c0dcdd5000981c981b1baa0018a9981a24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640cc646600200200e44b30010018a60103d87a80008992cc004c8cc004004c014dd5980d981c9baa301b3039375400444b30010018a508acc004cdc79bae303d0010368a51899801001181f000a06e40ed130123303a0014bd7044cc00c00cc0f0009035181d000a070300100130070072223259800801c4c8c8cc88cc024008cdc5244101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100c20765980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81a90351bac3038002375a606c0026466ec0dd4181b0009ba73037001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6076003337149101023a200098008054c0f000600a805100a181f00144ca6002015303b00199b8a489023a200098008054c0f0006600e66008008004805100a181f0012078303e00140ec66e29220102207d0000340e06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900920703758007133005375a0060051323371491102682700329800800cc044dc68014cdc52450127000044004444b30013371000490004400626466453001006980b002ccdc599b800025980099b88002480522903045206e40e866e2ccdc0000acc004cdc4000a4029148182290372074004401866e0c00520203370c002901019b8e00400240dc6eb800d03b1b8a4881022c20002232330010010032259800980a800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000340c88190c00c00c444b3001300d302c375400713259800800c00a264b30010018992cc00400600913259800800c566002606a00519800801c4c966002602400313259800800c01e264b30010018acc004c0e000a264b300130150018992cc00400601513259800800c566002607600519800800c032016807201681c201700b805c02d03c181c800a06e30353754005159800980a000c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c9660026084007013809207e375a0030114108607e00281e8dd6800981f001403903f181e000a074375a002607600500b40f0607200281b8c0d4dd5001402503220643033375400300840d5008804402201081c8c0d800503418191baa0028acc004c0440062b3001303237540050078032066803205e40bc60606ea800600a804200a819200b005802c0150361819800a0623033002801c00e00700340d060620028178c0b4dd5001c00502a111194c004006009003400444464b300130110018992cc00400600d13259800800c01e00f007803c4c9660026070007005804206a375c00281c0c0d400503318189baa0038acc004c040006264b300100180344c966002003007803c4c96600260700071330150012259800801401e264b30010018cc00402a00313002303b003402900b805c02e01681e0c0e400903740210351bac001803c01d038181a800a06630313754007159800980b800c4c9660020030068992cc00400600f0078992cc004c0e000e26602a00244b3001002803c4c966002003198008054006260046076006805201700b805c02d03c181c801206e804206a3758003007803a070303500140cc60626ea800e2b3001300f0018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981d801c4cc060004896600200500a8992cc0040063300100d800c4c008c0f800d00d403a01d00e807207e303c00240e900b40e06eb000601500a40ec607000281b0dd6800981b801401d038181a800a066303137540071598009807000c4c9660020030068992cc00400600f007803c4c9660026070007005804206a375a00300740e0606a0028198c0c4dd5001c566002601a00313259800800c01a264b3001001803c01e00f13259800981c001c01601081a8dd6800c01d038181a800a066303137540071598009806000c4c9660020030068992cc00400600f007803c01e264b30013038003802c0210351bae00140e0606a0028198c0c4dd5001c01502e205c40b8817102e205c40b8605e6ea8008888c966002601a00313259800800c00e264b300100180240120090048992cc004c0d000e00d00540c46eb80050341818800a05e302d37540091598009806000c4c9660020030038992cc0040060090048024012264b3001303400380340150311bae00140d060620028178c0b4dd5002400902a2054302b37540068b2032180d800980b1baa01c8a4d15330144911856616c696461746f722072657475726e65642066616c73650013656404c1" + : + "591d0b010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a37540072300e300f300f001918071807800c88c8cc00400400c88cc00c004c00800a6e1d20009b874800a6e1d20069b87480226e1d200a9b87480326e9520009ba5480092222222222229800911192cc004c03000626464b3001302000280245901d1bae301e001301a37540071598009805800c4c966002603e00313300e3758603c00244b3001002802c6600200f3020002898009810801200e407916407060346ea800e2b300130120018992cc004c07c00626601c6eb0c07800489660020050058cc00401e6040005130013021002401c80f22c80e0c068dd5001c56600260140031323322598009810800c4cc040dd61810000912cc00400a00f19800804cc08800a260026046004804902045901e1bad301e001301f001301a37540071598009804800c4c8c96600260400050048b203a375a603c00260346ea800e2b30013008001899192cc004c08000a0091640746eb4c078004c068dd5001c566002600e0031323259800981000140122c80e8dd7180f000980d1baa0038b2030406080c10182030406080c0c060dd5001488c96600260160031323259800980f80140122c80e0dd7180e800980c9baa0038acc004c02800626464b3001301f00280245901c1bae301d0013019375400716405c80b8c05cdd5001489660026014602e6ea800a2646464b3001301f002899192cc004c03c0062b3001301d37540050068b203c8acc004c03800626464b300130230028044590201bad3021001301d3754005159800980a800c566002603a6ea800a00d16407916406c80d901b180d9baa001301e0038b20383259800980d800c56600266e252004301a0018b44c030c06800501945901c1baa301d001301d0013018375400516405922598009805180b9baa0028991919912cc004c08000e00b1640746eb4c074004dd7180e801180e800980c1baa0028b202c91192cc004c02c00626464b3001301f00280245901c1bad301d001301937540071598009805000c56600260326ea800e00516406916405c80b8c05cdd500124444466446645300133223259800980a18109baa001898111919bb03026001302630270013758604a60446ea80062c8100c8cc00400400c896600200314c103d87a80008992cc004cdd7981180099ba548010cc098c03ccc098dd480225eb812f5c11301033026374e6604c60460026604c604800297ae04bd7044cc00c00cc0a00090221813000a04837566044604660466046604660466046604660466046603e6ea8058dd71811180f9baa002912cc004c04cc080dd500144c8c8c8ca60026eb4c0a00066eb4c0a000e60500049112cc004c0b0012266014605600e26601e0020111640a43028001302700130260013021375400516407d2259800980998101baa002899191919194c004dd61814800cdd698148024dd69814801cc0a40092222598009817002c4cc030c0b40244cc0440044c8cc8966002606200700d8b205c375c605c0026eb8c0b8014c0b80122c815860520026050002604e002604c00260426ea800a2c80f922259800980a18109baa003899191919912cc004c0ac00e264b3001301a30273754003132323232323298009818800cdd61818802cdd698188024dd69818801cc0c40092222259800981b80344cc098dd6181b005912cc00400a26605000c44b300100289980e80289980e8048992cc004c0a8c0dcdd500944c8c8c966002607e005132332259800981800144c96600260860031330323758608400244b300100280244cc080c1100084c004c114009042459040181f1baa0038acc004c0bc00a264b300130430018998191bac304200122598008014012266040608800426002608a00482122c8200c0f8dd5001c566002606c005132598009821800c4cc0c8dd61821000912cc00400a00913302030440021300130450024109164100607c6ea800e2b3001302e0028992cc004c10c0062660646eb0c1080048966002005004899810182200109800982280120848b2080303e3754007159800981680144c96600260860031330323758608400244b300100280244cc084c1100084c004c114009042459040181f1baa0038acc004c0b000a264b300130430018998191bac304200122598008014012266042608800426002608a00482122c8200c0f8dd5001c5660026056005132598009821800c4cc0c8dd61821000912cc00400a00913302030440021300130450024109164100607c6ea800e2b30013370e900700144c96600260860031330323758608400244b300100280244cc080c1100084c004c114009042459040181f1baa0038b207840f081e103c207840f081e103c181d9baa001132598009817800c4c966002608400313302530410010078b207e303d37540071598009817000c4c9660026084003132598009818981f1baa00189919192cc004c11800a266054608a00626605400201716410c60880026088002607e6ea80062c81e8c1040062c81f8c0f4dd5001c5903b2076303b3754004607c0071640f0607a002607a00260706ea804a2c81b04cc0a8048896600200519800981e181c9baa302d303937540352298009919800800801912cc00400629422b30013375e6080607a6ea8c100c0f4dd51818981e9baa304000130283303f375200697ae08a518998010011820800a07640f94a14a281ca4607a607c607c607c607c607c607c607c607c0032302b30393754607a646600200200444b30010018a5eb8503d87a80008101800044c8cc896600330013030303e375460840074a14a281ea26608330014a14c103d87a8000a60103d879800040f4660826e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11000400e2946266004004608a00281f904244cc106600294298103d87a8000a60103d879800040f4660826e9c0092f5c11330419800a51a60103d87a8000a60103d879800040f4660826e9ccc104dd400080125eb8103d207a3758608060820026eb4c100008cc008008c10000503d48c0f4c0f8c0f8c0f8c0f8006444b30010028a6103d87a80008acc004c0b8006260506607c607e00497ae08cc00400e6080005337000029000a00640e881ea4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208089980280298230022080375c607e0026eb4c100004c108005040191919800800803112cc00400600713233225980099b910090028acc004cdc78048014400600c820a26600a00a608e0088208dd718200009bab304100130430014104297adef6c6014800244b3001302d303a375400513232598009820801400e2c81f0dd6981f800981d9baa0028b2072911919800800801912cc004006297ae0899912cc004cdd79821181f9baa3042303f37546066607e6ea8008c0a8cc104dd4802a5eb822660820046600800800313300400400140f46080002608200281f24607a607c607c607c607c607c0032303d303e303e303e001912cc0040062900044cdc02400466004004607e00281e2444653001001802400d0011112cc00400a2b30010018a518a504101159800800c52845660026600860840046eb4c1080063300100398218014c10c0050034528207a4100820244b3001302d303a375400513232323298009821000cc10800e60840049112cc004c11801226604e608a00e266048004264b3001303500189919912cc004c128006264646644b3001304e00380845904b1bae304b001375c609600460960026eb0c1240062c8238dd69823800982400098219baa0028acc004c0d00062646644b3001304a0018991919912cc004c13800e02116412c6eb8c12c004dd7182580118258009bac30490018b208e375a608e002609000260866ea800a2b3001303b001899194c004dd69824000cc1240066eb4c12000922259800982600144c8c8cc896600260a00070128b209a375c609a0026eb8c134008c134004dd618258014590490c120004c10cdd5001456600260660031323322598009825000c4c8c8cc8966002609c0070108b2096375c60960026eb8c12c008c12c004dd61824800c590471bad30470013048001304337540051598009819000c4c8c966002609200500b8b208c375a608e00260866ea800a2b300130310018991919912cc004c12c00e01b1641206eb4c120004dd69824001182400098219baa0028acc004c0c000626464b30013049002805c590461bad30470013043375400515980099b874803800626464b30013049002805c590461bad304700130433754005164104820904120824104820904120823041375400316410c304200130410013040001303b37540051640e52259800800c52000899b8048008cc008008c0fc00503c4dc4a40013710900024444444444444444530013049375402322259800980880144ca6002003004801d200040044444b30010038acc00400a2003164149198008024c15400e60aa005332259800980380144cdc00019bad30473053375400516414460a80066eb4c15000900420a48b209698060064c01801a4601e00330030034888888c8cc89660026084013198009bac30563053375403530563053375406930473053375406c9112cc004cc070dd6182c982b1baa04d375c60b260ac6ea8c06cc158dd5000c4cc8966002609460ae6ea80062646644b300130130028acc004c04c0062b3001598009826800c528c4c04800905944c9660026026003159800cc004cc06cdd6182f982e1baa053375c60a260b86ea8c084c170dd5003cdd61828182e1baa0089982f1828182e1baa3021305c375400e660bc9801054455534472004bd702444b30013370e60240066024019159800980880146600200700291192cc004c150c184dd5000c4cc896600260b860c66ea80062646603e0022b30013375e60b460ca6ea800cc1a0c194dd5003456600266ebcc164c194dd5000983418329baa0038acc004cdc49bad3059306537540073001375660b260ca6ea8c164c194dd50034dd71834003cdd7182c803a04c8992cc004c154c194dd5000c4cdc39bad3069306637540026eb4c168c198dd5002452820c8305a3065375400316418d16418d16418c60ce60c86ea80062c8310c194c188dd5000982b98311baa3056306237540071641806602201c00280d22c82ea2c82e9159800cc004dd61828982e1baa0539bac305f305c37540113305e3050305c3754604260b86ea801ccc17930106457355534472004bd702444b30013370e6020004602401919800806400a4464b30013054306137540031325980099baf30663063375400260cc60c66ea8c198c18cdd5002456600266ebcc160c18cdd5000982b98319baa30663063375400913370f3001375660ae60c66ea80066eb8c1980166eb8c15c0150242cc004c15402626eb4c15cc18cdd500244cdc199b82375a60ae60c66ea8010024029061452820c28a50418460ca60c46ea80062c8300cc04401400501a45905d2264b3001304f305c37540031325980099b87375a60c200266e000140222b30013370e6eb4c184c188004cdc0002001c56600266e1e60026eacc084c178dd502acdd71829182f1baa3023305e3754013488105735553447200407c0071305098009bab3021305e37540ab375c60a460bc6ea8c08cc178dd5004d2201045553447200407d1641711641711641713001375860a460ba6ea81526eb8c068c174dd51811182e9baa0089bae3051305d3754604460ba6ea80226eb4c180c174dd5000a0168b20b6301a305c3754011164169164169164168b3001304d0018802c4cdc199b8200500100241651641651641651641646eb4c170004dd6982e182e800cc004dd6182d982c1baa04f9bae301530583754603a60b06ea800e6eb8c130c160dd5180e982c1baa0039bad305b30583754002803a2c82b26002007375860b260ac6ea800a4b3001300e375a609660ae6ea8006260926eb4c050c15cdd5000c52820aa402c603260ac6ea800a2c82a11598009820804c660026eb0c158c14cdd500d4c158c14cdd501a4c11cc14cdd501b2444b30013301c375860b260ac6ea8134dd7182c982b1baa301b3056375400313322598009825182b9baa00189919912cc004c04800a2b30013012001899192cc004c0500062b300198009980e1bac3060305d37540a86eb8c148c174dd51811182e9baa0089bac3051305d37540133305f3051305d3754604460ba6ea8020cc17d300106457355534472004bd702444b30013370e6026006602601b159800980900146600200700291192cc004c154c188dd5000c4cc896600260ba60c86ea8006264660400022b30013375e60b660cc6ea800cc1a4c198dd5003456600266ebcc168c198dd5000983498331baa0038acc004cdc49bad305a306637540073001375660b460cc6ea8c168c198dd50034dd71834803cdd7182d003a04e8992cc004c154c198dd5000c4c96600266e1cdd698358009bad305c3068375400b13370e6eb4c1acc1b0004dd6981298341baa0058a50419860ce6ea80062941065182d98331baa0018b20c88b20c88b20c830683065375400316418c60cc60c66ea8004c160c18cdd5182b98319baa0038b20c23301200f001406d1641791641788acc004cdc3cc004dd59810182e9baa0549bae3051305d3754604460ba6ea8022910105735553447200407866e0520000078992cc004c140c174dd5000c4c96600266e1cdd6983100099b810060038acc004cdc39bad306230630013370200a0131598009828cc004dd59811182f9baa0569bae3053305f3754604860be6ea802a9110455534472004081159800cc004dd6182a182f9baa0569bac3062305f3754017330613053305f3754604860be6ea8028cc185301054455534472004bd702444b30013370e6026004602a01f19800807c00a4464b30013057306437540031325980099baf30693066375400260d260cc6ea8c1a4c198dd5002456600266ebcc16cc198dd5000982d18331baa30693066375400913370f3001375660b460cc6ea80066eb8c1a40166eb8c16801502719b813370666e08dd6982d18331baa00400d00c375a604660cc6ea80122941064452820c830683065375400316418c6602800a00280ea2c8301198009bac3054305f37540ad30623063306330633063306330633063306330633063305f3754015330613053305f3754604860be6ea8028cc185301054455534472004bd704dd69831183180224444b300130550018a51899b8900132330010010052259800800c52000899912cc004cdd7983518339baa002007899b8000198009bab305b30673754005375c60d400d375c60b600c814220028328c1a0004cc008008c1a400506620c245905d45905d45905d45905d4c004dd61829982f1baa0559bae301b305e3754604660bc6ea80266eb8c148c178dd51811982f1baa0099bad3061305e375400280622c82e0c06cc174dd5004c5905b45905b45905b1bad305f001329800800c02697ae1101000081010000200222259800801440063300100398310014c8c96600260306eb4c074c180dd5001456600266e24dd6980e98301baa0020018998311ba8337006eb4c18c00c004cc188dd419b80375a60c660c80066eb4c074c180dd500125eb822c82f22c82f0cdc199b82375a60a660be6ea8004018014c18400900320be8b20b28b20b2375a60b80026eb4c170c17400660026eb0c16cc160dd5027cdd7180a982c1baa301d30583754007375c609860b06ea8c074c160dd5001cdd6982d982c1baa001401d16415930010039bac3059305637540052300e375a609660ae6ea800500b180c982b1baa0028b20a8452820a24144444464b30013048305537540031325980099baf305a3057375460b460ae6ea8c12cc15cdd500098211982c9ba90054bd704566002609130013756609660ae6ea8c12cc15cdd5000c01691010d7374616b696e675f7661756c74004061132598009828182b9baa0018991980c80089982d9ba898009bab304d30593754609a60b26ea800e00d48810455534472004068660b660b860b26ea8004cc16c00d2f5c060b660b06ea80062c82b0c130c15cdd51825982b9baa0018b20aa8b20aa3059305637540031641506600a008002444464b30013048305537540031325980099baf305a3057375460b460ae6ea8004c108cc164dd4802a5eb822b3001304898009bab304b30573754003005a450d7374616b696e675f7661756c74004061132598009828182b9baa0018991980c8008acc004cdd7980b182c9baa0034c0103d87a800089982d9ba898009bab304d30593754007006a4410455534472004068660b660b860b26ea8004cc16c00d2f5c116415c60b660b06ea80062c82b0c130c15cdd5000c59055459055182c982b1baa0018b20a833005004001225980099b8800148002298103d87a8000899803001000a0a022646644b30013040001899912cc004c0c0c0f4dd500144c8c8c8cc8966002608e00713259800981b18219baa0018991919912cc004c13000e264b3001303b001899192cc004c13c00a01d1641306eb8c134004c124dd5003c566002607400315980098249baa00780645904a459047208e3047375400d1641246eb8c124004dd71824801182480098221baa0018b208430460058b2088375c6088002608800460880026086002607c6ea800a2c81e0c0fc0044c010c1000162c81e8dd7181e800981f0009bac303c00240e91323002303c003375a607400481c2264600460740066eb4c0e00090364590340c0c4004c0c0004c0bc004c0b8004c0b4004c0a0dd5000c590261815002c590281bac302800130280023028001302700130223754007164080323232598009809180f9baa00189919912cc004c09c006264b30013016302337540031323232323232323232323298009819000cc0c802a606401330320089819003cc0c801a606400b30320049819001cdd6181900124444444444b3001303d00b89980f181e00a89980f00489980f00409980f00389980f00309980f00289980f00209980f0018acc004c0acc0e0dd500144c8c8c8ca60026eb8c1000066eb8c1000126eb8c10000e6eb8c1000092222598009822802c4cc0d0024896600200513302701410248992cc004c0d8c10cdd5000c4c8c8c8cc8966002609a007132323322598009828801c4c02cc1440322c8270dd718270009bae304e002304e0013758609800b1641286eb4c128004dd698250011825000982480098221baa0018b2084304600241111641083040001303f001303e001303937540051640dd1640e8303200130310013030001302f001302e001302d001302c001302b001302a001302900130243754003164088604c0031640906eb8c090004c094004c080dd5000c5901e192cc004c048c07cdd5000c4c966002603260406ea8006264b3001301430213754003132323322598009815001c40162c8138c09c004dd71813801181380098111baa0018b204030243021375400316407c602a60406ea8c050c080dd5181198101baa0018b203c32330010013758602860406ea805c896600200314c0103d87a80008992cc004c8cc004004c014dd5980b98119baa30173023375400444b30010018a508acc004cdc79bae30270010218a518998010011814000a04440951300e330240014bd7044cc00c00cc0980090201812000a04430010012259800800c52f5c1133021301e3022001330020023023001408044b30013011301e3754005132323259800981300144cc018c09400c4c966002602a00315980098119baa002802c590244566002602800313232598009814801401e2c8130dd7181380098119baa0028acc004c06c00626464b30013029002803c59026181380098119baa0028b204240848108c084dd5000c5902318120009812000980f9baa0028b203a300500522598009807980e1baa00289919192cc004c09000a2660126046006264b300130130018992cc004c09800626464b300130160018992cc004c0a400626601c605000201316409860486ea800a2b3001301500189919194c004dd69815000cdd69815001cdd698150012444b3001302e00480745902b0c0a8004c0a4004c090dd5001459022204430223754002604a00316408c60426ea800a2b300130120018acc004c084dd500140162c81122c80f901f180f9baa0018b204230220013022001301d375400516406c4590080c024004c010dd5004c52689b2b20041", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProtocolStakeProtocolStakeElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "593b9d010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a493b657870656374206c6973742e6c656e677468286f75747075745f696e646963657329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a49666578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d206d61746368696e675f726571756573742e616d6f756e7400168a99801a493865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00168a99801a4938657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f6964782900168a99801a49376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f72657175657374732900168a99801a4939657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e6774682872657175657374732900168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a493565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f69647800168a99801a493365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f69647800168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49286578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d20646174756d00168a99801a49566578706563742072656465656d65723a205369676e656452656465656d65723c457874726150726f746f636f6c52656465656d657256313e203d0a2020202020206f7263686573747261746f725f72656465656d657200164888888888888888896600264653001301b001980d980e000cdc3a4009301b0024888966002600460366ea800e33001301f301c37540072302030213021001918101810800c88c8cc00400400c88cc00c004c00800a6e1d20009b874800a6e1d20069b87480226e1d200a9b87480326e9520009b80480066e95200248888888888888c8cc88c8c966002003198009112cc004c044c0c0dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981c80146600200713259800980b000c566002606c6ea800a00f00640dd159800980a800c4c9660020030078992cc0040060110088044022264b3001303d003805402503a1bae00140f4607400281c0c0d8dd50014566002603800313259800800c01e264b3001303c002804c021039181d000a0703036375400500640cc8199033181a1baa001802a016802a06c802c01600b00540e8606e00281a8c0dc00a007003801c00d038181a800a0663031375400700140b922259800980898181baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300130360018acc004cdc4a4008606a0030068992cc004c0ec012264b300130180018acc004c0e0dd5003402601081ca2b300130170018992cc00400601313259800800c02a01500a8992cc004c0fc00e01900b40f06eb400601481f8c0f000503a181c1baa0068acc004c0780062b30013038375400d0098042072804206a40d481a8c0d8dd5002c01d038180a981a800a066803206e3754003005802c01600a81d0c0dc005035181b801400e007003801a070303500140cc60626ea800e0028172444b300130113030375400713259800800c00a264b3001001801c00e007003899912cc00400600b13259800800c01a00d0068992cc004c0ec00e01100740e06eb400600c81d8c0e00050361bae001303700240e0606a0028198c0c4dd5001c00502e4888c966002602400313259800800c00e264b3001001802401200913259800981c801c01a00a81b0dd6800c011039181b000a068303237540091598009808800c56600260646ea801200700240cd00240bc8178c0c0dd5001a44446644b300130143033375400f13259800800c082264b30010018992cc00400604513259800800c4c9660020030248992cc00400604b0258992cc004c0fc00e2b3001301b303a375400d13259800800c09e264b300100181440a226644b300100181544c96600200302b815c4cc896600200302d8992cc00400605d02e81744cc89660020030308992cc004006063031818c4cc89660020030338992cc004006264b300100181ac4c966002003159800982780144cc0b0038896600200513302e00d225980080146600200f19800802c4c9660026060609e6ea8066264b300100181e44c96600200313259800800c0fa264b30010018acc004c16000a26644b300130360018992cc00400608513259800800c10e08713259800982e801c4cc0e800489660020050078992cc00400633001001898011830001c11d029411e08f047823a0c2305e002417104441686eb0006087043417460b400282c0c158dd5002c566002606a00313259800800c10a264b3001001821c10e264b3001305d00389981d000912cc00400a00f13259800800c66002003130023060003823a052823c11e08f047418460bc00482e208882d0dd6000c10e08682e8c168005058182b1baa0058acc004c0f0006264b300100182144c966002003043821c4c96600260ba00713303a0012259800801401e264b30010018cc0040062600460c000704740a5047823c11e08e8308c17800905c411105a1bac001821c10d05d182d000a0b03056375400b159800981a000c4c9660020030428992cc0040060870438992cc004c17400e26607400244b3001002803c4c96600200319800800c4c008c18000e08e814a08f047823c11d061182f00120b882220b43758003043821a0ba305a001416060ac6ea80162b300130330018992cc00400608513259800800c10e08713259800982e801c4cc0e800489660020050078992cc00400633001001898011830001c11d02a411e08f047823a0c2305e002417104441686eb0006087043417460b400282c0c158dd5002c566002606400313259800800c10a264b3001001821c10e264b3001305d00389981d000912cc00400a00f13259800800c66002003130023060003823a054823c11e08f047418460bc00482e208882d0dd6000c10e08682e8c168005058182b1baa0058acc004c0c4006264b300100182144c966002003043821c4c96600260ba00713303a0012259800801401e264b30010018cc0040062600460c000704740a5047823c11e08e8308c17800905c411105a1bac001821c10d05d182d000a0b03056375400b15980099b8748038006264b300100182144c966002003043821c4c96600260ba00713303a0012259800801401e264b30010018cc0040062600460c000704740a5047823c11e08e8308c17800905c411105a1bac001821c10d05d182d000a0b03056375400b041414c829905320a6414c829905320a613259800981a800c4c9660020030418992cc0040062b3001305b0028cc004006011042409d0424161042821410a08482e0c164005057182a9baa0028acc004c0d0006264b3001001820c4c966002003159800982d8014566002606e60ac6ea8006264b3001001821c4c96600200313259800800c116264b30010018acc004c17c00a330010038cc00400601904640b104640b10464171046823411a08c8300c17400505b182e801411208904482220bc305b001416460ae6ea800608482a208482c2085042821410905c182c800a0ae3055375400504041488290c14cdd500098299baa00381fa0aa81fc0fe07f03f416460ac00282a0c15800a07b03d81ec0f5057182a000a0a43050375403303b413426606002a44b30010028cc004c150c144dd5181998289baa024914c004c8cc00400400c896600200314a115980099baf30583055375460b060aa6ea8c0dcc154dd5182c00098169982b9ba90034bd704528c4cc008008c16400505220aca50a51414123055305630563056305630563056305630560019181898289baa305532330010010022259800800c52f5c303d87a80008101800044c8cc8966003300130363056375460b40074a14a282a22660b330014a14c103d87a8000a60103d87980004150660b26e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c17000400e294626600400460ba00282b105a44cc166600294298103d87a8000a60103d87980004150660b26e9c0092f5c11330599800a51a60103d87a8000a60103d87980004150660b26e9ccc164dd400080125eb8105420a8375860b060b20026eb4c160008cc008008c16000505548c154c158c158c158c158006444b30010028a6103d87a80008acc004c0d00062605c660ac60ae00497ae08cc00400e60b0005302d001400c82890554888c8cc88cc008008004896600200300389919912cc004cdc8803801456600266e3c01c00a2003006415d133005005305e004415c6eb8c15c004dd6982c000982d000a0b03232330010010062259800800c00e2646644b30013372201200515980099b8f0090028800c01905844cc014014c17c0110581bae3058001375660b200260b600282c852f5bded8c029000488966002606860a66ea800e264b300100180144c966002003003801c00e264b3001305b003802c0110581bad001801a0b63058001415860a86ea800e002828a44646600200200644b30010018a5eb8226644b30013375e60b460ae6ea8c168c15cdd5181c982b9baa002302f33059375200a97ae089982c80119802002000c4cc010010005054182c000982c800a0ac9182a982b182b182b182b182b000c8c154c158c158c15800644b30010018a4001133700900119801001182b800a0a8911194c0040060090034004444b30010028acc00400629462941058456600200314a115980099802182d0011bad305a0018cc00400e60b6005305b001400d14a082a105820b09112cc004c0d0c14cdd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800983000146600200f19800802c4c966002607a00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b300130670038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001306c00380b40550691bae00141b060d20028338dd7000983400120d23066001419101041906eb000601f00f419c60c80028310dd6800983180140310641830800a0be305d3754009159800981e000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c19c00e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c1b000e02d01541a46eb800506c1834800a0ce375c00260d00048348c19800506440410641bac001807c03d0671832000a0c4375a00260c600500c419060c200282f8c174dd50024566002608600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b3001306a0038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001306f00380cc06106c1bae00141bc60d80028350dd7000983580120d83069001419d013419c6eb000602501241a860ce0028328dd68009833001403d0671832000a0c4375a00260c600500c419060c200282f8c174dd50024566002607600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b300130670038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001306c00380b40550691bae00141b060d20028338dd7000983400120d23066001419101041906eb000601f00f419c60c80028310dd6800983180140310641830800a0be305d3754009159800981d000c4c96600200300b8992cc00400601900c80644c96600260c800700e806a0c2375a00300c419060c200282f8c174dd50024566002607200313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f132598009833801c0460208320dd6800c03d0671832000a0c4375a00260c600500c419060c200282f8c174dd50024566002607000313259800800c02e264b30010018064032019132598009832001c03a01a8308dd6800c0310641830800a0be305d375400915980099b8748038006264b3001001805c4c96600200300c8064032264b3001306400380740350611bad00180620c83061001417c60ba6ea801201482d105a20b4416882d105a20b4416860b66ea800e0128172012818a01282e8c17800505c182f001401e00f007803a0be305c001416860b8005005802c01600a82e8c168005058182d001400e007003801a0b63058001415860a86ea800e002828a44b30010018a4001133700900119801001182b800a0a89b89480026e21200048888888888888888a600260c26ea8046444b300130110028994c004006009003a40008008888966002007159800801440062a660ce92112657870656374205b5d203d206c6973745f62001641a9159800801454cc19d2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc00401260da007306d00299912cc004c01c00a266e0000cdd6982698359baa0028a99834a4811a6578706563742076616c69646174696f6e287265717565737429001641a060d80066eb4c1b000900420d441a9153306349012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900164189300c00c980300348c03c00660060069111111919912cc004c12002633001375860dc60d66ea806a60dc60d66ea80fa609a60d66ea80fd222598009980e1bac3071306e37540a66eb8c1c4c1b8dd5180d98371baa001899912cc004c140c1bcdd5000c4c8cc896600260260051598009809800c566002b300130530018a518980900120e08992cc004c04c0062b300198009980d9bac3077307437540b26eb8c15cc1d0dd51810983a1baa0079bac30563074375401133076305630743754604260e86ea801ccc1d93001054455534472004bd702444b30013370e60240066024019159800980880146600200700291192cc004c168c1e4dd5000c4cc896600260c460f66ea8006264b30010018cc0040062b30013375e60c060fa6ea800cc20004c1f4dd5003456600266ebcc17cc1f4dd5000984000983e9baa0038acc004cdc49bad305f307d37540073001375660be60fa6ea8c17cc1f4dd50034dd7184000803cdd7182f803a04c8992cc004c16cc1f4dd5000c4cdc39bad308101307e37540026eb4c180c1f8dd5002452820f63060307d375400307541e907441e907341e9072407d07283941ca0e4841008c1fcc1f0dd5000c1b1079183e983d1baa001305d307a375460b860f46ea800e0dc83b8cc04403800501a41a907441a507422b300198009bac3057307437540b3375860ee60e86ea8022660ec60ac60e86ea8c084c1d0dd50039983b260106457355534472004bd702444b30013370e6020004602401919800806400a4464b3001305a307937540031325980099baf307e307b375400260fc60f66ea8c1f8c1ecdd5002456600266ebcc178c1ecdd5000982e983d9baa307e307b375400913370f3001375660ba60f66ea80066eb8c1f80166eb8c1740150242cc004c16c02626eb4c174c1ecdd500244cdc199b82375a60ba60f66ea8010024029078452820f08a5041e060fa60f46ea80060e883b8cc04401400501a41c10742264b30013055307437540031325980099b87375a60f200266e000140222b30013370e6eb4c1e4c1e8004cdc0002001c56600266e1e60026eacc084c1d8dd502dcdd7182c183b1baa302330763754013488105735553447200407c0071305698009bab3021307637540b7375c60b060ec6ea8c08cc1d8dd5004d2201045553447200407d1533074491246578706563742073757364725f6d696e746564203d3d2073757364725f746f5f6d696e74001641cd15330744914a6578706563742063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202b2073757364725f746f5f6d696e74001641cd153307449140657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202b20746f74616c5f757364725f7374616b6564001641cd3001375860b060ea6ea816a6eb8c068c1d4dd51811183a9baa0089bae305730753754604460ea6ea80226eb4c1e0c1d4dd5000a01683220e4301a307437540111533072491dc6578706563740a2020202076616c69646174655f7374616b655f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020207374616b655f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e7375736472292c0a2020202020207661756c745f757364725f6265666f72652c0a20202020202063697263756c6174696e675f73757364725f6265666f72652c0a2020202029001641c51533072491a26578706563740a2020202076616c69646174655f7374616b655f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020207374616b655f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e75736472292c0a2020202029001641c51533072491186578706563742073757364725f746f5f6d696e74203e2030001641c4b300130530018802c4cdc199b8200500100241c115330714913d6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c207661756c745f757364725f6265666f7265203e2030001641c11533071491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001641c115330714911d657870656374207661756c745f757364725f6265666f7265203e3d2030001641c06eb4c1d0004dd6983a183a800cc004dd6183998381baa0559bae301530703754603a60e06ea800e6eb8c148c1c0dd5180e98381baa0039bad307330703754002803a0bc836a6002007375860e260dc6ea800a4b3001300e375a60a260de6ea80062609e6eb4c050c1bcdd5000c52820d8402c603260dc6ea800a0b683591598009823804c660026eb0c1b8c1acdd500d4c1b8c1acdd501f4c134c1acdd501fa444b30013301c375860e260dc6ea814cdd7183898371baa301b306e37540031332259800982818379baa00189919912cc004c04800a2b3001301200189919912cc004c05400a2b300198009980e9bac3079307637540b66eb8c164c1d8dd51811983b1baa0099bac30583076375401533078305830763754604660ec6ea8024cc1e130106457355534472004bd702444b30013370e6028006602801d159800980980146600200700291192cc004c170c1ecdd5000c4cc896600260c860fa6ea8006264b30010018cc0040062b30013375e60c460fe6ea800cc20804c1fcdd5003456600266ebcc184c1fcdd5000984100983f9baa0038acc004cdc49bad3061307f37540073001375660c260fe6ea8c184c1fcdd50034dd7184100803cdd71830803a0508992cc004c170c1fcdd5000c4c96600266e1cdd69842008009bad3063308101375400b13370e6eb4c21004c21404004dd698131840809baa0058a5041f86100026ea8006294107d1831183f9baa00183ba0f883b20f883aa0f883a204283a41d20e907442100461020260fc6ea80060dc83d8c1fcc1f0dd5000982f983e1baa305e307c375400707041e46602602000280e20d883b20d683b115980099b8798009bab3021307637540b7375c60b060ec6ea8c08cc1d8dd5004d220105735553447200407c66e0520000088992cc004c15cc1d8dd5000c4c96600266e1cdd6983d80099b810070048acc004cdc39bad307b307c0013370200c015159800982c4c004dd59811983c1baa05d9bae305a30783754604a60f06ea802e9110455534472004085159800cc004dd6182d983c1baa05d9bac307b307837540193307a305a30783754604a60f06ea802ccc1e9301054455534472004bd702444b30013370e6028004602c02119800808400a4464b3001305e307d37540031325980099baf308201307f375400261040260fe6ea8c20804c1fcdd5002456600266ebcc188c1fcdd50009830983f9baa308201307f375400913370f3001375660c260fe6ea80066eb8c208040166eb8c18401502819b813370666e08dd69830983f9baa00400e00d375a604860fe6ea8012294107c452820f8308101307e375400307841ec6602a00a00280f20e883c1198009bac305b307837540bb307b307c307c307c307c307c307c307c307c307c307c307837540173307a305a30783754604a60f06ea802ccc1e9301054455534472004bd702444b3001305b0068a51899b8900632330010010042259800800c52000899912cc004cdd7984100983f9baa002006899b8000198009bab3061307f3754005375c61040200b375c60c200a8142200283e0c20004004cc008008c2040400507e20f0454cc1d9241df6578706563740a2020202076616c69646174655f756e7374616b655f6f757470757473280a20202020202074782e6f7574707574732c0a202020202020756e7374616b655f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e75736472292c0a2020202020207661756c745f757364725f6265666f72652c0a20202020202063697263756c6174696e675f73757364725f6265666f72652c0a2020202029001641d515330764911765787065637420757364725f6d696e746564203d3d2030001641d51533076491536578706563740a2020202063697263756c6174696e675f73757364725f6166746572203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e6564001641d515330764913e657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20757364725f746f5f72656c65617365001641d53001375860b460ee6ea81726eb8c070c1dcdd51812183b9baa00a9bae305930773754604860ee6ea802a6eb4c1e8c1dcdd5000a01a83320e8301c3076375401515330744912a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e6564001641cd1533074491a76578706563740a2020202076616c69646174655f756e7374616b655f696e70757473280a2020202020206f726465725f696e707574732c0a202020202020756e7374616b655f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a2020202020202873657474696e67732e72656769737472792e757364722c20636f6e7374616e74732e7375736472292c0a2020202029001641cd15330744911a65787065637420757364725f746f5f72656c65617365203e2030001641cc6eb4c1dc004dd6983b983c000994c0040060134bd709010000810100002002222598008014400633001003983d0014c8c96600260306eb4c074c1e0dd5001456600266e24dd6980e983c1baa00200189983d1ba8337006eb4c1ec00c004cc1e8dd419b80375a60f660f80066eb4c074c1e0dd500125eb822a660ec92012065787065637420722e666f7266656974203c3d20726571756573745f75736472001641d515330764911565787065637420722e666f7266656974203e3d2030001641d466e0ccdc11bad30593077375400200c00a60f20048019077454cc1c52401236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001641c115330714911c657870656374207661756c745f757364725f6265666f7265203e2030001641c06eb4c1d0004dd6983a183a800cc004dd6183998381baa0559bae301530703754603a60e06ea800e6eb8c148c1c0dd5180e98381baa0039bad307330703754002803a0bc836a6002007375860e260dc6ea800a4601c6eb4c144c1bcdd5000a0163019306e375400505b41ac8a5041a083408888c966002609c60da6ea8006264b30013375e60e460de6ea8c1c8c1bcdd5182898379baa001304733071375200a97ae08acc004c13a60026eacc144c1bcdd5182898379baa001802d2210d7374616b696e675f7661756c7400406113259800982b18379baa0018992cc004006330010018998399ba898009bab30533071375460a660e26ea800e00d4890455534472004068660e660e860e26ea8004cc1cc00d2f5c10624065062831418a0c483b0c1ccc1c0dd5000c18106d182918379baa3051306f3754003153306d4901566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641b1153306d4914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641b060e260dc6ea80062a660d892013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641ac6600a008002444464b3001304e306d37540031325980099baf3072306f375460e460de6ea8004c11ccc1c4dd4802a5eb822b3001304e98009bab3051306f3754003005a4410d7374616b696e675f7661756c7400406113259800982b18379baa0018992cc004006330010018acc004cdd7980b18389baa0034c103d87a80008998399ba898009bab305330713754007006a4410455534472004068660e660e860e26ea8004cc1cc00d2f5c1153306f490126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001641b90624065062831418a0c483b0c1ccc1c0dd5000c54cc1b924012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d001641b460a460de6ea80062a660da92014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d2031001641b1153306d49141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c7429001641b060e260dc6ea80062a660d892013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641ac6600a00800244b300133710002900045300103d87a8000899803001000a0ce2264b300100181ec0f6264b300100181f44c96600200303f81fc0fe07f1332259800800c106264b30010018acc004c16c00a264b300130383057375400513259800800c112264b30010018992cc00400608d13259800800c4c9660020030488992cc004006093049824c126264b300130630038acc004c0fcc178dd500344c96600200304b8992cc00400609904c826413226644b300100182744c96600200304f827c13e09f132598009834801c4c966002608c00313259800800c14a264b3001001829c14e0a70538992cc004c1b400e02505441a86eb800506d1835000a0d0306637540171598009822800c56600260cc6ea802e01f051419d051418c8318c190dd500541410661bae00141a460cc0028320dd7000983280120cc3063001418460be6ea801a09482e20948300dd7000a0c63060001417860c0005047823c11e08e8308c17800505c182f001411608b045822a0be305c001416860b06ea800a08682a84c01cc16c02208482c2085042821410905c182c800a0ae375c00260b000482c8c1580050541bac00181ec0f5057182a00120a481d203c81d203c8992cc00400607703b81dc4c8c00cc154010dd6800c0ed055182900120a08992cc00400607303981cc4c8c00cc14c010dd6800c0e50531828001209c81b209881b40da06d0364140609a0028258c13400a06903481a40d104e1825800a092375a0026094005031412c60900028230dd6800982380140b90481822800a0863758002608800502b815a08a304200141006eb0004c10400a0510284108607e00281e8c0ecdd50034099038409903c1bac001812c09503f181e000a074303c002811c08e04702340f4607400281c0c0e800a043021810c08503b181c000a06c3034375400f01f40c4444b300130153034375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c4c9660020030098992cc00400601500a80544c966002608600719800804c6600200900c805a01e805a022805a080375a00300a410c608000281f0c10000a0110088044021041181f000a078375a002607a00500540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c8444b300130153034375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c11800e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c12c00e02901341206eb800504b1824000a08c375c002608e0048240c1140050434039012403901440390431bac001806c0350461821800a0823043002805c02e01700b4110608200281f8dd680098200014021041181f000a078375a002607a00500540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c880cc06603301940cc664464b30013010302f375400313030323376060680026068606a0026eb0c0ccc0c0dd5000c54cc0b924018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b4646600200200644b30010018a60103d87a80008992cc004cdd7981880099ba548010cc0d0c028cc0d0dd480225eb812f5c11300c33034374e66068606200266068606400297ae04bd7044cc00c00cc0d800902f181a000a06437566060606260626062606260626062606260626062605a6ea8048dd7181818169baa0019800912cc004006297ae089981818169818800998010011819000a05e9112cc004cdc48012400110018cc00400e66e10009201499b8b3370066e14009201448180005003205891111919800800802912cc004006200b13259800800c4cc010c0d800801a26600a606c0046600600600281a0c0d80050334dd6180718161baa01148888c8c8c8cc88c966002003159800980b181a9baa0018992cc00400604713259800800c09204902481244cc89660020030268992cc0040062b3001303f0028acc004c06cc0e8dd5000c4c9660020030288992cc004006264b300100181544c96600200313259800800c0b2264b30010018992cc00400605d13259800800c4c9660020030308992cc004006264b300100181944c96600200313259800800c0d2264b30010018992cc00400606d13259800800c4c9660020030388992cc004006264b300100181d44c96600200303b81dc4cc896600200303d8992cc0040062b300130560028cc00405a330010148cc00404a330010108cc00403a3300100c8cc00402a330010088acc004c0c8c144dd500344c96600200303f8992cc004006081040820410226644b300100182144c966002003043821c10e0871332259800800c116264b3001001823411a08d046899912cc00400609113259800800c126093049824c4c96600260c400713303f00f225980080146600201f102b826206c8992cc0040062b300130413060375400313259800800c13a264b3001001827c13e26644b3001001828c4c966002003052829414a26644b300100182a44c96600200305582ac156264b3001306e0038acc00401e0ad13259800800c15e0af05782bc4cc89660020030598992cc0040060b505a82d416a264b30013073003898081839808c16d0701bae00141cc60e00028370dd7000983780420e0306d00741ad05641ac6eb40060aa8370c1ac0050691bad001306a00282920d6306800141986eb0004c19c00a09f04f41a060ca0028318c184dd5000c13505e413609b04d826a0cc3063002418504a417c6eb8005062182f800a0ba375c00260bc00482f8c17000505a1bae001305b002417060b200282b8dd7000982c00120b23056001415060a46ea801a07c827a07c813a07c813a07c813a07c813a07c813a07c813a07c813a07c813a07c829a07d03e81f40f9057182a000a0a4375800260a600503b81da0a83051001413c60a200503981cc0e60728290c13c00504d182780140de06f03781ba0a0304d001412c609a00503581ac0d606a8270c12c005049182580140ce067033819a0983049001411c6092005031818c0c60628250c11c005045182380140be05f02f817a0903045001410c608a00502d816c0b605a8230c10c005041182180140ae05702b815a088304100140fc6082005029814c0a60528210c0fc00503d181d9baa001813a070813a078813c09e04f0274100607a00281d8dd7000981e001207a303a00140e0606c6ea8006044819a045022811408903b29981999b964912467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea40c522010013259800980b181a9baa00189929981a99b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980f181b9baa0018992cc0040062b300130193038375400313259800800c0d6264b300100181b40da06d036899912cc0040060711325980098210014401a07281f8c10000503e1bae001303f0024100607a00281d8c0e4dd5000c0d103640d206903481a207c303b30383754003153303649013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640d46034606e6ea8c064c0dcdd5000981c981b1baa0018a9981a24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640cc646600200200e44b30010018a60103d87a80008992cc004c8cc004004c014dd5980d981c9baa301b3039375400444b30010018a508acc004cdc79bae303d0010368a51899801001181f000a06e40ed130123303a0014bd7044cc00c00cc0f0009035181d000a070300100130070072223259800801c4c8c8cc88cc024008cdc5244101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100c20765980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81a90351bac3038002375a606c0026466ec0dd4181b0009ba73037001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6076003337149101023a200098008054c0f000600a805100a181f00144ca6002015303b00199b8a489023a200098008054c0f0006600e66008008004805100a181f0012078303e00140ec66e29220102207d0000340e06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900920703758007133005375a0060051323371491102682700329800800cc044dc68014cdc52450127000044004444b30013371000490004400626466453001006980b002ccdc599b800025980099b88002480522903045206e40e866e2ccdc0000acc004cdc4000a4029148182290372074004401866e0c00520203370c002901019b8e00400240dc6eb800d03b1b8a4881022c20002232330010010032259800980a800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000340c88190c00c00c444b3001300d302c375400713259800800c00a264b30010018992cc00400600913259800800c566002606a00519800801c4c966002602400313259800800c01e264b30010018acc004c0e000a264b300130150018992cc00400601513259800800c566002607600519800800c032016807201681c201700b805c02d03c181c800a06e30353754005159800980a000c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c9660026084007013809207e375a0030114108607e00281e8dd6800981f001403903f181e000a074375a002607600500b40f0607200281b8c0d4dd5001402503220643033375400300840d5008804402201081c8c0d800503418191baa0028acc004c0440062b3001303237540050078032066803205e40bc60606ea800600a804200a819200b005802c0150361819800a0623033002801c00e00700340d060620028178c0b4dd5001c00502a111194c004006009003400444464b300130110018992cc00400600d13259800800c01e00f007803c4c9660026070007005804206a375c00281c0c0d400503318189baa0038acc004c040006264b300100180344c966002003007803c4c96600260700071330150012259800801401e264b30010018cc00402a00313002303b003402900b805c02e01681e0c0e400903740210351bac001803c01d038181a800a06630313754007159800980b800c4c9660020030068992cc00400600f0078992cc004c0e000e26602a00244b3001002803c4c966002003198008054006260046076006805201700b805c02d03c181c801206e804206a3758003007803a070303500140cc60626ea800e2b3001300f0018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981d801c4cc060004896600200500a8992cc0040063300100d800c4c008c0f800d00d403a01d00e807207e303c00240e900b40e06eb000601500a40ec607000281b0dd6800981b801401d038181a800a066303137540071598009807000c4c9660020030068992cc00400600f007803c4c9660026070007005804206a375a00300740e0606a0028198c0c4dd5001c566002601a00313259800800c01a264b3001001803c01e00f13259800981c001c01601081a8dd6800c01d038181a800a066303137540071598009806000c4c9660020030068992cc00400600f007803c01e264b30013038003802c0210351bae00140e0606a0028198c0c4dd5001c01502e205c40b8817102e205c40b8605e6ea8008888c966002601a00313259800800c00e264b300100180240120090048992cc004c0d000e00d00540c46eb80050341818800a05e302d37540091598009806000c4c9660020030038992cc0040060090048024012264b3001303400380340150311bae00140d060620028178c0b4dd5002400902a2054302b37540068b2032180d800980b1baa01c8a4d15330144911856616c696461746f722072657475726e65642066616c73650013656404c1" + : + "591d0b010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400930090024888966002600460126ea800e33001300d300a37540072300e300f300f001918071807800c88c8cc00400400c88cc00c004c00800a6e1d20009b874800a6e1d20069b87480226e1d200a9b87480326e9520009ba5480092222222222229800911192cc004c03000626464b3001302000280245901d1bae301e001301a37540071598009805800c4c966002603e00313300e3758603c00244b3001002802c6600200f3020002898009810801200e407916407060346ea800e2b300130120018992cc004c07c00626601c6eb0c07800489660020050058cc00401e6040005130013021002401c80f22c80e0c068dd5001c56600260140031323322598009810800c4cc040dd61810000912cc00400a00f19800804cc08800a260026046004804902045901e1bad301e001301f001301a37540071598009804800c4c8c96600260400050048b203a375a603c00260346ea800e2b30013008001899192cc004c08000a0091640746eb4c078004c068dd5001c566002600e0031323259800981000140122c80e8dd7180f000980d1baa0038b2030406080c10182030406080c0c060dd5001488c96600260160031323259800980f80140122c80e0dd7180e800980c9baa0038acc004c02800626464b3001301f00280245901c1bae301d0013019375400716405c80b8c05cdd5001489660026014602e6ea800a2646464b3001301f002899192cc004c03c0062b3001301d37540050068b203c8acc004c03800626464b300130230028044590201bad3021001301d3754005159800980a800c566002603a6ea800a00d16407916406c80d901b180d9baa001301e0038b20383259800980d800c56600266e252004301a0018b44c030c06800501945901c1baa301d001301d0013018375400516405922598009805180b9baa0028991919912cc004c08000e00b1640746eb4c074004dd7180e801180e800980c1baa0028b202c91192cc004c02c00626464b3001301f00280245901c1bad301d001301937540071598009805000c56600260326ea800e00516406916405c80b8c05cdd500124444466446645300133223259800980a18109baa001898111919bb03026001302630270013758604a60446ea80062c8100c8cc00400400c896600200314c103d87a80008992cc004cdd7981180099ba548010cc098c03ccc098dd480225eb812f5c11301033026374e6604c60460026604c604800297ae04bd7044cc00c00cc0a00090221813000a04837566044604660466046604660466046604660466046603e6ea8058dd71811180f9baa002912cc004c04cc080dd500144c8c8c8ca60026eb4c0a00066eb4c0a000e60500049112cc004c0b0012266014605600e26601e0020111640a43028001302700130260013021375400516407d2259800980998101baa002899191919194c004dd61814800cdd698148024dd69814801cc0a40092222598009817002c4cc030c0b40244cc0440044c8cc8966002606200700d8b205c375c605c0026eb8c0b8014c0b80122c815860520026050002604e002604c00260426ea800a2c80f922259800980a18109baa003899191919912cc004c0ac00e264b3001301a30273754003132323232323298009818800cdd61818802cdd698188024dd69818801cc0c40092222259800981b80344cc098dd6181b005912cc00400a26605000c44b300100289980e80289980e8048992cc004c0a8c0dcdd500944c8c8c966002607e005132332259800981800144c96600260860031330323758608400244b300100280244cc080c1100084c004c114009042459040181f1baa0038acc004c0bc00a264b300130430018998191bac304200122598008014012266040608800426002608a00482122c8200c0f8dd5001c566002606c005132598009821800c4cc0c8dd61821000912cc00400a00913302030440021300130450024109164100607c6ea800e2b3001302e0028992cc004c10c0062660646eb0c1080048966002005004899810182200109800982280120848b2080303e3754007159800981680144c96600260860031330323758608400244b300100280244cc084c1100084c004c114009042459040181f1baa0038acc004c0b000a264b300130430018998191bac304200122598008014012266042608800426002608a00482122c8200c0f8dd5001c5660026056005132598009821800c4cc0c8dd61821000912cc00400a00913302030440021300130450024109164100607c6ea800e2b30013370e900700144c96600260860031330323758608400244b300100280244cc080c1100084c004c114009042459040181f1baa0038b207840f081e103c207840f081e103c181d9baa001132598009817800c4c966002608400313302530410010078b207e303d37540071598009817000c4c9660026084003132598009818981f1baa00189919192cc004c11800a266054608a00626605400201716410c60880026088002607e6ea80062c81e8c1040062c81f8c0f4dd5001c5903b2076303b3754004607c0071640f0607a002607a00260706ea804a2c81b04cc0a8048896600200519800981e181c9baa302d303937540352298009919800800801912cc00400629422b30013375e6080607a6ea8c100c0f4dd51818981e9baa304000130283303f375200697ae08a518998010011820800a07640f94a14a281ca4607a607c607c607c607c607c607c607c607c0032302b30393754607a646600200200444b30010018a5eb8503d87a80008101800044c8cc896600330013030303e375460840074a14a281ea26608330014a14c103d87a8000a60103d879800040f4660826e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11000400e2946266004004608a00281f904244cc106600294298103d87a8000a60103d879800040f4660826e9c0092f5c11330419800a51a60103d87a8000a60103d879800040f4660826e9ccc104dd400080125eb8103d207a3758608060820026eb4c100008cc008008c10000503d48c0f4c0f8c0f8c0f8c0f8006444b30010028a6103d87a80008acc004c0b8006260506607c607e00497ae08cc00400e6080005337000029000a00640e881ea4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803208089980280298230022080375c607e0026eb4c100004c108005040191919800800803112cc00400600713233225980099b910090028acc004cdc78048014400600c820a26600a00a608e0088208dd718200009bab304100130430014104297adef6c6014800244b3001302d303a375400513232598009820801400e2c81f0dd6981f800981d9baa0028b2072911919800800801912cc004006297ae0899912cc004cdd79821181f9baa3042303f37546066607e6ea8008c0a8cc104dd4802a5eb822660820046600800800313300400400140f46080002608200281f24607a607c607c607c607c607c0032303d303e303e303e001912cc0040062900044cdc02400466004004607e00281e2444653001001802400d0011112cc00400a2b30010018a518a504101159800800c52845660026600860840046eb4c1080063300100398218014c10c0050034528207a4100820244b3001302d303a375400513232323298009821000cc10800e60840049112cc004c11801226604e608a00e266048004264b3001303500189919912cc004c128006264646644b3001304e00380845904b1bae304b001375c609600460960026eb0c1240062c8238dd69823800982400098219baa0028acc004c0d00062646644b3001304a0018991919912cc004c13800e02116412c6eb8c12c004dd7182580118258009bac30490018b208e375a608e002609000260866ea800a2b3001303b001899194c004dd69824000cc1240066eb4c12000922259800982600144c8c8cc896600260a00070128b209a375c609a0026eb8c134008c134004dd618258014590490c120004c10cdd5001456600260660031323322598009825000c4c8c8cc8966002609c0070108b2096375c60960026eb8c12c008c12c004dd61824800c590471bad30470013048001304337540051598009819000c4c8c966002609200500b8b208c375a608e00260866ea800a2b300130310018991919912cc004c12c00e01b1641206eb4c120004dd69824001182400098219baa0028acc004c0c000626464b30013049002805c590461bad30470013043375400515980099b874803800626464b30013049002805c590461bad304700130433754005164104820904120824104820904120823041375400316410c304200130410013040001303b37540051640e52259800800c52000899b8048008cc008008c0fc00503c4dc4a40013710900024444444444444444530013049375402322259800980880144ca6002003004801d200040044444b30010038acc00400a2003164149198008024c15400e60aa005332259800980380144cdc00019bad30473053375400516414460a80066eb4c15000900420a48b209698060064c01801a4601e00330030034888888c8cc89660026084013198009bac30563053375403530563053375406930473053375406c9112cc004cc070dd6182c982b1baa04d375c60b260ac6ea8c06cc158dd5000c4cc8966002609460ae6ea80062646644b300130130028acc004c04c0062b3001598009826800c528c4c04800905944c9660026026003159800cc004cc06cdd6182f982e1baa053375c60a260b86ea8c084c170dd5003cdd61828182e1baa0089982f1828182e1baa3021305c375400e660bc9801054455534472004bd702444b30013370e60240066024019159800980880146600200700291192cc004c150c184dd5000c4cc896600260b860c66ea80062646603e0022b30013375e60b460ca6ea800cc1a0c194dd5003456600266ebcc164c194dd5000983418329baa0038acc004cdc49bad3059306537540073001375660b260ca6ea8c164c194dd50034dd71834003cdd7182c803a04c8992cc004c154c194dd5000c4cdc39bad3069306637540026eb4c168c198dd5002452820c8305a3065375400316418d16418d16418c60ce60c86ea80062c8310c194c188dd5000982b98311baa3056306237540071641806602201c00280d22c82ea2c82e9159800cc004dd61828982e1baa0539bac305f305c37540113305e3050305c3754604260b86ea801ccc17930106457355534472004bd702444b30013370e6020004602401919800806400a4464b30013054306137540031325980099baf30663063375400260cc60c66ea8c198c18cdd5002456600266ebcc160c18cdd5000982b98319baa30663063375400913370f3001375660ae60c66ea80066eb8c1980166eb8c15c0150242cc004c15402626eb4c15cc18cdd500244cdc199b82375a60ae60c66ea8010024029061452820c28a50418460ca60c46ea80062c8300cc04401400501a45905d2264b3001304f305c37540031325980099b87375a60c200266e000140222b30013370e6eb4c184c188004cdc0002001c56600266e1e60026eacc084c178dd502acdd71829182f1baa3023305e3754013488105735553447200407c0071305098009bab3021305e37540ab375c60a460bc6ea8c08cc178dd5004d2201045553447200407d1641711641711641713001375860a460ba6ea81526eb8c068c174dd51811182e9baa0089bae3051305d3754604460ba6ea80226eb4c180c174dd5000a0168b20b6301a305c3754011164169164169164168b3001304d0018802c4cdc199b8200500100241651641651641651641646eb4c170004dd6982e182e800cc004dd6182d982c1baa04f9bae301530583754603a60b06ea800e6eb8c130c160dd5180e982c1baa0039bad305b30583754002803a2c82b26002007375860b260ac6ea800a4b3001300e375a609660ae6ea8006260926eb4c050c15cdd5000c52820aa402c603260ac6ea800a2c82a11598009820804c660026eb0c158c14cdd500d4c158c14cdd501a4c11cc14cdd501b2444b30013301c375860b260ac6ea8134dd7182c982b1baa301b3056375400313322598009825182b9baa00189919912cc004c04800a2b30013012001899192cc004c0500062b300198009980e1bac3060305d37540a86eb8c148c174dd51811182e9baa0089bac3051305d37540133305f3051305d3754604460ba6ea8020cc17d300106457355534472004bd702444b30013370e6026006602601b159800980900146600200700291192cc004c154c188dd5000c4cc896600260ba60c86ea8006264660400022b30013375e60b660cc6ea800cc1a4c198dd5003456600266ebcc168c198dd5000983498331baa0038acc004cdc49bad305a306637540073001375660b460cc6ea8c168c198dd50034dd71834803cdd7182d003a04e8992cc004c154c198dd5000c4c96600266e1cdd698358009bad305c3068375400b13370e6eb4c1acc1b0004dd6981298341baa0058a50419860ce6ea80062941065182d98331baa0018b20c88b20c88b20c830683065375400316418c60cc60c66ea8004c160c18cdd5182b98319baa0038b20c23301200f001406d1641791641788acc004cdc3cc004dd59810182e9baa0549bae3051305d3754604460ba6ea8022910105735553447200407866e0520000078992cc004c140c174dd5000c4c96600266e1cdd6983100099b810060038acc004cdc39bad306230630013370200a0131598009828cc004dd59811182f9baa0569bae3053305f3754604860be6ea802a9110455534472004081159800cc004dd6182a182f9baa0569bac3062305f3754017330613053305f3754604860be6ea8028cc185301054455534472004bd702444b30013370e6026004602a01f19800807c00a4464b30013057306437540031325980099baf30693066375400260d260cc6ea8c1a4c198dd5002456600266ebcc16cc198dd5000982d18331baa30693066375400913370f3001375660b460cc6ea80066eb8c1a40166eb8c16801502719b813370666e08dd6982d18331baa00400d00c375a604660cc6ea80122941064452820c830683065375400316418c6602800a00280ea2c8301198009bac3054305f37540ad30623063306330633063306330633063306330633063305f3754015330613053305f3754604860be6ea8028cc185301054455534472004bd704dd69831183180224444b300130550018a51899b8900132330010010052259800800c52000899912cc004cdd7983518339baa002007899b8000198009bab305b30673754005375c60d400d375c60b600c814220028328c1a0004cc008008c1a400506620c245905d45905d45905d45905d4c004dd61829982f1baa0559bae301b305e3754604660bc6ea80266eb8c148c178dd51811982f1baa0099bad3061305e375400280622c82e0c06cc174dd5004c5905b45905b45905b1bad305f001329800800c02697ae1101000081010000200222259800801440063300100398310014c8c96600260306eb4c074c180dd5001456600266e24dd6980e98301baa0020018998311ba8337006eb4c18c00c004cc188dd419b80375a60c660c80066eb4c074c180dd500125eb822c82f22c82f0cdc199b82375a60a660be6ea8004018014c18400900320be8b20b28b20b2375a60b80026eb4c170c17400660026eb0c16cc160dd5027cdd7180a982c1baa301d30583754007375c609860b06ea8c074c160dd5001cdd6982d982c1baa001401d16415930010039bac3059305637540052300e375a609660ae6ea800500b180c982b1baa0028b20a8452820a24144444464b30013048305537540031325980099baf305a3057375460b460ae6ea8c12cc15cdd500098211982c9ba90054bd704566002609130013756609660ae6ea8c12cc15cdd5000c01691010d7374616b696e675f7661756c74004061132598009828182b9baa0018991980c80089982d9ba898009bab304d30593754609a60b26ea800e00d48810455534472004068660b660b860b26ea8004cc16c00d2f5c060b660b06ea80062c82b0c130c15cdd51825982b9baa0018b20aa8b20aa3059305637540031641506600a008002444464b30013048305537540031325980099baf305a3057375460b460ae6ea8004c108cc164dd4802a5eb822b3001304898009bab304b30573754003005a450d7374616b696e675f7661756c74004061132598009828182b9baa0018991980c8008acc004cdd7980b182c9baa0034c0103d87a800089982d9ba898009bab304d30593754007006a4410455534472004068660b660b860b26ea8004cc16c00d2f5c116415c60b660b06ea80062c82b0c130c15cdd5000c59055459055182c982b1baa0018b20a833005004001225980099b8800148002298103d87a8000899803001000a0a022646644b30013040001899912cc004c0c0c0f4dd500144c8c8c8cc8966002608e00713259800981b18219baa0018991919912cc004c13000e264b3001303b001899192cc004c13c00a01d1641306eb8c134004c124dd5003c566002607400315980098249baa00780645904a459047208e3047375400d1641246eb8c124004dd71824801182480098221baa0018b208430460058b2088375c6088002608800460880026086002607c6ea800a2c81e0c0fc0044c010c1000162c81e8dd7181e800981f0009bac303c00240e91323002303c003375a607400481c2264600460740066eb4c0e00090364590340c0c4004c0c0004c0bc004c0b8004c0b4004c0a0dd5000c590261815002c590281bac302800130280023028001302700130223754007164080323232598009809180f9baa00189919912cc004c09c006264b30013016302337540031323232323232323232323298009819000cc0c802a606401330320089819003cc0c801a606400b30320049819001cdd6181900124444444444b3001303d00b89980f181e00a89980f00489980f00409980f00389980f00309980f00289980f00209980f0018acc004c0acc0e0dd500144c8c8c8ca60026eb8c1000066eb8c1000126eb8c10000e6eb8c1000092222598009822802c4cc0d0024896600200513302701410248992cc004c0d8c10cdd5000c4c8c8c8cc8966002609a007132323322598009828801c4c02cc1440322c8270dd718270009bae304e002304e0013758609800b1641286eb4c128004dd698250011825000982480098221baa0018b2084304600241111641083040001303f001303e001303937540051640dd1640e8303200130310013030001302f001302e001302d001302c001302b001302a001302900130243754003164088604c0031640906eb8c090004c094004c080dd5000c5901e192cc004c048c07cdd5000c4c966002603260406ea8006264b3001301430213754003132323322598009815001c40162c8138c09c004dd71813801181380098111baa0018b204030243021375400316407c602a60406ea8c050c080dd5181198101baa0018b203c32330010013758602860406ea805c896600200314c0103d87a80008992cc004c8cc004004c014dd5980b98119baa30173023375400444b30010018a508acc004cdc79bae30270010218a518998010011814000a04440951300e330240014bd7044cc00c00cc0980090201812000a04430010012259800800c52f5c1133021301e3022001330020023023001408044b30013011301e3754005132323259800981300144cc018c09400c4c966002602a00315980098119baa002802c590244566002602800313232598009814801401e2c8130dd7181380098119baa0028acc004c06c00626464b30013029002803c59026181380098119baa0028b204240848108c084dd5000c5902318120009812000980f9baa0028b203a300500522598009807980e1baa00289919192cc004c09000a2660126046006264b300130130018992cc004c09800626464b300130160018992cc004c0a400626601c605000201316409860486ea800a2b3001301500189919194c004dd69815000cdd69815001cdd698150012444b3001302e00480745902b0c0a8004c0a4004c090dd5001459022204430223754002604a00316408c60426ea800a2b300130120018acc004c084dd500140162c81122c80f901f180f9baa0018b204230220013022001301d375400516406c4590080c024004c010dd5004c52689b2b20041", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProxyNftProxyNftMint { + public Script: Script + constructor( + utxoRef: OutputReference, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "590377010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a4888888888c96600264653001300a00198051805800cdc3a4001300a0024888966002600460146ea800e264b30010058acc004c00cc02cdd5002c56600260186ea80162b30013003300b375464660020026eb0c040c034dd5001912cc004006298103d87a80008992cc004cdd7980918079baa001016899ba548000cc0440052f5c1133003003301300240306022002807a2b3001329800800d2f5c210140004c8cc004004dd59808980918091809180918071baa0042259800800c52f5c113233223322330020020012259800800c400e2646602e6e9ccc05cdd48029980b980a0009980b980a800a5eb80cc00c00cc064008c05c0050151bab3012003375c601e002660060066028004602400280810011112cc00400a2b30010018a518a99806a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164041159800800c54cc035241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180a801803c56600266e3c004dd7180a80144cdc39bad301530160024800a294100f4528201e3014001375c60260066eb0c0480063300100398098014c04c005003452820184040808229462a660149201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164025153300a4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640250084035008402500880440220108088dd7180718059baa0038b2010180500098029baa00b8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : + "5901b8010100229800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400130080024888966002600460106ea800e26644b30013004300a375464660020026eb0c03cc030dd5002112cc004006298103d87a80008992cc004cdd7980898071baa001014899ba548000cc0400052f5c113300300330120024030602000280722b3001329800800d2f5c210140004c8cc004004dd59808180898089808980898069baa0052259800800c52f5c113233223322330020020012259800800c400e2646602c6e9ccc058dd48029980b18098009980b180a000a5eb80cc00c00cc060008c0580050141bab3011003375c601c002660060066026004602200280790011112cc00400a2b30010018a518b201e8acc0040062d1598009919912cc004cdc79bae30140030088acc004cdc78009bae3014002899b87375a6028602a00490014528201e8a50403c60260026eb8c04800cdd61808800c6600200730120029809000a0068a504030807900f4528c590094590091bae300c30093754006b300130023008375400915980098049baa0048a4d16402916401d16401c300800130033754011149a26cac8009", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + ]), + [ + utxoRef, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1ProxyNftProxyNftElse { + public Script: Script + constructor( + utxoRef: OutputReference, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "590377010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a4888888888c96600264653001300a00198051805800cdc3a4001300a0024888966002600460146ea800e264b30010058acc004c00cc02cdd5002c56600260186ea80162b30013003300b375464660020026eb0c040c034dd5001912cc004006298103d87a80008992cc004cdd7980918079baa001016899ba548000cc0440052f5c1133003003301300240306022002807a2b3001329800800d2f5c210140004c8cc004004dd59808980918091809180918071baa0042259800800c52f5c113233223322330020020012259800800c400e2646602e6e9ccc05cdd48029980b980a0009980b980a800a5eb80cc00c00cc064008c05c0050151bab3012003375c601e002660060066028004602400280810011112cc00400a2b30010018a518a99806a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164041159800800c54cc035241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180a801803c56600266e3c004dd7180a80144cdc39bad301530160024800a294100f4528201e3014001375c60260066eb0c0480063300100398098014c04c005003452820184040808229462a660149201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164025153300a4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640250084035008402500880440220108088dd7180718059baa0038b2010180500098029baa00b8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : + "5901b8010100229800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400130080024888966002600460106ea800e26644b30013004300a375464660020026eb0c03cc030dd5002112cc004006298103d87a80008992cc004cdd7980898071baa001014899ba548000cc0400052f5c113300300330120024030602000280722b3001329800800d2f5c210140004c8cc004004dd59808180898089808980898069baa0052259800800c52f5c113233223322330020020012259800800c400e2646602c6e9ccc058dd48029980b18098009980b180a000a5eb80cc00c00cc060008c0580050141bab3011003375c601c002660060066026004602200280790011112cc00400a2b30010018a518b201e8acc0040062d1598009919912cc004cdc79bae30140030088acc004cdc78009bae3014002899b87375a6028602a00490014528201e8a50403c60260026eb8c04800cdd61808800c6600200730120029809000a0068a504030807900f4528c590094590091bae300c30093754006b300130023008375400915980098049baa0048a4d16402916401d16401c300800130033754011149a26cac8009", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + ]), + [ + utxoRef, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1RealfiMintingPolicyRealfiMintingPolicyMint { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "590605010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c96600264653001300b00198059806000cdc3a4001300b0024888966002600460166ea800e33001375c601e60186ea800e44b30010018a5eb82266020601a6022002660040046024002807a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80624444646600200200a44b30010018802c4c9660020031330043016002006899802980b00119801801800a0283016001404d2301030110019bab300f301030103010301030103010300c37540029111111919191991191929980b99b964910d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c19ba548008cc068dd4800a5eb80dd7180d180b9baa325330163372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4051220100132598009807980c1baa00189929980c19b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c068dd5000c4c9660020031598009809180d9baa0018992cc00400603113259800800c06603301980cc4cc896600200301b8992cc004c09400a200d01c408860460028108dd7000981100120463020001407860386ea800602e80ca02f01780bc05d021180f180d9baa0018a9980ca493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164060603a603c603c60346ea8c028c068dd5000980e180c9baa0018a9980ba4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164058646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806180e1baa300c301c375400444b30010018a508acc004cdc79bae30200010198a518998010011810800a034407913374a90001980e800a5eb82266006006603e00480c0c07400501b1bac3007301737540186002002601001044464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d203a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80b90171bac301a002375a60300026466ec0dd4180c0009ba73019001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a603a003337149101023a200098008054c07800600a805100a181000144ca6002015301d00199b8a489023a200098008054c078006600e66008008004805100a1810001203c3020001407466e29220102207d0000340686eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a20343758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720383371666e000056600266e2000520148a40c11481b901c002200c33706002901019b8600148080cdc70020012032375c00680e8dc5245022c200022323300100100322598009806800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003405080a0c010011164024300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5901b3010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400130090024888966002600460126ea800e2646644646644660040046eacc04cc050c050c050c050c050c050c040dd5003912cc00400629422b30013375e006601e602600314a3133002002301400140388088dd7180898071baa0073374a900119807980818069baa3259800980318069baa0018992cc004cdc3a4008601c6ea8006264b30013008300f375400313232332259800980c001c40162c80a8c054004dd7180a801180a80098081baa0018b201c3012300f3754003164034602260246024601c6ea8c008c038dd5180898071baa0018b2018323300100137586004601c6ea8014896600200314c0103d87a80008992cc004c8cc004004c018dd5980298089baa30053011375400444b30010018a508acc004cdc79bae301500100f8a51899801001180b000a020404d13374a900019809000a5eb8226600600660280048070c04800501025eb80c0040048c03cc040004896600200314bd7044cc038c02cc03c004cc008008c04000500d4590080c024004c010dd5004c52689b2b200401", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1RealfiMintingPolicyRealfiMintingPolicyElse { + public Script: Script + constructor( + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "590605010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c96600264653001300b00198059806000cdc3a4001300b0024888966002600460166ea800e33001375c601e60186ea800e44b30010018a5eb82266020601a6022002660040046024002807a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80624444646600200200a44b30010018802c4c9660020031330043016002006899802980b00119801801800a0283016001404d2301030110019bab300f301030103010301030103010300c37540029111111919191991191929980b99b964910d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c19ba548008cc068dd4800a5eb80dd7180d180b9baa325330163372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4051220100132598009807980c1baa00189929980c19b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c068dd5000c4c9660020031598009809180d9baa0018992cc00400603113259800800c06603301980cc4cc896600200301b8992cc004c09400a200d01c408860460028108dd7000981100120463020001407860386ea800602e80ca02f01780bc05d021180f180d9baa0018a9980ca493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164060603a603c603c60346ea8c028c068dd5000980e180c9baa0018a9980ba4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164058646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806180e1baa300c301c375400444b30010018a508acc004cdc79bae30200010198a518998010011810800a034407913374a90001980e800a5eb82266006006603e00480c0c07400501b1bac3007301737540186002002601001044464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d203a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80b90171bac301a002375a60300026466ec0dd4180c0009ba73019001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a603a003337149101023a200098008054c07800600a805100a181000144ca6002015301d00199b8a489023a200098008054c078006600e66008008004805100a1810001203c3020001407466e29220102207d0000340686eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a20343758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720383371666e000056600266e2000520148a40c11481b901c002200c33706002901019b8600148080cdc70020012032375c00680e8dc5245022c200022323300100100322598009806800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003405080a0c010011164024300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5901b3010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400130090024888966002600460126ea800e2646644646644660040046eacc04cc050c050c050c050c050c050c040dd5003912cc00400629422b30013375e006601e602600314a3133002002301400140388088dd7180898071baa0073374a900119807980818069baa3259800980318069baa0018992cc004cdc3a4008601c6ea8006264b30013008300f375400313232332259800980c001c40162c80a8c054004dd7180a801180a80098081baa0018b201c3012300f3754003164034602260246024601c6ea8c008c038dd5180898071baa0018b2018323300100137586004601c6ea8014896600200314c0103d87a80008992cc004c8cc004004c018dd5980298089baa30053011375400444b30010018a508acc004cdc79bae301500100f8a51899801001180b000a020404d13374a900019809000a5eb8226600600660280048070c04800501025eb80c0040048c03cc040004896600200314bd7044cc038c02cc03c004cc008008c04000500d4590080c024004c010dd5004c52689b2b200401", + Type.Tuple([ + PolicyId, + ]), + [ + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1StakingVaultStakingVaultMint { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : + "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1StakingVaultStakingVaultSpend { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : + "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1StakingVaultStakingVaultElse { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : + "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1TreasuryTreasuryMint { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1TreasuryTreasurySpend { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} +export class V1_0Rc1TreasuryTreasuryElse { + public Script: Script + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? + "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : + "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object({ + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, { ctor: 0n }), + PolicyId, + ]), + [ + utxoRef, + proxyPolicyId, + ], + ), + "PlutusV3" + ); + } +} \ No newline at end of file diff --git a/modules/realfi-partner-sdk/src/generated-types/v1_1_rc1/index.ts b/modules/realfi-partner-sdk/src/generated-types/v1_1_rc1/index.ts new file mode 100644 index 0000000000..ad733059ee --- /dev/null +++ b/modules/realfi-partner-sdk/src/generated-types/v1_1_rc1/index.ts @@ -0,0 +1,1559 @@ +/* eslint-disable */ +// @ts-nocheck +import { applyParamsToScript, cborToScript } from "@blaze-cardano/uplc"; +import { type Script } from "@blaze-cardano/core"; +import { Type, Exact, TPlutusData } from "@blaze-cardano/data"; +type Data = Exact; +type Int = bigint; +type ByteArray = string; +const PolicyId = Type.String(); +const ScriptHash = Type.String(); +type OutputReference = { output_index: bigint; transaction_id: string }; + +const Contracts = Type.Module({ + Bool: Type.Boolean(), + Tuple_VerificationKey_COSESign1: Type.Tuple([ + Type.String(), + Type.Ref("COSESign1"), + ]), + GovernanceConfig: Type.Object( + { + logic_change: Type.Ref("MultisigScript"), + permission_change: Type.Ref("MultisigScript"), + config_change: Type.Ref("MultisigScript"), + shutdown: Type.Ref("MultisigScript"), + restore: Type.Ref("MultisigScript"), + migrate: Type.Ref("MultisigScript"), + }, + { ctor: 0n }, + ), + SettingsAuthPayload: Type.Object( + { + change: Type.Ref("SettingsRedeemer"), + destination: Type.String(), + datum: Type.Ref("ProxyDatum"), + nonce: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + }, + { ctor: 0n }, + ), + SettingsRedeemer: Type.Union([ + Type.Literal("ChangeLogic", { ctor: 0n }), + Type.Literal("ChangePermissions", { ctor: 1n }), + Type.Literal("ChangeConfig", { ctor: 2n }), + Type.Literal("Shutdown", { ctor: 3n }), + Type.Literal("Restore", { ctor: 4n }), + Type.Literal("Migrate", { ctor: 5n }), + ]), + SettingsSignedRedeemer: Type.Object( + { + change: Type.Ref("SettingsRedeemer"), + signatures: Type.Array(Type.Ref("Tuple_VerificationKey_COSESign1")), + }, + { ctor: 0n }, + ), + COSESign1: Type.Object( + { + headers: Type.Ref("Headers"), + payload: Type.Optional(Type.String()), + signature: Type.String(), + }, + { ctor: 0n }, + ), + HeaderMap: Type.String(), + Headers: Type.Object( + { + protected: Type.Ref("HeaderMap"), + unprotected: Type.Ref("HeaderMap"), + }, + { ctor: 0n }, + ), + MultisigScript: Type.Union([ + Type.Object({ + Signature: Type.Object( + { + key_hash: Type.String(), + }, + { ctor: 0n }, + ), + }), + Type.Object({ + AllOf: Type.Object( + { + scripts: Type.Array(Type.Ref("MultisigScript")), + }, + { ctor: 1n }, + ), + }), + Type.Object({ + AnyOf: Type.Object( + { + scripts: Type.Array(Type.Ref("MultisigScript")), + }, + { ctor: 2n }, + ), + }), + Type.Object({ + AtLeast: Type.Object( + { + required: Type.BigInt(), + scripts: Type.Array(Type.Ref("MultisigScript")), + }, + { ctor: 3n }, + ), + }), + Type.Object({ + Before: Type.Object( + { + time: Type.BigInt(), + }, + { ctor: 4n }, + ), + }), + Type.Object({ + After: Type.Object( + { + time: Type.BigInt(), + }, + { ctor: 5n }, + ), + }), + Type.Object({ + Script: Type.Object( + { + script_hash: Type.String(), + }, + { ctor: 6n }, + ), + }), + ]), + ProxyDatum: Type.Object( + { + logic: Type.String(), + settings: TPlutusData, + }, + { ctor: 0n }, + ), + Denominator: Type.BigInt(), + DistributionOracleDatum: Type.Object( + { + message: Type.Ref("SignedDistributionOracleMessage"), + staked_usdr: Type.BigInt(), + staking_yield: Type.BigInt(), + }, + { ctor: 0n }, + ), + DistributionOracleMessage: Type.Object( + { + input: Type.Ref("YieldDistributionInput"), + hurdle: Type.Ref("Ratio"), + floor: Type.Ref("Ratio"), + timestamp: Type.Ref("Slot"), + base: Type.BigInt(), + r_max: Type.BigInt(), + }, + { ctor: 0n }, + ), + Numerator: Type.BigInt(), + ProtocolOrchestratorRedeemerV1: Type.Union([ + Type.Object({ + ExecuteOrders: Type.Tuple( + [Type.Ref("SignedRedeemer_v1_1_ExtraProtocolRedeemerV1")], + { ctor: 0n }, + ), + }), + Type.Object({ + PublishYieldOracle: Type.Tuple( + [Type.Ref("SignedDistributionOracleMessage")], + { ctor: 1n }, + ), + }), + ]), + Ratio: Type.Tuple([Type.Ref("Numerator"), Type.Ref("Denominator")]), + SignedDistributionOracleMessage: Type.Object( + { + payload: Type.Ref( + "SignedPayload_v1_1_distribution_oracle_DistributionOracleMessage", + ), + signatures: Type.Array(Type.Ref("Tuple_VerificationKey_COSESign1")), + }, + { ctor: 0n }, + ), + Slot: Type.BigInt(), + YieldDistributionInput: Type.Object( + { + net_distributable_income: Type.BigInt(), + staked_usdr: Type.BigInt(), + }, + { ctor: 0n }, + ), + Asset: Type.Tuple([Type.String(), Type.String()]), + Destination: Type.Object( + { + address: Type.Object( + { + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([Type.String()], { ctor: 0n }), + }), + Type.Object({ + Script: Type.Tuple([Type.String()], { ctor: 1n }), + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple( + [ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([Type.String()], { + ctor: 0n, + }), + }), + Type.Object({ + Script: Type.Tuple([Type.String()], { ctor: 1n }), + }), + ]), + ], + { ctor: 0n }, + ), + }), + Type.Object({ + Pointer: Type.Object( + { + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, + { ctor: 1n }, + ), + }), + ]), + ), + }, + { ctor: 0n }, + ), + datum: Type.Union([ + Type.Literal("NoDatum", { ctor: 0n }), + Type.Object({ + DatumHash: Type.Tuple([Type.String()], { ctor: 1n }), + }), + Type.Object({ + InlineDatum: Type.Tuple([TPlutusData], { ctor: 2n }), + }), + ]), + }, + { ctor: 0n }, + ), + DirectRequestV1: Type.Object( + { + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + origin: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + }, + { ctor: 0n }, + ), + ExchangeRequestV1: Type.Object( + { + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + min_received: Type.BigInt(), + origin: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 0n }, + ), + ExtraProtocolRedeemerV1: Type.Object( + { + request_to_outputs: Type.Array(Type.BigInt()), + input_to_requests: Type.Array(Type.BigInt()), + treasury_input_idx: Type.BigInt(), + treasury_output_idx: Type.BigInt(), + vault_input_idx: Type.Optional(Type.BigInt()), + vault_output_idx: Type.Optional(Type.BigInt()), + }, + { ctor: 0n }, + ), + Nonce: Type.Union([ + Type.Object({ + UTxO: Type.Tuple( + [ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + ], + { ctor: 0n }, + ), + }), + Type.Object({ + Validity: Type.Tuple( + [ + Type.Object( + { + lower_bound: Type.Object( + { + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([Type.BigInt()], { ctor: 1n }), + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, + { ctor: 0n }, + ), + upper_bound: Type.Object( + { + bound_type: Type.Union([ + Type.Literal("NegativeInfinity", { ctor: 0n }), + Type.Object({ + Finite: Type.Tuple([Type.BigInt()], { ctor: 1n }), + }), + Type.Literal("PositiveInfinity", { ctor: 2n }), + ]), + is_inclusive: Type.Ref("Bool"), + }, + { ctor: 0n }, + ), + }, + { ctor: 0n }, + ), + ], + { ctor: 1n }, + ), + }), + ]), + OrderActionV1: Type.Union([ + Type.Object({ + OMint: Type.Object( + { + amount: Type.BigInt(), + min_received: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 0n }, + ), + }), + Type.Object({ + ORedeem: Type.Object( + { + amount: Type.BigInt(), + min_received: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 1n }, + ), + }), + Type.Object({ + ODeposit: Type.Object( + { + principal: Type.BigInt(), + yield: Type.BigInt(), + diffusion_end: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 2n }, + ), + }), + Type.Object({ + OWithdraw: Type.Object( + { + amount: Type.BigInt(), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 3n }, + ), + }), + Type.Object({ + OStake: Type.Object( + { + amount: Type.BigInt(), + min_received: Type.BigInt(), + }, + { ctor: 4n }, + ), + }), + Type.Object({ + OUnstake: Type.Object( + { + amount: Type.BigInt(), + min_received: Type.BigInt(), + forfeit: Type.BigInt(), + }, + { ctor: 5n }, + ), + }), + Type.Object({ + ODirectMint: Type.Object( + { + amount: Type.BigInt(), + }, + { ctor: 6n }, + ), + }), + Type.Object({ + ODirectBurn: Type.Object( + { + amount: Type.BigInt(), + }, + { ctor: 7n }, + ), + }), + ]), + OrderDatumV1: Type.Object( + { + owner: Type.Ref("MultisigScript"), + destination: Type.Ref("Destination"), + action: Type.Ref("OrderActionV1"), + data: TPlutusData, + }, + { ctor: 0n }, + ), + OrderRedeemerV1: Type.Union([ + Type.Literal("Execute", { ctor: 0n }), + Type.Literal("Cancel", { ctor: 1n }), + Type.Literal("Invalidated", { ctor: 2n }), + ]), + Permissions: Type.Object( + { + mint: Type.Ref("MultisigScript"), + burn: Type.Ref("MultisigScript"), + withdraw: Type.Ref("MultisigScript"), + deposit: Type.Ref("MultisigScript"), + stake: Type.Ref("MultisigScript"), + unstake: Type.Ref("MultisigScript"), + direct_mint: Type.Ref("MultisigScript"), + direct_burn: Type.Ref("MultisigScript"), + yield_oracle: Type.Ref("MultisigScript"), + migrate: Type.Ref("MultisigScript"), + }, + { ctor: 0n }, + ), + ProtocolConfig: Type.Object( + { + reserve_assets: Type.Array(Type.Ref("ReserveAsset")), + unstaked_yield_pot: Type.Object( + { + payment_credential: Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([Type.String()], { ctor: 0n }), + }), + Type.Object({ + Script: Type.Tuple([Type.String()], { ctor: 1n }), + }), + ]), + stake_credential: Type.Optional( + Type.Union([ + Type.Object({ + Inline: Type.Tuple( + [ + Type.Union([ + Type.Object({ + VerificationKey: Type.Tuple([Type.String()], { + ctor: 0n, + }), + }), + Type.Object({ + Script: Type.Tuple([Type.String()], { ctor: 1n }), + }), + ]), + ], + { ctor: 0n }, + ), + }), + Type.Object({ + Pointer: Type.Object( + { + slot_number: Type.BigInt(), + transaction_index: Type.BigInt(), + certificate_index: Type.BigInt(), + }, + { ctor: 1n }, + ), + }), + ]), + ), + }, + { ctor: 0n }, + ), + }, + { ctor: 0n }, + ), + ProtocolRedeemerV1: Type.Union([ + Type.Object({ + Mint: Type.Object( + { + requests: Type.Array(Type.Ref("ExchangeRequestV1")), + }, + { ctor: 0n }, + ), + }), + Type.Object({ + Burn: Type.Object( + { + requests: Type.Array(Type.Ref("ExchangeRequestV1")), + }, + { ctor: 1n }, + ), + }), + Type.Object({ + Withdraw: Type.Object( + { + requests: Type.Array(Type.Ref("TreasuryRequestV1")), + }, + { ctor: 2n }, + ), + }), + Type.Object({ + Deposit: Type.Object( + { + requests: Type.Array(Type.Ref("TreasuryRequestV1")), + alpha: Type.Ref("YieldSplitAlpha"), + }, + { ctor: 3n }, + ), + }), + Type.Object({ + Stake: Type.Object( + { + requests: Type.Array(Type.Ref("StakeRequestV1")), + }, + { ctor: 4n }, + ), + }), + Type.Object({ + Unstake: Type.Object( + { + requests: Type.Array(Type.Ref("StakeRequestV1")), + }, + { ctor: 5n }, + ), + }), + Type.Object({ + DirectMint: Type.Object( + { + requests: Type.Array(Type.Ref("DirectRequestV1")), + }, + { ctor: 6n }, + ), + }), + Type.Object({ + DirectBurn: Type.Object( + { + requests: Type.Array(Type.Ref("DirectRequestV1")), + }, + { ctor: 7n }, + ), + }), + Type.Literal("MigrateState", { ctor: 8n }), + ]), + ProxyDatumV1: Type.Object( + { + logic: Type.String(), + settings: Type.Ref("SettingsV1"), + }, + { ctor: 0n }, + ), + RegistryV1: Type.Object( + { + treasury: Type.String(), + usdr: Type.String(), + order: Type.String(), + staking_vault: Type.String(), + yield_oracle: Type.String(), + migration: Type.Optional(Type.String()), + }, + { ctor: 0n }, + ), + ReserveAsset: Type.Object( + { + asset: Type.Ref("Asset"), + numerator: Type.BigInt(), + denominator: Type.BigInt(), + }, + { ctor: 0n }, + ), + SettingsV1: Type.Object( + { + permissions: Type.Ref("Permissions"), + registry: Type.Ref("RegistryV1"), + config: Type.Ref("ProtocolConfig"), + }, + { ctor: 0n }, + ), + SignedPayload_v1_1_distribution_oracle_DistributionOracleMessage: Type.Object( + { + action: Type.Ref("DistributionOracleMessage"), + nonce: Type.Ref("Nonce"), + }, + { ctor: 0n }, + ), + SignedPayload_v1_1_ProtocolRedeemerV1: Type.Object( + { + action: Type.Ref("ProtocolRedeemerV1"), + nonce: Type.Ref("Nonce"), + }, + { ctor: 0n }, + ), + SignedRedeemer_v1_1_ExtraProtocolRedeemerV1: Type.Object( + { + extra: Type.Ref("ExtraProtocolRedeemerV1"), + payload: Type.Ref("SignedPayload_v1_1_ProtocolRedeemerV1"), + signatures: Type.Array(Type.Ref("Tuple_VerificationKey_COSESign1")), + }, + { ctor: 0n }, + ), + StakeRequestV1: Type.Object( + { + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + min_received: Type.BigInt(), + origin: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + forfeit: Type.BigInt(), + }, + { ctor: 0n }, + ), + StakingVaultRedeemerV1: Type.Undefined(), + TreasuryDatumV1: Type.Object( + { + circulating_supply: Type.BigInt(), + }, + { ctor: 0n }, + ), + TreasuryRequestV1: Type.Object( + { + destination: Type.Ref("Destination"), + amount: Type.BigInt(), + yield: Type.BigInt(), + diffusion_end: Type.BigInt(), + origin: Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + reserve_asset: Type.Ref("Asset"), + }, + { ctor: 0n }, + ), + VaultDatumV1: Type.Object( + { + circulating_susdr: Type.BigInt(), + pending_yield: Type.BigInt(), + diffusion_start: Type.BigInt(), + diffusion_end: Type.BigInt(), + }, + { ctor: 0n }, + ), + YieldSplitAlpha: Type.Object( + { + numerator: Type.BigInt(), + denominator: Type.BigInt(), + }, + { ctor: 0n }, + ), +}); + +export const Bool = Contracts.Import("Bool"); +export type Bool = Exact; +export const Tuple_VerificationKey_COSESign1 = Contracts.Import( + "Tuple_VerificationKey_COSESign1", +); +export type Tuple_VerificationKey_COSESign1 = Exact< + typeof Tuple_VerificationKey_COSESign1 +>; +export const GovernanceConfig = Contracts.Import("GovernanceConfig"); +export type GovernanceConfig = Exact; +export const SettingsAuthPayload = Contracts.Import("SettingsAuthPayload"); +export type SettingsAuthPayload = Exact; +export const SettingsRedeemer = Contracts.Import("SettingsRedeemer"); +export type SettingsRedeemer = Exact; +export const SettingsSignedRedeemer = Contracts.Import( + "SettingsSignedRedeemer", +); +export type SettingsSignedRedeemer = Exact; +export const COSESign1 = Contracts.Import("COSESign1"); +export type COSESign1 = Exact; +export const HeaderMap = Contracts.Import("HeaderMap"); +export type HeaderMap = Exact; +export const Headers = Contracts.Import("Headers"); +export type Headers = Exact; +export const MultisigScript = Contracts.Import("MultisigScript"); +export type MultisigScript = Exact; +export const ProxyDatum = Contracts.Import("ProxyDatum"); +export type ProxyDatum = Exact; +export const Denominator = Contracts.Import("Denominator"); +export type Denominator = Exact; +export const DistributionOracleDatum = Contracts.Import( + "DistributionOracleDatum", +); +export type DistributionOracleDatum = Exact; +export const DistributionOracleMessage = Contracts.Import( + "DistributionOracleMessage", +); +export type DistributionOracleMessage = Exact; +export const Numerator = Contracts.Import("Numerator"); +export type Numerator = Exact; +export const ProtocolOrchestratorRedeemerV1 = Contracts.Import( + "ProtocolOrchestratorRedeemerV1", +); +export type ProtocolOrchestratorRedeemerV1 = Exact< + typeof ProtocolOrchestratorRedeemerV1 +>; +export const Ratio = Contracts.Import("Ratio"); +export type Ratio = Exact; +export const SignedDistributionOracleMessage = Contracts.Import( + "SignedDistributionOracleMessage", +); +export type SignedDistributionOracleMessage = Exact< + typeof SignedDistributionOracleMessage +>; +export const Slot = Contracts.Import("Slot"); +export type Slot = Exact; +export const YieldDistributionInput = Contracts.Import( + "YieldDistributionInput", +); +export type YieldDistributionInput = Exact; +export const Asset = Contracts.Import("Asset"); +export type Asset = Exact; +export const Destination = Contracts.Import("Destination"); +export type Destination = Exact; +export const DirectRequestV1 = Contracts.Import("DirectRequestV1"); +export type DirectRequestV1 = Exact; +export const ExchangeRequestV1 = Contracts.Import("ExchangeRequestV1"); +export type ExchangeRequestV1 = Exact; +export const ExtraProtocolRedeemerV1 = Contracts.Import( + "ExtraProtocolRedeemerV1", +); +export type ExtraProtocolRedeemerV1 = Exact; +export const Nonce = Contracts.Import("Nonce"); +export type Nonce = Exact; +export const OrderActionV1 = Contracts.Import("OrderActionV1"); +export type OrderActionV1 = Exact; +export const OrderDatumV1 = Contracts.Import("OrderDatumV1"); +export type OrderDatumV1 = Exact; +export const OrderRedeemerV1 = Contracts.Import("OrderRedeemerV1"); +export type OrderRedeemerV1 = Exact; +export const Permissions = Contracts.Import("Permissions"); +export type Permissions = Exact; +export const ProtocolConfig = Contracts.Import("ProtocolConfig"); +export type ProtocolConfig = Exact; +export const ProtocolRedeemerV1 = Contracts.Import("ProtocolRedeemerV1"); +export type ProtocolRedeemerV1 = Exact; +export const ProxyDatumV1 = Contracts.Import("ProxyDatumV1"); +export type ProxyDatumV1 = Exact; +export const RegistryV1 = Contracts.Import("RegistryV1"); +export type RegistryV1 = Exact; +export const ReserveAsset = Contracts.Import("ReserveAsset"); +export type ReserveAsset = Exact; +export const SettingsV1 = Contracts.Import("SettingsV1"); +export type SettingsV1 = Exact; +export const SignedPayload_v1_1_distribution_oracle_DistributionOracleMessage = + Contracts.Import( + "SignedPayload_v1_1_distribution_oracle_DistributionOracleMessage", + ); +export type SignedPayload_v1_1_distribution_oracle_DistributionOracleMessage = + Exact< + typeof SignedPayload_v1_1_distribution_oracle_DistributionOracleMessage + >; +export const SignedPayload_v1_1_ProtocolRedeemerV1 = Contracts.Import( + "SignedPayload_v1_1_ProtocolRedeemerV1", +); +export type SignedPayload_v1_1_ProtocolRedeemerV1 = Exact< + typeof SignedPayload_v1_1_ProtocolRedeemerV1 +>; +export const SignedRedeemer_v1_1_ExtraProtocolRedeemerV1 = Contracts.Import( + "SignedRedeemer_v1_1_ExtraProtocolRedeemerV1", +); +export type SignedRedeemer_v1_1_ExtraProtocolRedeemerV1 = Exact< + typeof SignedRedeemer_v1_1_ExtraProtocolRedeemerV1 +>; +export const StakeRequestV1 = Contracts.Import("StakeRequestV1"); +export type StakeRequestV1 = Exact; +export const StakingVaultRedeemerV1 = Contracts.Import( + "StakingVaultRedeemerV1", +); +export type StakingVaultRedeemerV1 = Exact; +export const TreasuryDatumV1 = Contracts.Import("TreasuryDatumV1"); +export type TreasuryDatumV1 = Exact; +export const TreasuryRequestV1 = Contracts.Import("TreasuryRequestV1"); +export type TreasuryRequestV1 = Exact; +export const VaultDatumV1 = Contracts.Import("VaultDatumV1"); +export type VaultDatumV1 = Exact; +export const YieldSplitAlpha = Contracts.Import("YieldSplitAlpha"); +export type YieldSplitAlpha = Exact; + +export class SettingsProtocolSettingsProtocolSettingsSpend { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + gov: GovernanceConfig, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "591be80101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0034888888888a60022a6600692161657870656374205b70726f78795f6f75745d203d0a202020206c6973742e66696c7465722874782e6f7574707574732c20666e286f29207b20686f6c64735f70726f7879286f2e76616c75652c2070726f78795f706f6c6963795f696429207d2900168a99801a497c657870656374205b70726f78795f696e7075745d203d0a202020206c6973742e66696c746572280a20202020202074782e696e707574732c0a202020202020666e286929207b20686f6c64735f70726f787928692e6f75747075742e76616c75652c2070726f78795f706f6c6963795f696429207d2c0a202020202900168a99801a492565787065637420646174756d5f696e3a2050726f7879446174756d203d20696e5f6461746100168a99801a492765787065637420646174756d5f6f75743a2050726f7879446174756d203d206f75745f6461746100168a99801a492e65787065637420496e6c696e65446174756d286f75745f6461746129203d2070726f78795f6f75742e646174756d00168a99801a493e65787065637420536372697074286473745f6861736829203d2070726f78795f6f75742e616464726573732e7061796d656e745f63726564656e7469616c00168a99801a492072656465656d65723a2053657474696e67735369676e656452656465656d6572001648888889660033001300c37540252225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a0064031370e900048888c8cc004004014896600200310058992cc004006266008602c00400d1330053016002330030030014050602c002809a6e012001911919800800801912cc00400629422b30013375e006601e602600314a313300200230140014034808a6e95200291808180898089808980898089808800c8c040c0440066e9520009b8748009222222222223322332232329800911929980f19b964910d63726564656e7469616c3a3a200037326600800291010013300f002001300d33021375200497ae09810008cc08001a60386ea80112222598009805800c4c8c8cc8966002602e60486ea800a264b3001301030253754003133009375c6052604c6ea8004dd5980998131baa0088a9981224814565787065637420536372697074286f776e5f6861736829203d206f776e5f696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c0016408c6050604a6ea8c0a0c094dd5180898129baa30283025375400515330234913765787065637420536f6d65286f776e5f696e70757429203d2066696e645f696e7075742874782e696e707574732c206f776e5f726566290016408864660020026eb0c09cc090dd5003112cc0040062980103d87a80008992cc004cdd7981498131baa0010048980899814000a5eb8226600600660540048118c0a000502618131813801181280098109baa008899912cc004c00400e264b30010058acc004c058c08cdd5002c4c96600200301a8992cc004006264b300100180e44c96600200301d80ec4c966002605a007132332259800980f000c56600260586ea801e00502140b5159800980b000c56600260586ea801e00502140b51598009805000c56600260586ea801e00502140b51598009805800c56600260586ea801e00502140b51598009801800c56600260586ea801e00502140b515980099b87480280062b3001302c375400f002810a05a810a05240a48149029205240a4264660020020064464b30010028cc004896600200314bd7044cc0c4c0b8c0c8004cc008008c0cc00503048896600200514c0103d87a80008acc004c0880062603666064606600497ae08cc00400e60680053020001400c8169031488c8cc00400400c896600200314bd7044cc8966002600a00513303500233004004001899802002000a0603034001303500140c93700900148c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a410008004816102c1b8d0019180e19818000a5eb82444b30013022302f375400713259800800c00a264b3001001801c00e007003899912cc00400600b13259800981c801401e00c81b0c0dc0050351bae001303600240dc60680028190c0c0dd5001c00502d48c0c4c0c8c0c8006460626064606460640033722911009b8f48810048888888888a60026016017300a00a912cc0040062900044c028cc008008c0f800503b48c8cc88cc008008004896600200300389919912cc004c02400a2b300130080028800c01903c44cc014014c10c01103c1bae303c001375a607a002607e00281e8c8c8cc004004010896600200300389919912cc004c02800a2b300130090028800c01903d44cc014014c11001103d1bae303d0013756607c002608000281f052f5bded8c02900048c8cc004004008896600200314bd6f7b63044ca60026eb8c0ec0066eacc0f000660800049112cc004c02400e2b300130080038800c401503c44cc104cdd81ba9003374c0046600c00c00281e0607c00281e1222223322332232329800982318219baa3046304337540033009009994c004c11cc120006606060886ea8c11c006608e60886ea80952225980099baf374c60166eacc0ccc11cdd50019ba6300b37566066608e6ea800a2b30013371260186eacc0ccc11cdd500118061bab30333047375400715980099baf301230473754006980103d87a80008992cc004c0c8c11cdd5000c4cc8966002606860926ea80062646644b3001302b304c375400313259800800c6600200313259800981698271baa0018992cc00400633001001899912cc004c1100062b300159800803c66002607c60a46ea8016607c60a46ea800e97ae101010000810101008101020020268a50413d13055305237540b316413d159800981e000c566002b30010078acc00400a33001303e3052375400b303e305237540074bd708101000020268a50413d14a0827a2607c60a46ea81662c827a2b300130300018acc0056600200f15980080145660033001303e3052375400b303e305237540074bd70901020020268992cc004c114c148dd5000c4c966002608c60a66ea800633001598009bac30573054375400314a314a082aa942945051454cc1492413665787065637420536f6d652872657365727665735f6461746129203d206c6973742e617428636f6e6669675f6669656c64732c203029001641446602c6eb0c14cc8cdd81ba83053001374e60a80026ea8c158c14cdd5000a400115330514912d65787065637420536f6d6528636f6e6669675f6461746129203d206c6973742e6174286669656c64732c203229001641406602a6eb0c148c8cdd81ba83052001374e60a60026ea8c0f8c148dd5001a400914a0827a294104f4528209e8980f18291baa0598b209e8acc004c0c40062b300159800803c56600200513375e607c60a46ea800cc080c0f8c148dd5002c528209e8a50413d1301d305237540b316413d1598009814800c566002b30010078acc00400a266ebcc0f8c148dd50029810181f18291baa0038a50413d14a0827a260aa60ac60ac60ac60ac60a46ea81662c827a2b300159800cc00401e94294504f456600200515980099baf303e30523754006607c60a46ea801626606a0106eacc0fcc148dd501a4528209e8a50413d14a0827a260aa60ac60ac60ac60ac60ac60a46ea81662c827904f209e413c827904f19b8f375c60a660a06ea8004dd7182998281baa003304f37540150484075048824412209082a8c148c13cdd5000c11904c180d18271baa00a823a036823c11e08f047414c60a0609a6ea80062a6609692012c65787065637420496e6c696e65446174756d28696e5f6461746129203d2070726f78795f696e2e646174756d0016412866e3c00c004c05cc12cdd50031bae304d304a3754003040411c6eb8c12cc120dd5000982598241baa304b3048375400915330464913d65787065637420536372697074287372635f6861736829203d2070726f78795f696e2e616464726573732e7061796d656e745f63726564656e7469616c001641146094608e6ea8c128c11cdd5001454cc1152401296578706563742070726f78795f6f75742e7265666572656e63655f736372697074203d3d204e6f6e65001641111533045491546578706563740a202020206173736574732e6c6f76656c6163655f6f662870726f78795f6f75742e76616c756529203e3d206173736574732e6c6f76656c6163655f6f662870726f78795f696e2e76616c7565290016411115330454916b6578706563740a202020206173736574732e776974686f75745f6c6f76656c6163652870726f78795f6f75742e76616c756529203d3d206173736574732e776974686f75745f6c6f76656c616365280a20202020202070726f78795f696e2e76616c75652c0a2020202029001641103300303f025982300124444b30013031304637540091332259800981398241baa0018992cc004006330010018994c004c8cc004004dd6181c18261baa02d2259800800c52f5c113304f374e6464660a260a4004660a26036609e6ea8004cc144dd49929982719b964901165369675374727563747572652e636f6e746578743a200037326606860a660a06ea8005220100153304e3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a2000373266068607860a06ea8005220100153304e3372c92011b5369675374727563747572652e65787465726e616c5f6161643a2000373266068603860a06ea8005220100153304e3372c9201165369675374727563747572652e7061796c6f61643a2000373266068603660a06ea800522010013253304f3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326606a6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002413c8278dc68009bae30533050375400266e28c07cdd7181e18281baa00133714603e6eb8c070c140dd5000980f9bae301b305037540026074660a298010b4a5369676e61747572653100330513052304f375460a4609e6ea8004cc14530101400033051375200a97ae04bd70182898290009bac305000133002002305100141393756607060966ea80b6609c609e609e609e609e609e609e609e60966ea80b5222323300100100a2232598009821800c4c94cc140cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a200037326606c6ea400522010013259800982298291baa001899194c004dd7182c000cdd7182c182c800cdd7182c0012444a660ac9211d466f756e64207369676e61747572652c20766572696679696e672e2e2e0015330563372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660786ea400522010015330563372c9201187665726966795f65643235353139207061796c6f61643a20003732660786ea400922010015330563372c92011a7665726966795f65643235353139207369676e61747572653a20003732660786ea400d2201001325330573372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a200037326607b3001001a60103d87a8000a60103d8798000415891010010019800800c00a006b950c160004dd6182b18299baa0018a9982899b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a200037326606e6ea400922010014a08280c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c60b00020091304033057374e00297ae0899801801982c80120a4375860ae00282a8dd7182a18289baa0028acc004c0ec006264a660a066e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a200037326606c6ea0c0380052201001325330513372c92010e416c6c4f6620726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100132330010010022259800800c528c5660026600c00c60ae00313300200230580018a50414482a8dd6182a18289baa0028acc004c0bc006264a660a066e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a200037326606c6ea0c0380052201001325330513372c92010e416e794f6620726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100132330010010022259800800c52845660026600c00c60ae00314a31330020023058001414482a8dd6182a18289baa0028acc004c0c00062646644a660a466e5924112436865636b696e672041744c656173743a20003732660706ea00092201001325330533372c92011941744c656173742073617469736669656420636f756e743a20003732660726ea00052201001325330543372c92011041744c6561737420726573756c743a20003732660753001001a60103d87a8000a60103d8798000414c910100100133712006002646600200200444b30010018a400113322598009980500500144c0a0006200282a8c164004cc008008c1680050571bad3055001375860aa60ac00260a26ea800a2b3001302800189929982819b9649111436865636b696e67204265666f72653a200037326606c6ea00052201001325330513372c92010f4265666f726520726573756c743a200037326606f3001001a60103d87a8000a60103d879800041409101001001323259800981f18299baa0018acc004c0f8c14cdd5182b982c00144cdc49bad3057305437540020071337106eb4c15cc150dd5000801a0a28a50414460ac00260a46ea8c0f8c148dd50029bad30543051375400515980099b8748028006264a660a066e5924110436865636b696e672041667465723a200037326606c6ea00052201001325330513372c92010e416674657220726573756c743a200037326606f3001001a60103d87a8000a60103d879800041409101001001323259800981f18299baa0018acc004c0f8c14cdd5182b982c00144cdc48019bad3057305437540031337100066eb4c15cc150dd5000a0a28a50414460ac00260a46ea8c154c148dd50029bad3054305137540051325330503372c920111436865636b696e67205363726970743a200037326606c6ea40052201001325330513372c92010f53637269707420726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100133041006304033054375200297ae0375c60a860a26ea800904e209c4138827104e209c304f375400237286eccc0d4cc130c134c128dd5015998261ba90033304c0013304c304d304a375400897ae0821202e821410a085042413c609860926ea80060808230dd7182518239baa00430133047375400b03d4110304530460013300103d023222332259800acc004c0d8dd6982180144c0d8dd69821800c528208289919baf3030329800800d20009bac30460044004444b30010018a5eb82266094b300132330010010082259800800c528456600266e1cdd698268008024528c4cc008008c13800504720968992cc004c0ecc120dd5000c4c130c124dd5000c54cc11d24013165787065637420536f6d65287265706c6163656d656e7429203d206c6973742e6174286f75745f6669656c64732c20692900164118660160080051304b00141153001003980c0014c13000500320920053758608800314a08208c8cdd81ba83042001374e60860026ea800cc8cdd81ba83042001374e60860026ea800888c96600200303c8992cc004c11c00a264b300100181fc4c9660026092005133047003330470014bd7041010461823800a08a330143758601e60866ea800c8cc018dd5981818221baa00100581ea0883045001410c660246eb0c110c104dd50009198021bab302e30423754605c60846ea800400c896600266e2000520008a6103d87a8000899803001000a07822323300100130080032259800800c528456600266e3cdd71822000801c528c4cc008008c11400503e20842264b3001001811c08e264b300100181244c966002003025812c09604b1332259800800c09e264b30010018acc004c0dc00a264b300130263033375400513259800800c0aa264b30010018992cc00400605913259800800c4c96600200302e8992cc00400605f02f817c0be264b3001303f0038acc004c0b4c0e8dd500344c9660020030318992cc00400606503281940ca26644b300100181a44c96600200303581ac0d606b132598009822801c4c966002606800313259800800c0e2264b300100181cc0e60730398992cc004c12400e02503a41186eb80050491823000a088304237540171598009816000c56600260846ea802e01f037410d03740fc81f8c100dd500540d90421bae001411460840028200dd700098208012084303f00140f460766ea801a06081c206081e0dd7000a07e303c00140e8607800502d816c0b605a81e8c0e8005038181d00140ae05702b815a076303800140d860686ea800a05281884c01cc0dc02205081a205102881440a1038181a800a066375c002606800481a8c0c80050301bac001811c08d0331818001205c30020023029375400a6e1d200880f2054375800301d80ea05a302a00140a0605400501b80dc06e0368158c0a000502618121baa00580ca04280cc06603301940a4604c60466ea802a2b30013002003899192cc004c05cc090dd5181418148014528c5282044375a604e00260466ea802a2c81010201b8748018dc3a400880f0600200244464b30010038991919911980480119b8a48901280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101420485980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80f101e1bac3021002375a603e0026466ec0dd4180f8009ba73020001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6048003337149101023a200098008054c09400600a805100a181380144ca6002015302400199b8a489023a200098008054c094006600e66008008004805100a1813801204a3027001409066e29220102207d0000340846eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803901120423758007133005375a0060051323371491102682700329800800cc044dc68014cdc52450127000044004444b30013371000490004400626466453001006980b002ccdc599b800025980099b88002480522903045206e408c66e2ccdc0000acc004cdc4000a4029148182290372046004401866e0c00520203370c002901019b8e00400240806eb800d0241b8a4881022c2000301c301d00222323300100100322598009807800c4cdc524410130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406880d0c06c02cc028029149a2a660149211856616c696461746f722072657475726e65642066616c7365001365640241" + : "590dc80101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae003488888889660033001300437540132232330010010032259800800c528456600266ebc00cc01cc02c0062946266004004601800280310094dd2a400523008300930093009300930093009001918041804800cdd2a4001370e90014dc3a40009111111119194c004c034dd5000c88cc02c004c028cc048dd480125eb826022015301100248889660026010009132323322598009805980a9baa0028992cc004c034c058dd5000c4cc020dd7180d180b9baa00137566020602e6ea801e2c80a8c064c058dd5180c980b1baa300e301637546032602c6ea800a2c80a0c8cc004004dd6180c180a9baa0052259800800c530103d87a80008992cc004cdd7980d180b9baa001004898071980c800a5eb82266006006603600480a8c064005017180b980c001180b00098091baa005899912cc004c00401a264b3001300a30143754009132323259800980e00144cc88cc89660026022003159800980e1baa00380145901d45660026024003159800980e1baa00380145901d45660026012003159800980e1baa00380145901d45660026014003159800980e1baa00380145901d45660026008003159800980e1baa00380145901d456600266e1d200a0018acc004c070dd5001c00a2c80ea2c80d101a2034406880d101a0991980080080211192cc00400a330012259800800c52f5c1133021301e30220013300200230230014081222598008014530103d87a80008acc004c0540062602e66044604600497ae08cc00400e6048005337000029000a0064078810a44646600200200644b30010018a5eb8226644b3001300500289981280119802002000c4cc01001000502118120009812800a0449192cc004cdc4800a405d13371666e012080010010028acc004cdc4800a41fc0713371690580099b8b001002899b8b482c804cdc599b830014820010cdc599b86001482001000901d203a371a00323018330200014bd70489660026028603c6ea800a264646644b30013027003802c5902418120009bae30240023024001301f3754005164075230213022302200191810981118111811000cdc8a441009b8f4881004888888888a600260140153009009919199119801001000912cc0040060071323322598009804801456600260100051001803205889980280298190022058375c60560026eb4c0b0004c0b800502c191919800800802112cc0040060071323322598009805001456600260120051001803205a8998028029819802205a375c60580026eacc0b4004c0bc00502d0a5eb7bdb1805200091919800800801112cc004006297adef6c608994c004dd71815000cdd59815800cc0bc009222598009804801c566002601000710018802a05889981819bb037520066e98008cc01801800502c0c0b400502b244446644664464653001303430313754606860626ea800665300130353036001981518191baa3035001981a98191baa02148896600266ebcdd318059bab302d303537540066e98c02cdd59816981a9baa0028acc004cdc498061bab302d3035375400460186eacc0b4c0d4dd5001c56600266ebcc044c0d4dd5001a60103d87a80008992cc004c0b0c0d4dd5000c4c966002605a606c6ea80062646644b300130273039375400313233019001132598009814981d9baa0018991980d800899912cc004c0d00062b300159800803c66002606e607e6ea8016606e607e6ea800e97ae101010000810101008101020020248a5040f513042303f375408b1640f5159800981a800c566002b30010078acc00400a330013037303f375400b3037303f37540074bd708101000020248a5040f514a081ea2606e607e6ea81162c81ea2b3001302c0018acc0056600200f159800801456600330013037303f375400b3037303f37540074bd70901020020248992cc004c0d4c0fcdd5000c4c966002606c60806ea800633001598009bac30443041375400314a314a0821294294503f45903f1980a9bac304032337606ea0c100004dd398208009baa304330403754002900045903e1980a1bac303f32337606ea0c0fc004dd398200009baa3037303f375400690024528207a8a5040f514a081ea26038607e6ea81162c81ea2b3001302d0018acc0056600200f15980080144cdd7981b981f9baa003301e3037303f375400b14a081ea294103d44c06cc0fcdd5022c5903d4566002604e003159800acc00401e2b3001002899baf3037303f375400a603c606e607e6ea800e294103d4528207a898211821982198219821981f9baa0458b207a8acc005660033001007a50a5140f5159800801456600266ebcc0dcc0fcdd5001981b981f9baa0058998180041bab3038303f375405f14a081ea294103d4528207a8982118219821982198219821981f9baa0458b207a40f481e903d207a40f466e3cdd71820181e9baa001375c6080607a6ea800cc0f0dd5004981f981e1baa0018b20743018303b3754012607a60746ea80062c81c0cdc79bae303b30383754006002602a60706ea8014dd7181d181b9baa0018b206a3039303637546072606c6ea80122c81a0c0e0c0d4dd5181c181a9baa0028b20668b20668b206619801817010cc0d000922259800981518199baa003899912cc004c08cc0d4dd5000c4c8cc0540044ca600264660020026eb0c0c4c0e4dd5014112cc004006297ae089981e1ba732323303e303f0023303e3019303c37540026607c6ea4c8cdc52441018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400240f481e8dc68009bae3040303d375400266e28c074dd7181a981e9baa00133714603a6eb8c068c0f4dd5000980e9bae3019303d375400260666607c98010b4a5369676e617475726531003303e303f303c3754607e60786ea8004cc0f93010140003303e375200a97ae04bd70181f181f8009bac303d00133002002303e00140ed3756606260706ea80a26076607860786078607860786078607860706ea80a1222323300100100a2232598009819800c4c8c966002606a607e6ea8006264653001375c608a005375c608a608c003375c608a002b9518228009bac30433040375400314a081f0c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c608a0020091303933044374e00297ae089980180198230012080375860880028210dd71820981f1baa0028acc004c0d0006264660020026eb0c108c0fcdd5001912cc00400629462b30013300500530430018998010011822000c528207c41051598009815800c4c8cc004004dd61821181f9baa0032259800800c52845660026600a00a608600314a3133002002304400140f8820a2b3001302c00189919b89375a608400264660020026eb0c10cc110008896600200314800226644b300133008008002899b800014800a20028208c110004cc008008c114005042181f1baa0028acc004c0980062646644b3001303730403754005159800981b98201baa30443045003899b89375a608860826ea8008006266e20dd6982218209baa00200140fd14a081f8c108004dd69821181f9baa003303e3754606c607c6ea80122b30013370e9005000c4c8cc8966002606e60806ea800a2b30013037304037546088608a0071337120026eb4c110c104dd500144cdc40009bad30443041375400481fa294103f18210009bad3042303f3754006607c6ea8c104c0f8dd500244cc0e4014c0e0cc100c104c0f8dd500125eb8103c207840f081e103c2078303c375400237286eccc0b8cc0e4c0e8c0dcdd50131981c9ba90033303900133039303a3037375400897ae03039303637540031640d06eb8c0dcc0d0dd50019808981a1baa0048b20641819981a0009980081600f91119912cc00566002604e6eb4c0c400a2604e6eb4c0c4006294103044c8cdd79815194c00400690004dd6181a002200222259800800c52f5c1133038598009919800800804112cc00400629422b30013370e6eb4c0ec0040122946266004004607800281b103944c9660026058606c6ea800626074606e6ea80062c81a8cc02c01000a2607200281a260020073370000490014c0e8005003206e0053758606400314a08180c8cdd81ba83030001374e60620026ea800cc8cdd81ba83030001374e60620026ea800888c966002606800313259800981a800c4cc0ccc0d0008cc0ccc0d00052f5c11640c8660226eb0c034c0c0dd50011198029bab3029303137540020091640c4660206eb0c0c8c0bcdd50009198021bab302830303754605060606ea800400c896600266e2000520008a6103d87a8000899802801000a05622323300100130070032259800800c528456600266e3cdd71819000801c528c4cc008008c0cc00502d206022646644b30013024001899912cc004c05cc084dd500144c8c8c8cc8966002605600713259800980e98139baa0018991919912cc004c0c000e264b30013022001899192cc004c0cc00a01d1640c06eb8c0c4004c0b4dd5003c566002604600315980098169baa00780645902e45902b2056302b375400d1640b46eb8c0b4004dd71816801181680098141baa0018b204c302a0058b2050375c605000260500046050002604e00260446ea800a2c8100c08c0044c010c0900162c8108dd7181080098110009bac30200024078600400460326ea8004dc3a401060360071640646eb0c068004c068004c054dd5002459013180b980a1baa0078acc004c00801a26464b3001300b301537546032603400514a314a080a0dd6980c000980a1baa0078b202440486e1d2006370e90022020180818088009808004229344d9590021", + Type.Tuple([PolicyId, GovernanceConfig]), + [proxyPolicyId, gov], + ), + "PlutusV3", + ); + } +} +export class SettingsProtocolSettingsProtocolSettingsWithdraw { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + gov: GovernanceConfig, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "591be80101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0034888888888a60022a6600692161657870656374205b70726f78795f6f75745d203d0a202020206c6973742e66696c7465722874782e6f7574707574732c20666e286f29207b20686f6c64735f70726f7879286f2e76616c75652c2070726f78795f706f6c6963795f696429207d2900168a99801a497c657870656374205b70726f78795f696e7075745d203d0a202020206c6973742e66696c746572280a20202020202074782e696e707574732c0a202020202020666e286929207b20686f6c64735f70726f787928692e6f75747075742e76616c75652c2070726f78795f706f6c6963795f696429207d2c0a202020202900168a99801a492565787065637420646174756d5f696e3a2050726f7879446174756d203d20696e5f6461746100168a99801a492765787065637420646174756d5f6f75743a2050726f7879446174756d203d206f75745f6461746100168a99801a492e65787065637420496e6c696e65446174756d286f75745f6461746129203d2070726f78795f6f75742e646174756d00168a99801a493e65787065637420536372697074286473745f6861736829203d2070726f78795f6f75742e616464726573732e7061796d656e745f63726564656e7469616c00168a99801a492072656465656d65723a2053657474696e67735369676e656452656465656d6572001648888889660033001300c37540252225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a0064031370e900048888c8cc004004014896600200310058992cc004006266008602c00400d1330053016002330030030014050602c002809a6e012001911919800800801912cc00400629422b30013375e006601e602600314a313300200230140014034808a6e95200291808180898089808980898089808800c8c040c0440066e9520009b8748009222222222223322332232329800911929980f19b964910d63726564656e7469616c3a3a200037326600800291010013300f002001300d33021375200497ae09810008cc08001a60386ea80112222598009805800c4c8c8cc8966002602e60486ea800a264b3001301030253754003133009375c6052604c6ea8004dd5980998131baa0088a9981224814565787065637420536372697074286f776e5f6861736829203d206f776e5f696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c0016408c6050604a6ea8c0a0c094dd5180898129baa30283025375400515330234913765787065637420536f6d65286f776e5f696e70757429203d2066696e645f696e7075742874782e696e707574732c206f776e5f726566290016408864660020026eb0c09cc090dd5003112cc0040062980103d87a80008992cc004cdd7981498131baa0010048980899814000a5eb8226600600660540048118c0a000502618131813801181280098109baa008899912cc004c00400e264b30010058acc004c058c08cdd5002c4c96600200301a8992cc004006264b300100180e44c96600200301d80ec4c966002605a007132332259800980f000c56600260586ea801e00502140b5159800980b000c56600260586ea801e00502140b51598009805000c56600260586ea801e00502140b51598009805800c56600260586ea801e00502140b51598009801800c56600260586ea801e00502140b515980099b87480280062b3001302c375400f002810a05a810a05240a48149029205240a4264660020020064464b30010028cc004896600200314bd7044cc0c4c0b8c0c8004cc008008c0cc00503048896600200514c0103d87a80008acc004c0880062603666064606600497ae08cc00400e60680053020001400c8169031488c8cc00400400c896600200314bd7044cc8966002600a00513303500233004004001899802002000a0603034001303500140c93700900148c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a410008004816102c1b8d0019180e19818000a5eb82444b30013022302f375400713259800800c00a264b3001001801c00e007003899912cc00400600b13259800981c801401e00c81b0c0dc0050351bae001303600240dc60680028190c0c0dd5001c00502d48c0c4c0c8c0c8006460626064606460640033722911009b8f48810048888888888a60026016017300a00a912cc0040062900044c028cc008008c0f800503b48c8cc88cc008008004896600200300389919912cc004c02400a2b300130080028800c01903c44cc014014c10c01103c1bae303c001375a607a002607e00281e8c8c8cc004004010896600200300389919912cc004c02800a2b300130090028800c01903d44cc014014c11001103d1bae303d0013756607c002608000281f052f5bded8c02900048c8cc004004008896600200314bd6f7b63044ca60026eb8c0ec0066eacc0f000660800049112cc004c02400e2b300130080038800c401503c44cc104cdd81ba9003374c0046600c00c00281e0607c00281e1222223322332232329800982318219baa3046304337540033009009994c004c11cc120006606060886ea8c11c006608e60886ea80952225980099baf374c60166eacc0ccc11cdd50019ba6300b37566066608e6ea800a2b30013371260186eacc0ccc11cdd500118061bab30333047375400715980099baf301230473754006980103d87a80008992cc004c0c8c11cdd5000c4cc8966002606860926ea80062646644b3001302b304c375400313259800800c6600200313259800981698271baa0018992cc00400633001001899912cc004c1100062b300159800803c66002607c60a46ea8016607c60a46ea800e97ae101010000810101008101020020268a50413d13055305237540b316413d159800981e000c566002b30010078acc00400a33001303e3052375400b303e305237540074bd708101000020268a50413d14a0827a2607c60a46ea81662c827a2b300130300018acc0056600200f15980080145660033001303e3052375400b303e305237540074bd70901020020268992cc004c114c148dd5000c4c966002608c60a66ea800633001598009bac30573054375400314a314a082aa942945051454cc1492413665787065637420536f6d652872657365727665735f6461746129203d206c6973742e617428636f6e6669675f6669656c64732c203029001641446602c6eb0c14cc8cdd81ba83053001374e60a80026ea8c158c14cdd5000a400115330514912d65787065637420536f6d6528636f6e6669675f6461746129203d206c6973742e6174286669656c64732c203229001641406602a6eb0c148c8cdd81ba83052001374e60a60026ea8c0f8c148dd5001a400914a0827a294104f4528209e8980f18291baa0598b209e8acc004c0c40062b300159800803c56600200513375e607c60a46ea800cc080c0f8c148dd5002c528209e8a50413d1301d305237540b316413d1598009814800c566002b30010078acc00400a266ebcc0f8c148dd50029810181f18291baa0038a50413d14a0827a260aa60ac60ac60ac60ac60a46ea81662c827a2b300159800cc00401e94294504f456600200515980099baf303e30523754006607c60a46ea801626606a0106eacc0fcc148dd501a4528209e8a50413d14a0827a260aa60ac60ac60ac60ac60ac60a46ea81662c827904f209e413c827904f19b8f375c60a660a06ea8004dd7182998281baa003304f37540150484075048824412209082a8c148c13cdd5000c11904c180d18271baa00a823a036823c11e08f047414c60a0609a6ea80062a6609692012c65787065637420496e6c696e65446174756d28696e5f6461746129203d2070726f78795f696e2e646174756d0016412866e3c00c004c05cc12cdd50031bae304d304a3754003040411c6eb8c12cc120dd5000982598241baa304b3048375400915330464913d65787065637420536372697074287372635f6861736829203d2070726f78795f696e2e616464726573732e7061796d656e745f63726564656e7469616c001641146094608e6ea8c128c11cdd5001454cc1152401296578706563742070726f78795f6f75742e7265666572656e63655f736372697074203d3d204e6f6e65001641111533045491546578706563740a202020206173736574732e6c6f76656c6163655f6f662870726f78795f6f75742e76616c756529203e3d206173736574732e6c6f76656c6163655f6f662870726f78795f696e2e76616c7565290016411115330454916b6578706563740a202020206173736574732e776974686f75745f6c6f76656c6163652870726f78795f6f75742e76616c756529203d3d206173736574732e776974686f75745f6c6f76656c616365280a20202020202070726f78795f696e2e76616c75652c0a2020202029001641103300303f025982300124444b30013031304637540091332259800981398241baa0018992cc004006330010018994c004c8cc004004dd6181c18261baa02d2259800800c52f5c113304f374e6464660a260a4004660a26036609e6ea8004cc144dd49929982719b964901165369675374727563747572652e636f6e746578743a200037326606860a660a06ea8005220100153304e3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a2000373266068607860a06ea8005220100153304e3372c92011b5369675374727563747572652e65787465726e616c5f6161643a2000373266068603860a06ea8005220100153304e3372c9201165369675374727563747572652e7061796c6f61643a2000373266068603660a06ea800522010013253304f3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326606a6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002413c8278dc68009bae30533050375400266e28c07cdd7181e18281baa00133714603e6eb8c070c140dd5000980f9bae301b305037540026074660a298010b4a5369676e61747572653100330513052304f375460a4609e6ea8004cc14530101400033051375200a97ae04bd70182898290009bac305000133002002305100141393756607060966ea80b6609c609e609e609e609e609e609e609e60966ea80b5222323300100100a2232598009821800c4c94cc140cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a200037326606c6ea400522010013259800982298291baa001899194c004dd7182c000cdd7182c182c800cdd7182c0012444a660ac9211d466f756e64207369676e61747572652c20766572696679696e672e2e2e0015330563372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660786ea400522010015330563372c9201187665726966795f65643235353139207061796c6f61643a20003732660786ea400922010015330563372c92011a7665726966795f65643235353139207369676e61747572653a20003732660786ea400d2201001325330573372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a200037326607b3001001a60103d87a8000a60103d8798000415891010010019800800c00a006b950c160004dd6182b18299baa0018a9982899b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a200037326606e6ea400922010014a08280c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c60b00020091304033057374e00297ae0899801801982c80120a4375860ae00282a8dd7182a18289baa0028acc004c0ec006264a660a066e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a200037326606c6ea0c0380052201001325330513372c92010e416c6c4f6620726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100132330010010022259800800c528c5660026600c00c60ae00313300200230580018a50414482a8dd6182a18289baa0028acc004c0bc006264a660a066e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a200037326606c6ea0c0380052201001325330513372c92010e416e794f6620726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100132330010010022259800800c52845660026600c00c60ae00314a31330020023058001414482a8dd6182a18289baa0028acc004c0c00062646644a660a466e5924112436865636b696e672041744c656173743a20003732660706ea00092201001325330533372c92011941744c656173742073617469736669656420636f756e743a20003732660726ea00052201001325330543372c92011041744c6561737420726573756c743a20003732660753001001a60103d87a8000a60103d8798000414c910100100133712006002646600200200444b30010018a400113322598009980500500144c0a0006200282a8c164004cc008008c1680050571bad3055001375860aa60ac00260a26ea800a2b3001302800189929982819b9649111436865636b696e67204265666f72653a200037326606c6ea00052201001325330513372c92010f4265666f726520726573756c743a200037326606f3001001a60103d87a8000a60103d879800041409101001001323259800981f18299baa0018acc004c0f8c14cdd5182b982c00144cdc49bad3057305437540020071337106eb4c15cc150dd5000801a0a28a50414460ac00260a46ea8c0f8c148dd50029bad30543051375400515980099b8748028006264a660a066e5924110436865636b696e672041667465723a200037326606c6ea00052201001325330513372c92010e416674657220726573756c743a200037326606f3001001a60103d87a8000a60103d879800041409101001001323259800981f18299baa0018acc004c0f8c14cdd5182b982c00144cdc48019bad3057305437540031337100066eb4c15cc150dd5000a0a28a50414460ac00260a46ea8c154c148dd50029bad3054305137540051325330503372c920111436865636b696e67205363726970743a200037326606c6ea40052201001325330513372c92010f53637269707420726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100133041006304033054375200297ae0375c60a860a26ea800904e209c4138827104e209c304f375400237286eccc0d4cc130c134c128dd5015998261ba90033304c0013304c304d304a375400897ae0821202e821410a085042413c609860926ea80060808230dd7182518239baa00430133047375400b03d4110304530460013300103d023222332259800acc004c0d8dd6982180144c0d8dd69821800c528208289919baf3030329800800d20009bac30460044004444b30010018a5eb82266094b300132330010010082259800800c528456600266e1cdd698268008024528c4cc008008c13800504720968992cc004c0ecc120dd5000c4c130c124dd5000c54cc11d24013165787065637420536f6d65287265706c6163656d656e7429203d206c6973742e6174286f75745f6669656c64732c20692900164118660160080051304b00141153001003980c0014c13000500320920053758608800314a08208c8cdd81ba83042001374e60860026ea800cc8cdd81ba83042001374e60860026ea800888c96600200303c8992cc004c11c00a264b300100181fc4c9660026092005133047003330470014bd7041010461823800a08a330143758601e60866ea800c8cc018dd5981818221baa00100581ea0883045001410c660246eb0c110c104dd50009198021bab302e30423754605c60846ea800400c896600266e2000520008a6103d87a8000899803001000a07822323300100130080032259800800c528456600266e3cdd71822000801c528c4cc008008c11400503e20842264b3001001811c08e264b300100181244c966002003025812c09604b1332259800800c09e264b30010018acc004c0dc00a264b300130263033375400513259800800c0aa264b30010018992cc00400605913259800800c4c96600200302e8992cc00400605f02f817c0be264b3001303f0038acc004c0b4c0e8dd500344c9660020030318992cc00400606503281940ca26644b300100181a44c96600200303581ac0d606b132598009822801c4c966002606800313259800800c0e2264b300100181cc0e60730398992cc004c12400e02503a41186eb80050491823000a088304237540171598009816000c56600260846ea802e01f037410d03740fc81f8c100dd500540d90421bae001411460840028200dd700098208012084303f00140f460766ea801a06081c206081e0dd7000a07e303c00140e8607800502d816c0b605a81e8c0e8005038181d00140ae05702b815a076303800140d860686ea800a05281884c01cc0dc02205081a205102881440a1038181a800a066375c002606800481a8c0c80050301bac001811c08d0331818001205c30020023029375400a6e1d200880f2054375800301d80ea05a302a00140a0605400501b80dc06e0368158c0a000502618121baa00580ca04280cc06603301940a4604c60466ea802a2b30013002003899192cc004c05cc090dd5181418148014528c5282044375a604e00260466ea802a2c81010201b8748018dc3a400880f0600200244464b30010038991919911980480119b8a48901280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101420485980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80f101e1bac3021002375a603e0026466ec0dd4180f8009ba73020001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6048003337149101023a200098008054c09400600a805100a181380144ca6002015302400199b8a489023a200098008054c094006600e66008008004805100a1813801204a3027001409066e29220102207d0000340846eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803901120423758007133005375a0060051323371491102682700329800800cc044dc68014cdc52450127000044004444b30013371000490004400626466453001006980b002ccdc599b800025980099b88002480522903045206e408c66e2ccdc0000acc004cdc4000a4029148182290372046004401866e0c00520203370c002901019b8e00400240806eb800d0241b8a4881022c2000301c301d00222323300100100322598009807800c4cdc524410130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406880d0c06c02cc028029149a2a660149211856616c696461746f722072657475726e65642066616c7365001365640241" + : "590dc80101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae003488888889660033001300437540132232330010010032259800800c528456600266ebc00cc01cc02c0062946266004004601800280310094dd2a400523008300930093009300930093009001918041804800cdd2a4001370e90014dc3a40009111111119194c004c034dd5000c88cc02c004c028cc048dd480125eb826022015301100248889660026010009132323322598009805980a9baa0028992cc004c034c058dd5000c4cc020dd7180d180b9baa00137566020602e6ea801e2c80a8c064c058dd5180c980b1baa300e301637546032602c6ea800a2c80a0c8cc004004dd6180c180a9baa0052259800800c530103d87a80008992cc004cdd7980d180b9baa001004898071980c800a5eb82266006006603600480a8c064005017180b980c001180b00098091baa005899912cc004c00401a264b3001300a30143754009132323259800980e00144cc88cc89660026022003159800980e1baa00380145901d45660026024003159800980e1baa00380145901d45660026012003159800980e1baa00380145901d45660026014003159800980e1baa00380145901d45660026008003159800980e1baa00380145901d456600266e1d200a0018acc004c070dd5001c00a2c80ea2c80d101a2034406880d101a0991980080080211192cc00400a330012259800800c52f5c1133021301e30220013300200230230014081222598008014530103d87a80008acc004c0540062602e66044604600497ae08cc00400e6048005337000029000a0064078810a44646600200200644b30010018a5eb8226644b3001300500289981280119802002000c4cc01001000502118120009812800a0449192cc004cdc4800a405d13371666e012080010010028acc004cdc4800a41fc0713371690580099b8b001002899b8b482c804cdc599b830014820010cdc599b86001482001000901d203a371a00323018330200014bd70489660026028603c6ea800a264646644b30013027003802c5902418120009bae30240023024001301f3754005164075230213022302200191810981118111811000cdc8a441009b8f4881004888888888a600260140153009009919199119801001000912cc0040060071323322598009804801456600260100051001803205889980280298190022058375c60560026eb4c0b0004c0b800502c191919800800802112cc0040060071323322598009805001456600260120051001803205a8998028029819802205a375c60580026eacc0b4004c0bc00502d0a5eb7bdb1805200091919800800801112cc004006297adef6c608994c004dd71815000cdd59815800cc0bc009222598009804801c566002601000710018802a05889981819bb037520066e98008cc01801800502c0c0b400502b244446644664464653001303430313754606860626ea800665300130353036001981518191baa3035001981a98191baa02148896600266ebcdd318059bab302d303537540066e98c02cdd59816981a9baa0028acc004cdc498061bab302d3035375400460186eacc0b4c0d4dd5001c56600266ebcc044c0d4dd5001a60103d87a80008992cc004c0b0c0d4dd5000c4c966002605a606c6ea80062646644b300130273039375400313233019001132598009814981d9baa0018991980d800899912cc004c0d00062b300159800803c66002606e607e6ea8016606e607e6ea800e97ae101010000810101008101020020248a5040f513042303f375408b1640f5159800981a800c566002b30010078acc00400a330013037303f375400b3037303f37540074bd708101000020248a5040f514a081ea2606e607e6ea81162c81ea2b3001302c0018acc0056600200f159800801456600330013037303f375400b3037303f37540074bd70901020020248992cc004c0d4c0fcdd5000c4c966002606c60806ea800633001598009bac30443041375400314a314a0821294294503f45903f1980a9bac304032337606ea0c100004dd398208009baa304330403754002900045903e1980a1bac303f32337606ea0c0fc004dd398200009baa3037303f375400690024528207a8a5040f514a081ea26038607e6ea81162c81ea2b3001302d0018acc0056600200f15980080144cdd7981b981f9baa003301e3037303f375400b14a081ea294103d44c06cc0fcdd5022c5903d4566002604e003159800acc00401e2b3001002899baf3037303f375400a603c606e607e6ea800e294103d4528207a898211821982198219821981f9baa0458b207a8acc005660033001007a50a5140f5159800801456600266ebcc0dcc0fcdd5001981b981f9baa0058998180041bab3038303f375405f14a081ea294103d4528207a8982118219821982198219821981f9baa0458b207a40f481e903d207a40f466e3cdd71820181e9baa001375c6080607a6ea800cc0f0dd5004981f981e1baa0018b20743018303b3754012607a60746ea80062c81c0cdc79bae303b30383754006002602a60706ea8014dd7181d181b9baa0018b206a3039303637546072606c6ea80122c81a0c0e0c0d4dd5181c181a9baa0028b20668b20668b206619801817010cc0d000922259800981518199baa003899912cc004c08cc0d4dd5000c4c8cc0540044ca600264660020026eb0c0c4c0e4dd5014112cc004006297ae089981e1ba732323303e303f0023303e3019303c37540026607c6ea4c8cdc52441018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400240f481e8dc68009bae3040303d375400266e28c074dd7181a981e9baa00133714603a6eb8c068c0f4dd5000980e9bae3019303d375400260666607c98010b4a5369676e617475726531003303e303f303c3754607e60786ea8004cc0f93010140003303e375200a97ae04bd70181f181f8009bac303d00133002002303e00140ed3756606260706ea80a26076607860786078607860786078607860706ea80a1222323300100100a2232598009819800c4c8c966002606a607e6ea8006264653001375c608a005375c608a608c003375c608a002b9518228009bac30433040375400314a081f0c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c608a0020091303933044374e00297ae089980180198230012080375860880028210dd71820981f1baa0028acc004c0d0006264660020026eb0c108c0fcdd5001912cc00400629462b30013300500530430018998010011822000c528207c41051598009815800c4c8cc004004dd61821181f9baa0032259800800c52845660026600a00a608600314a3133002002304400140f8820a2b3001302c00189919b89375a608400264660020026eb0c10cc110008896600200314800226644b300133008008002899b800014800a20028208c110004cc008008c114005042181f1baa0028acc004c0980062646644b3001303730403754005159800981b98201baa30443045003899b89375a608860826ea8008006266e20dd6982218209baa00200140fd14a081f8c108004dd69821181f9baa003303e3754606c607c6ea80122b30013370e9005000c4c8cc8966002606e60806ea800a2b30013037304037546088608a0071337120026eb4c110c104dd500144cdc40009bad30443041375400481fa294103f18210009bad3042303f3754006607c6ea8c104c0f8dd500244cc0e4014c0e0cc100c104c0f8dd500125eb8103c207840f081e103c2078303c375400237286eccc0b8cc0e4c0e8c0dcdd50131981c9ba90033303900133039303a3037375400897ae03039303637540031640d06eb8c0dcc0d0dd50019808981a1baa0048b20641819981a0009980081600f91119912cc00566002604e6eb4c0c400a2604e6eb4c0c4006294103044c8cdd79815194c00400690004dd6181a002200222259800800c52f5c1133038598009919800800804112cc00400629422b30013370e6eb4c0ec0040122946266004004607800281b103944c9660026058606c6ea800626074606e6ea80062c81a8cc02c01000a2607200281a260020073370000490014c0e8005003206e0053758606400314a08180c8cdd81ba83030001374e60620026ea800cc8cdd81ba83030001374e60620026ea800888c966002606800313259800981a800c4cc0ccc0d0008cc0ccc0d00052f5c11640c8660226eb0c034c0c0dd50011198029bab3029303137540020091640c4660206eb0c0c8c0bcdd50009198021bab302830303754605060606ea800400c896600266e2000520008a6103d87a8000899802801000a05622323300100130070032259800800c528456600266e3cdd71819000801c528c4cc008008c0cc00502d206022646644b30013024001899912cc004c05cc084dd500144c8c8c8cc8966002605600713259800980e98139baa0018991919912cc004c0c000e264b30013022001899192cc004c0cc00a01d1640c06eb8c0c4004c0b4dd5003c566002604600315980098169baa00780645902e45902b2056302b375400d1640b46eb8c0b4004dd71816801181680098141baa0018b204c302a0058b2050375c605000260500046050002604e00260446ea800a2c8100c08c0044c010c0900162c8108dd7181080098110009bac30200024078600400460326ea8004dc3a401060360071640646eb0c068004c068004c054dd5002459013180b980a1baa0078acc004c00801a26464b3001300b301537546032603400514a314a080a0dd6980c000980a1baa0078b202440486e1d2006370e90022020180818088009808004229344d9590021", + Type.Tuple([PolicyId, GovernanceConfig]), + [proxyPolicyId, gov], + ), + "PlutusV3", + ); + } +} +export class SettingsProtocolSettingsProtocolSettingsPublish { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + gov: GovernanceConfig, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "591be80101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0034888888888a60022a6600692161657870656374205b70726f78795f6f75745d203d0a202020206c6973742e66696c7465722874782e6f7574707574732c20666e286f29207b20686f6c64735f70726f7879286f2e76616c75652c2070726f78795f706f6c6963795f696429207d2900168a99801a497c657870656374205b70726f78795f696e7075745d203d0a202020206c6973742e66696c746572280a20202020202074782e696e707574732c0a202020202020666e286929207b20686f6c64735f70726f787928692e6f75747075742e76616c75652c2070726f78795f706f6c6963795f696429207d2c0a202020202900168a99801a492565787065637420646174756d5f696e3a2050726f7879446174756d203d20696e5f6461746100168a99801a492765787065637420646174756d5f6f75743a2050726f7879446174756d203d206f75745f6461746100168a99801a492e65787065637420496e6c696e65446174756d286f75745f6461746129203d2070726f78795f6f75742e646174756d00168a99801a493e65787065637420536372697074286473745f6861736829203d2070726f78795f6f75742e616464726573732e7061796d656e745f63726564656e7469616c00168a99801a492072656465656d65723a2053657474696e67735369676e656452656465656d6572001648888889660033001300c37540252225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a0064031370e900048888c8cc004004014896600200310058992cc004006266008602c00400d1330053016002330030030014050602c002809a6e012001911919800800801912cc00400629422b30013375e006601e602600314a313300200230140014034808a6e95200291808180898089808980898089808800c8c040c0440066e9520009b8748009222222222223322332232329800911929980f19b964910d63726564656e7469616c3a3a200037326600800291010013300f002001300d33021375200497ae09810008cc08001a60386ea80112222598009805800c4c8c8cc8966002602e60486ea800a264b3001301030253754003133009375c6052604c6ea8004dd5980998131baa0088a9981224814565787065637420536372697074286f776e5f6861736829203d206f776e5f696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c0016408c6050604a6ea8c0a0c094dd5180898129baa30283025375400515330234913765787065637420536f6d65286f776e5f696e70757429203d2066696e645f696e7075742874782e696e707574732c206f776e5f726566290016408864660020026eb0c09cc090dd5003112cc0040062980103d87a80008992cc004cdd7981498131baa0010048980899814000a5eb8226600600660540048118c0a000502618131813801181280098109baa008899912cc004c00400e264b30010058acc004c058c08cdd5002c4c96600200301a8992cc004006264b300100180e44c96600200301d80ec4c966002605a007132332259800980f000c56600260586ea801e00502140b5159800980b000c56600260586ea801e00502140b51598009805000c56600260586ea801e00502140b51598009805800c56600260586ea801e00502140b51598009801800c56600260586ea801e00502140b515980099b87480280062b3001302c375400f002810a05a810a05240a48149029205240a4264660020020064464b30010028cc004896600200314bd7044cc0c4c0b8c0c8004cc008008c0cc00503048896600200514c0103d87a80008acc004c0880062603666064606600497ae08cc00400e60680053020001400c8169031488c8cc00400400c896600200314bd7044cc8966002600a00513303500233004004001899802002000a0603034001303500140c93700900148c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a410008004816102c1b8d0019180e19818000a5eb82444b30013022302f375400713259800800c00a264b3001001801c00e007003899912cc00400600b13259800981c801401e00c81b0c0dc0050351bae001303600240dc60680028190c0c0dd5001c00502d48c0c4c0c8c0c8006460626064606460640033722911009b8f48810048888888888a60026016017300a00a912cc0040062900044c028cc008008c0f800503b48c8cc88cc008008004896600200300389919912cc004c02400a2b300130080028800c01903c44cc014014c10c01103c1bae303c001375a607a002607e00281e8c8c8cc004004010896600200300389919912cc004c02800a2b300130090028800c01903d44cc014014c11001103d1bae303d0013756607c002608000281f052f5bded8c02900048c8cc004004008896600200314bd6f7b63044ca60026eb8c0ec0066eacc0f000660800049112cc004c02400e2b300130080038800c401503c44cc104cdd81ba9003374c0046600c00c00281e0607c00281e1222223322332232329800982318219baa3046304337540033009009994c004c11cc120006606060886ea8c11c006608e60886ea80952225980099baf374c60166eacc0ccc11cdd50019ba6300b37566066608e6ea800a2b30013371260186eacc0ccc11cdd500118061bab30333047375400715980099baf301230473754006980103d87a80008992cc004c0c8c11cdd5000c4cc8966002606860926ea80062646644b3001302b304c375400313259800800c6600200313259800981698271baa0018992cc00400633001001899912cc004c1100062b300159800803c66002607c60a46ea8016607c60a46ea800e97ae101010000810101008101020020268a50413d13055305237540b316413d159800981e000c566002b30010078acc00400a33001303e3052375400b303e305237540074bd708101000020268a50413d14a0827a2607c60a46ea81662c827a2b300130300018acc0056600200f15980080145660033001303e3052375400b303e305237540074bd70901020020268992cc004c114c148dd5000c4c966002608c60a66ea800633001598009bac30573054375400314a314a082aa942945051454cc1492413665787065637420536f6d652872657365727665735f6461746129203d206c6973742e617428636f6e6669675f6669656c64732c203029001641446602c6eb0c14cc8cdd81ba83053001374e60a80026ea8c158c14cdd5000a400115330514912d65787065637420536f6d6528636f6e6669675f6461746129203d206c6973742e6174286669656c64732c203229001641406602a6eb0c148c8cdd81ba83052001374e60a60026ea8c0f8c148dd5001a400914a0827a294104f4528209e8980f18291baa0598b209e8acc004c0c40062b300159800803c56600200513375e607c60a46ea800cc080c0f8c148dd5002c528209e8a50413d1301d305237540b316413d1598009814800c566002b30010078acc00400a266ebcc0f8c148dd50029810181f18291baa0038a50413d14a0827a260aa60ac60ac60ac60ac60a46ea81662c827a2b300159800cc00401e94294504f456600200515980099baf303e30523754006607c60a46ea801626606a0106eacc0fcc148dd501a4528209e8a50413d14a0827a260aa60ac60ac60ac60ac60ac60a46ea81662c827904f209e413c827904f19b8f375c60a660a06ea8004dd7182998281baa003304f37540150484075048824412209082a8c148c13cdd5000c11904c180d18271baa00a823a036823c11e08f047414c60a0609a6ea80062a6609692012c65787065637420496e6c696e65446174756d28696e5f6461746129203d2070726f78795f696e2e646174756d0016412866e3c00c004c05cc12cdd50031bae304d304a3754003040411c6eb8c12cc120dd5000982598241baa304b3048375400915330464913d65787065637420536372697074287372635f6861736829203d2070726f78795f696e2e616464726573732e7061796d656e745f63726564656e7469616c001641146094608e6ea8c128c11cdd5001454cc1152401296578706563742070726f78795f6f75742e7265666572656e63655f736372697074203d3d204e6f6e65001641111533045491546578706563740a202020206173736574732e6c6f76656c6163655f6f662870726f78795f6f75742e76616c756529203e3d206173736574732e6c6f76656c6163655f6f662870726f78795f696e2e76616c7565290016411115330454916b6578706563740a202020206173736574732e776974686f75745f6c6f76656c6163652870726f78795f6f75742e76616c756529203d3d206173736574732e776974686f75745f6c6f76656c616365280a20202020202070726f78795f696e2e76616c75652c0a2020202029001641103300303f025982300124444b30013031304637540091332259800981398241baa0018992cc004006330010018994c004c8cc004004dd6181c18261baa02d2259800800c52f5c113304f374e6464660a260a4004660a26036609e6ea8004cc144dd49929982719b964901165369675374727563747572652e636f6e746578743a200037326606860a660a06ea8005220100153304e3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a2000373266068607860a06ea8005220100153304e3372c92011b5369675374727563747572652e65787465726e616c5f6161643a2000373266068603860a06ea8005220100153304e3372c9201165369675374727563747572652e7061796c6f61643a2000373266068603660a06ea800522010013253304f3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326606a6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002413c8278dc68009bae30533050375400266e28c07cdd7181e18281baa00133714603e6eb8c070c140dd5000980f9bae301b305037540026074660a298010b4a5369676e61747572653100330513052304f375460a4609e6ea8004cc14530101400033051375200a97ae04bd70182898290009bac305000133002002305100141393756607060966ea80b6609c609e609e609e609e609e609e609e60966ea80b5222323300100100a2232598009821800c4c94cc140cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a200037326606c6ea400522010013259800982298291baa001899194c004dd7182c000cdd7182c182c800cdd7182c0012444a660ac9211d466f756e64207369676e61747572652c20766572696679696e672e2e2e0015330563372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660786ea400522010015330563372c9201187665726966795f65643235353139207061796c6f61643a20003732660786ea400922010015330563372c92011a7665726966795f65643235353139207369676e61747572653a20003732660786ea400d2201001325330573372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a200037326607b3001001a60103d87a8000a60103d8798000415891010010019800800c00a006b950c160004dd6182b18299baa0018a9982899b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a200037326606e6ea400922010014a08280c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c60b00020091304033057374e00297ae0899801801982c80120a4375860ae00282a8dd7182a18289baa0028acc004c0ec006264a660a066e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a200037326606c6ea0c0380052201001325330513372c92010e416c6c4f6620726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100132330010010022259800800c528c5660026600c00c60ae00313300200230580018a50414482a8dd6182a18289baa0028acc004c0bc006264a660a066e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a200037326606c6ea0c0380052201001325330513372c92010e416e794f6620726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100132330010010022259800800c52845660026600c00c60ae00314a31330020023058001414482a8dd6182a18289baa0028acc004c0c00062646644a660a466e5924112436865636b696e672041744c656173743a20003732660706ea00092201001325330533372c92011941744c656173742073617469736669656420636f756e743a20003732660726ea00052201001325330543372c92011041744c6561737420726573756c743a20003732660753001001a60103d87a8000a60103d8798000414c910100100133712006002646600200200444b30010018a400113322598009980500500144c0a0006200282a8c164004cc008008c1680050571bad3055001375860aa60ac00260a26ea800a2b3001302800189929982819b9649111436865636b696e67204265666f72653a200037326606c6ea00052201001325330513372c92010f4265666f726520726573756c743a200037326606f3001001a60103d87a8000a60103d879800041409101001001323259800981f18299baa0018acc004c0f8c14cdd5182b982c00144cdc49bad3057305437540020071337106eb4c15cc150dd5000801a0a28a50414460ac00260a46ea8c0f8c148dd50029bad30543051375400515980099b8748028006264a660a066e5924110436865636b696e672041667465723a200037326606c6ea00052201001325330513372c92010e416674657220726573756c743a200037326606f3001001a60103d87a8000a60103d879800041409101001001323259800981f18299baa0018acc004c0f8c14cdd5182b982c00144cdc48019bad3057305437540031337100066eb4c15cc150dd5000a0a28a50414460ac00260a46ea8c154c148dd50029bad3054305137540051325330503372c920111436865636b696e67205363726970743a200037326606c6ea40052201001325330513372c92010f53637269707420726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100133041006304033054375200297ae0375c60a860a26ea800904e209c4138827104e209c304f375400237286eccc0d4cc130c134c128dd5015998261ba90033304c0013304c304d304a375400897ae0821202e821410a085042413c609860926ea80060808230dd7182518239baa00430133047375400b03d4110304530460013300103d023222332259800acc004c0d8dd6982180144c0d8dd69821800c528208289919baf3030329800800d20009bac30460044004444b30010018a5eb82266094b300132330010010082259800800c528456600266e1cdd698268008024528c4cc008008c13800504720968992cc004c0ecc120dd5000c4c130c124dd5000c54cc11d24013165787065637420536f6d65287265706c6163656d656e7429203d206c6973742e6174286f75745f6669656c64732c20692900164118660160080051304b00141153001003980c0014c13000500320920053758608800314a08208c8cdd81ba83042001374e60860026ea800cc8cdd81ba83042001374e60860026ea800888c96600200303c8992cc004c11c00a264b300100181fc4c9660026092005133047003330470014bd7041010461823800a08a330143758601e60866ea800c8cc018dd5981818221baa00100581ea0883045001410c660246eb0c110c104dd50009198021bab302e30423754605c60846ea800400c896600266e2000520008a6103d87a8000899803001000a07822323300100130080032259800800c528456600266e3cdd71822000801c528c4cc008008c11400503e20842264b3001001811c08e264b300100181244c966002003025812c09604b1332259800800c09e264b30010018acc004c0dc00a264b300130263033375400513259800800c0aa264b30010018992cc00400605913259800800c4c96600200302e8992cc00400605f02f817c0be264b3001303f0038acc004c0b4c0e8dd500344c9660020030318992cc00400606503281940ca26644b300100181a44c96600200303581ac0d606b132598009822801c4c966002606800313259800800c0e2264b300100181cc0e60730398992cc004c12400e02503a41186eb80050491823000a088304237540171598009816000c56600260846ea802e01f037410d03740fc81f8c100dd500540d90421bae001411460840028200dd700098208012084303f00140f460766ea801a06081c206081e0dd7000a07e303c00140e8607800502d816c0b605a81e8c0e8005038181d00140ae05702b815a076303800140d860686ea800a05281884c01cc0dc02205081a205102881440a1038181a800a066375c002606800481a8c0c80050301bac001811c08d0331818001205c30020023029375400a6e1d200880f2054375800301d80ea05a302a00140a0605400501b80dc06e0368158c0a000502618121baa00580ca04280cc06603301940a4604c60466ea802a2b30013002003899192cc004c05cc090dd5181418148014528c5282044375a604e00260466ea802a2c81010201b8748018dc3a400880f0600200244464b30010038991919911980480119b8a48901280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101420485980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80f101e1bac3021002375a603e0026466ec0dd4180f8009ba73020001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6048003337149101023a200098008054c09400600a805100a181380144ca6002015302400199b8a489023a200098008054c094006600e66008008004805100a1813801204a3027001409066e29220102207d0000340846eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803901120423758007133005375a0060051323371491102682700329800800cc044dc68014cdc52450127000044004444b30013371000490004400626466453001006980b002ccdc599b800025980099b88002480522903045206e408c66e2ccdc0000acc004cdc4000a4029148182290372046004401866e0c00520203370c002901019b8e00400240806eb800d0241b8a4881022c2000301c301d00222323300100100322598009807800c4cdc524410130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406880d0c06c02cc028029149a2a660149211856616c696461746f722072657475726e65642066616c7365001365640241" + : "590dc80101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae003488888889660033001300437540132232330010010032259800800c528456600266ebc00cc01cc02c0062946266004004601800280310094dd2a400523008300930093009300930093009001918041804800cdd2a4001370e90014dc3a40009111111119194c004c034dd5000c88cc02c004c028cc048dd480125eb826022015301100248889660026010009132323322598009805980a9baa0028992cc004c034c058dd5000c4cc020dd7180d180b9baa00137566020602e6ea801e2c80a8c064c058dd5180c980b1baa300e301637546032602c6ea800a2c80a0c8cc004004dd6180c180a9baa0052259800800c530103d87a80008992cc004cdd7980d180b9baa001004898071980c800a5eb82266006006603600480a8c064005017180b980c001180b00098091baa005899912cc004c00401a264b3001300a30143754009132323259800980e00144cc88cc89660026022003159800980e1baa00380145901d45660026024003159800980e1baa00380145901d45660026012003159800980e1baa00380145901d45660026014003159800980e1baa00380145901d45660026008003159800980e1baa00380145901d456600266e1d200a0018acc004c070dd5001c00a2c80ea2c80d101a2034406880d101a0991980080080211192cc00400a330012259800800c52f5c1133021301e30220013300200230230014081222598008014530103d87a80008acc004c0540062602e66044604600497ae08cc00400e6048005337000029000a0064078810a44646600200200644b30010018a5eb8226644b3001300500289981280119802002000c4cc01001000502118120009812800a0449192cc004cdc4800a405d13371666e012080010010028acc004cdc4800a41fc0713371690580099b8b001002899b8b482c804cdc599b830014820010cdc599b86001482001000901d203a371a00323018330200014bd70489660026028603c6ea800a264646644b30013027003802c5902418120009bae30240023024001301f3754005164075230213022302200191810981118111811000cdc8a441009b8f4881004888888888a600260140153009009919199119801001000912cc0040060071323322598009804801456600260100051001803205889980280298190022058375c60560026eb4c0b0004c0b800502c191919800800802112cc0040060071323322598009805001456600260120051001803205a8998028029819802205a375c60580026eacc0b4004c0bc00502d0a5eb7bdb1805200091919800800801112cc004006297adef6c608994c004dd71815000cdd59815800cc0bc009222598009804801c566002601000710018802a05889981819bb037520066e98008cc01801800502c0c0b400502b244446644664464653001303430313754606860626ea800665300130353036001981518191baa3035001981a98191baa02148896600266ebcdd318059bab302d303537540066e98c02cdd59816981a9baa0028acc004cdc498061bab302d3035375400460186eacc0b4c0d4dd5001c56600266ebcc044c0d4dd5001a60103d87a80008992cc004c0b0c0d4dd5000c4c966002605a606c6ea80062646644b300130273039375400313233019001132598009814981d9baa0018991980d800899912cc004c0d00062b300159800803c66002606e607e6ea8016606e607e6ea800e97ae101010000810101008101020020248a5040f513042303f375408b1640f5159800981a800c566002b30010078acc00400a330013037303f375400b3037303f37540074bd708101000020248a5040f514a081ea2606e607e6ea81162c81ea2b3001302c0018acc0056600200f159800801456600330013037303f375400b3037303f37540074bd70901020020248992cc004c0d4c0fcdd5000c4c966002606c60806ea800633001598009bac30443041375400314a314a0821294294503f45903f1980a9bac304032337606ea0c100004dd398208009baa304330403754002900045903e1980a1bac303f32337606ea0c0fc004dd398200009baa3037303f375400690024528207a8a5040f514a081ea26038607e6ea81162c81ea2b3001302d0018acc0056600200f15980080144cdd7981b981f9baa003301e3037303f375400b14a081ea294103d44c06cc0fcdd5022c5903d4566002604e003159800acc00401e2b3001002899baf3037303f375400a603c606e607e6ea800e294103d4528207a898211821982198219821981f9baa0458b207a8acc005660033001007a50a5140f5159800801456600266ebcc0dcc0fcdd5001981b981f9baa0058998180041bab3038303f375405f14a081ea294103d4528207a8982118219821982198219821981f9baa0458b207a40f481e903d207a40f466e3cdd71820181e9baa001375c6080607a6ea800cc0f0dd5004981f981e1baa0018b20743018303b3754012607a60746ea80062c81c0cdc79bae303b30383754006002602a60706ea8014dd7181d181b9baa0018b206a3039303637546072606c6ea80122c81a0c0e0c0d4dd5181c181a9baa0028b20668b20668b206619801817010cc0d000922259800981518199baa003899912cc004c08cc0d4dd5000c4c8cc0540044ca600264660020026eb0c0c4c0e4dd5014112cc004006297ae089981e1ba732323303e303f0023303e3019303c37540026607c6ea4c8cdc52441018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400240f481e8dc68009bae3040303d375400266e28c074dd7181a981e9baa00133714603a6eb8c068c0f4dd5000980e9bae3019303d375400260666607c98010b4a5369676e617475726531003303e303f303c3754607e60786ea8004cc0f93010140003303e375200a97ae04bd70181f181f8009bac303d00133002002303e00140ed3756606260706ea80a26076607860786078607860786078607860706ea80a1222323300100100a2232598009819800c4c8c966002606a607e6ea8006264653001375c608a005375c608a608c003375c608a002b9518228009bac30433040375400314a081f0c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c608a0020091303933044374e00297ae089980180198230012080375860880028210dd71820981f1baa0028acc004c0d0006264660020026eb0c108c0fcdd5001912cc00400629462b30013300500530430018998010011822000c528207c41051598009815800c4c8cc004004dd61821181f9baa0032259800800c52845660026600a00a608600314a3133002002304400140f8820a2b3001302c00189919b89375a608400264660020026eb0c10cc110008896600200314800226644b300133008008002899b800014800a20028208c110004cc008008c114005042181f1baa0028acc004c0980062646644b3001303730403754005159800981b98201baa30443045003899b89375a608860826ea8008006266e20dd6982218209baa00200140fd14a081f8c108004dd69821181f9baa003303e3754606c607c6ea80122b30013370e9005000c4c8cc8966002606e60806ea800a2b30013037304037546088608a0071337120026eb4c110c104dd500144cdc40009bad30443041375400481fa294103f18210009bad3042303f3754006607c6ea8c104c0f8dd500244cc0e4014c0e0cc100c104c0f8dd500125eb8103c207840f081e103c2078303c375400237286eccc0b8cc0e4c0e8c0dcdd50131981c9ba90033303900133039303a3037375400897ae03039303637540031640d06eb8c0dcc0d0dd50019808981a1baa0048b20641819981a0009980081600f91119912cc00566002604e6eb4c0c400a2604e6eb4c0c4006294103044c8cdd79815194c00400690004dd6181a002200222259800800c52f5c1133038598009919800800804112cc00400629422b30013370e6eb4c0ec0040122946266004004607800281b103944c9660026058606c6ea800626074606e6ea80062c81a8cc02c01000a2607200281a260020073370000490014c0e8005003206e0053758606400314a08180c8cdd81ba83030001374e60620026ea800cc8cdd81ba83030001374e60620026ea800888c966002606800313259800981a800c4cc0ccc0d0008cc0ccc0d00052f5c11640c8660226eb0c034c0c0dd50011198029bab3029303137540020091640c4660206eb0c0c8c0bcdd50009198021bab302830303754605060606ea800400c896600266e2000520008a6103d87a8000899802801000a05622323300100130070032259800800c528456600266e3cdd71819000801c528c4cc008008c0cc00502d206022646644b30013024001899912cc004c05cc084dd500144c8c8c8cc8966002605600713259800980e98139baa0018991919912cc004c0c000e264b30013022001899192cc004c0cc00a01d1640c06eb8c0c4004c0b4dd5003c566002604600315980098169baa00780645902e45902b2056302b375400d1640b46eb8c0b4004dd71816801181680098141baa0018b204c302a0058b2050375c605000260500046050002604e00260446ea800a2c8100c08c0044c010c0900162c8108dd7181080098110009bac30200024078600400460326ea8004dc3a401060360071640646eb0c068004c068004c054dd5002459013180b980a1baa0078acc004c00801a26464b3001300b301537546032603400514a314a080a0dd6980c000980a1baa0078b202440486e1d2006370e90022020180818088009808004229344d9590021", + Type.Tuple([PolicyId, GovernanceConfig]), + [proxyPolicyId, gov], + ), + "PlutusV3", + ); + } +} +export class SettingsProtocolSettingsProtocolSettingsElse { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + gov: GovernanceConfig, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "591be80101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0034888888888a60022a6600692161657870656374205b70726f78795f6f75745d203d0a202020206c6973742e66696c7465722874782e6f7574707574732c20666e286f29207b20686f6c64735f70726f7879286f2e76616c75652c2070726f78795f706f6c6963795f696429207d2900168a99801a497c657870656374205b70726f78795f696e7075745d203d0a202020206c6973742e66696c746572280a20202020202074782e696e707574732c0a202020202020666e286929207b20686f6c64735f70726f787928692e6f75747075742e76616c75652c2070726f78795f706f6c6963795f696429207d2c0a202020202900168a99801a492565787065637420646174756d5f696e3a2050726f7879446174756d203d20696e5f6461746100168a99801a492765787065637420646174756d5f6f75743a2050726f7879446174756d203d206f75745f6461746100168a99801a492e65787065637420496e6c696e65446174756d286f75745f6461746129203d2070726f78795f6f75742e646174756d00168a99801a493e65787065637420536372697074286473745f6861736829203d2070726f78795f6f75742e616464726573732e7061796d656e745f63726564656e7469616c00168a99801a492072656465656d65723a2053657474696e67735369676e656452656465656d6572001648888889660033001300c37540252225980099b8900248002200319800801ccdc2001240293371666e00cdc2801240289030000a0064031370e900048888c8cc004004014896600200310058992cc004006266008602c00400d1330053016002330030030014050602c002809a6e012001911919800800801912cc00400629422b30013375e006601e602600314a313300200230140014034808a6e95200291808180898089808980898089808800c8c040c0440066e9520009b8748009222222222223322332232329800911929980f19b964910d63726564656e7469616c3a3a200037326600800291010013300f002001300d33021375200497ae09810008cc08001a60386ea80112222598009805800c4c8c8cc8966002602e60486ea800a264b3001301030253754003133009375c6052604c6ea8004dd5980998131baa0088a9981224814565787065637420536372697074286f776e5f6861736829203d206f776e5f696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c0016408c6050604a6ea8c0a0c094dd5180898129baa30283025375400515330234913765787065637420536f6d65286f776e5f696e70757429203d2066696e645f696e7075742874782e696e707574732c206f776e5f726566290016408864660020026eb0c09cc090dd5003112cc0040062980103d87a80008992cc004cdd7981498131baa0010048980899814000a5eb8226600600660540048118c0a000502618131813801181280098109baa008899912cc004c00400e264b30010058acc004c058c08cdd5002c4c96600200301a8992cc004006264b300100180e44c96600200301d80ec4c966002605a007132332259800980f000c56600260586ea801e00502140b5159800980b000c56600260586ea801e00502140b51598009805000c56600260586ea801e00502140b51598009805800c56600260586ea801e00502140b51598009801800c56600260586ea801e00502140b515980099b87480280062b3001302c375400f002810a05a810a05240a48149029205240a4264660020020064464b30010028cc004896600200314bd7044cc0c4c0b8c0c8004cc008008c0cc00503048896600200514c0103d87a80008acc004c0880062603666064606600497ae08cc00400e60680053020001400c8169031488c8cc00400400c896600200314bd7044cc8966002600a00513303500233004004001899802002000a0603034001303500140c93700900148c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a410008004816102c1b8d0019180e19818000a5eb82444b30013022302f375400713259800800c00a264b3001001801c00e007003899912cc00400600b13259800981c801401e00c81b0c0dc0050351bae001303600240dc60680028190c0c0dd5001c00502d48c0c4c0c8c0c8006460626064606460640033722911009b8f48810048888888888a60026016017300a00a912cc0040062900044c028cc008008c0f800503b48c8cc88cc008008004896600200300389919912cc004c02400a2b300130080028800c01903c44cc014014c10c01103c1bae303c001375a607a002607e00281e8c8c8cc004004010896600200300389919912cc004c02800a2b300130090028800c01903d44cc014014c11001103d1bae303d0013756607c002608000281f052f5bded8c02900048c8cc004004008896600200314bd6f7b63044ca60026eb8c0ec0066eacc0f000660800049112cc004c02400e2b300130080038800c401503c44cc104cdd81ba9003374c0046600c00c00281e0607c00281e1222223322332232329800982318219baa3046304337540033009009994c004c11cc120006606060886ea8c11c006608e60886ea80952225980099baf374c60166eacc0ccc11cdd50019ba6300b37566066608e6ea800a2b30013371260186eacc0ccc11cdd500118061bab30333047375400715980099baf301230473754006980103d87a80008992cc004c0c8c11cdd5000c4cc8966002606860926ea80062646644b3001302b304c375400313259800800c6600200313259800981698271baa0018992cc00400633001001899912cc004c1100062b300159800803c66002607c60a46ea8016607c60a46ea800e97ae101010000810101008101020020268a50413d13055305237540b316413d159800981e000c566002b30010078acc00400a33001303e3052375400b303e305237540074bd708101000020268a50413d14a0827a2607c60a46ea81662c827a2b300130300018acc0056600200f15980080145660033001303e3052375400b303e305237540074bd70901020020268992cc004c114c148dd5000c4c966002608c60a66ea800633001598009bac30573054375400314a314a082aa942945051454cc1492413665787065637420536f6d652872657365727665735f6461746129203d206c6973742e617428636f6e6669675f6669656c64732c203029001641446602c6eb0c14cc8cdd81ba83053001374e60a80026ea8c158c14cdd5000a400115330514912d65787065637420536f6d6528636f6e6669675f6461746129203d206c6973742e6174286669656c64732c203229001641406602a6eb0c148c8cdd81ba83052001374e60a60026ea8c0f8c148dd5001a400914a0827a294104f4528209e8980f18291baa0598b209e8acc004c0c40062b300159800803c56600200513375e607c60a46ea800cc080c0f8c148dd5002c528209e8a50413d1301d305237540b316413d1598009814800c566002b30010078acc00400a266ebcc0f8c148dd50029810181f18291baa0038a50413d14a0827a260aa60ac60ac60ac60ac60a46ea81662c827a2b300159800cc00401e94294504f456600200515980099baf303e30523754006607c60a46ea801626606a0106eacc0fcc148dd501a4528209e8a50413d14a0827a260aa60ac60ac60ac60ac60ac60a46ea81662c827904f209e413c827904f19b8f375c60a660a06ea8004dd7182998281baa003304f37540150484075048824412209082a8c148c13cdd5000c11904c180d18271baa00a823a036823c11e08f047414c60a0609a6ea80062a6609692012c65787065637420496e6c696e65446174756d28696e5f6461746129203d2070726f78795f696e2e646174756d0016412866e3c00c004c05cc12cdd50031bae304d304a3754003040411c6eb8c12cc120dd5000982598241baa304b3048375400915330464913d65787065637420536372697074287372635f6861736829203d2070726f78795f696e2e616464726573732e7061796d656e745f63726564656e7469616c001641146094608e6ea8c128c11cdd5001454cc1152401296578706563742070726f78795f6f75742e7265666572656e63655f736372697074203d3d204e6f6e65001641111533045491546578706563740a202020206173736574732e6c6f76656c6163655f6f662870726f78795f6f75742e76616c756529203e3d206173736574732e6c6f76656c6163655f6f662870726f78795f696e2e76616c7565290016411115330454916b6578706563740a202020206173736574732e776974686f75745f6c6f76656c6163652870726f78795f6f75742e76616c756529203d3d206173736574732e776974686f75745f6c6f76656c616365280a20202020202070726f78795f696e2e76616c75652c0a2020202029001641103300303f025982300124444b30013031304637540091332259800981398241baa0018992cc004006330010018994c004c8cc004004dd6181c18261baa02d2259800800c52f5c113304f374e6464660a260a4004660a26036609e6ea8004cc144dd49929982719b964901165369675374727563747572652e636f6e746578743a200037326606860a660a06ea8005220100153304e3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a2000373266068607860a06ea8005220100153304e3372c92011b5369675374727563747572652e65787465726e616c5f6161643a2000373266068603860a06ea8005220100153304e3372c9201165369675374727563747572652e7061796c6f61643a2000373266068603660a06ea800522010013253304f3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a200037326606a6ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002413c8278dc68009bae30533050375400266e28c07cdd7181e18281baa00133714603e6eb8c070c140dd5000980f9bae301b305037540026074660a298010b4a5369676e61747572653100330513052304f375460a4609e6ea8004cc14530101400033051375200a97ae04bd70182898290009bac305000133002002305100141393756607060966ea80b6609c609e609e609e609e609e609e609e60966ea80b5222323300100100a2232598009821800c4c94cc140cdcb24921436865636b696e67205369676e617475726520666f72206b65795f686173683a200037326606c6ea400522010013259800982298291baa001899194c004dd7182c000cdd7182c182c800cdd7182c0012444a660ac9211d466f756e64207369676e61747572652c20766572696679696e672e2e2e0015330563372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660786ea400522010015330563372c9201187665726966795f65643235353139207061796c6f61643a20003732660786ea400922010015330563372c92011a7665726966795f65643235353139207369676e61747572653a20003732660786ea400d2201001325330573372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a200037326607b3001001a60103d87a8000a60103d8798000415891010010019800800c00a006b950c160004dd6182b18299baa0018a9982899b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a200037326606e6ea400922010014a08280c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c60b00020091304033057374e00297ae0899801801982c80120a4375860ae00282a8dd7182a18289baa0028acc004c0ec006264a660a066e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a200037326606c6ea0c0380052201001325330513372c92010e416c6c4f6620726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100132330010010022259800800c528c5660026600c00c60ae00313300200230580018a50414482a8dd6182a18289baa0028acc004c0bc006264a660a066e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a200037326606c6ea0c0380052201001325330513372c92010e416e794f6620726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100132330010010022259800800c52845660026600c00c60ae00314a31330020023058001414482a8dd6182a18289baa0028acc004c0c00062646644a660a466e5924112436865636b696e672041744c656173743a20003732660706ea00092201001325330533372c92011941744c656173742073617469736669656420636f756e743a20003732660726ea00052201001325330543372c92011041744c6561737420726573756c743a20003732660753001001a60103d87a8000a60103d8798000414c910100100133712006002646600200200444b30010018a400113322598009980500500144c0a0006200282a8c164004cc008008c1680050571bad3055001375860aa60ac00260a26ea800a2b3001302800189929982819b9649111436865636b696e67204265666f72653a200037326606c6ea00052201001325330513372c92010f4265666f726520726573756c743a200037326606f3001001a60103d87a8000a60103d879800041409101001001323259800981f18299baa0018acc004c0f8c14cdd5182b982c00144cdc49bad3057305437540020071337106eb4c15cc150dd5000801a0a28a50414460ac00260a46ea8c0f8c148dd50029bad30543051375400515980099b8748028006264a660a066e5924110436865636b696e672041667465723a200037326606c6ea00052201001325330513372c92010e416674657220726573756c743a200037326606f3001001a60103d87a8000a60103d879800041409101001001323259800981f18299baa0018acc004c0f8c14cdd5182b982c00144cdc48019bad3057305437540031337100066eb4c15cc150dd5000a0a28a50414460ac00260a46ea8c154c148dd50029bad3054305137540051325330503372c920111436865636b696e67205363726970743a200037326606c6ea40052201001325330513372c92010f53637269707420726573756c743a200037326606f3001001a60103d87a8000a60103d87980004140910100100133041006304033054375200297ae0375c60a860a26ea800904e209c4138827104e209c304f375400237286eccc0d4cc130c134c128dd5015998261ba90033304c0013304c304d304a375400897ae0821202e821410a085042413c609860926ea80060808230dd7182518239baa00430133047375400b03d4110304530460013300103d023222332259800acc004c0d8dd6982180144c0d8dd69821800c528208289919baf3030329800800d20009bac30460044004444b30010018a5eb82266094b300132330010010082259800800c528456600266e1cdd698268008024528c4cc008008c13800504720968992cc004c0ecc120dd5000c4c130c124dd5000c54cc11d24013165787065637420536f6d65287265706c6163656d656e7429203d206c6973742e6174286f75745f6669656c64732c20692900164118660160080051304b00141153001003980c0014c13000500320920053758608800314a08208c8cdd81ba83042001374e60860026ea800cc8cdd81ba83042001374e60860026ea800888c96600200303c8992cc004c11c00a264b300100181fc4c9660026092005133047003330470014bd7041010461823800a08a330143758601e60866ea800c8cc018dd5981818221baa00100581ea0883045001410c660246eb0c110c104dd50009198021bab302e30423754605c60846ea800400c896600266e2000520008a6103d87a8000899803001000a07822323300100130080032259800800c528456600266e3cdd71822000801c528c4cc008008c11400503e20842264b3001001811c08e264b300100181244c966002003025812c09604b1332259800800c09e264b30010018acc004c0dc00a264b300130263033375400513259800800c0aa264b30010018992cc00400605913259800800c4c96600200302e8992cc00400605f02f817c0be264b3001303f0038acc004c0b4c0e8dd500344c9660020030318992cc00400606503281940ca26644b300100181a44c96600200303581ac0d606b132598009822801c4c966002606800313259800800c0e2264b300100181cc0e60730398992cc004c12400e02503a41186eb80050491823000a088304237540171598009816000c56600260846ea802e01f037410d03740fc81f8c100dd500540d90421bae001411460840028200dd700098208012084303f00140f460766ea801a06081c206081e0dd7000a07e303c00140e8607800502d816c0b605a81e8c0e8005038181d00140ae05702b815a076303800140d860686ea800a05281884c01cc0dc02205081a205102881440a1038181a800a066375c002606800481a8c0c80050301bac001811c08d0331818001205c30020023029375400a6e1d200880f2054375800301d80ea05a302a00140a0605400501b80dc06e0368158c0a000502618121baa00580ca04280cc06603301940a4604c60466ea802a2b30013002003899192cc004c05cc090dd5181418148014528c5282044375a604e00260466ea802a2c81010201b8748018dc3a400880f0600200244464b30010038991919911980480119b8a48901280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101420485980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80f101e1bac3021002375a603e0026466ec0dd4180f8009ba73020001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6048003337149101023a200098008054c09400600a805100a181380144ca6002015302400199b8a489023a200098008054c094006600e66008008004805100a1813801204a3027001409066e29220102207d0000340846eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803901120423758007133005375a0060051323371491102682700329800800cc044dc68014cdc52450127000044004444b30013371000490004400626466453001006980b002ccdc599b800025980099b88002480522903045206e408c66e2ccdc0000acc004cdc4000a4029148182290372046004401866e0c00520203370c002901019b8e00400240806eb800d0241b8a4881022c2000301c301d00222323300100100322598009807800c4cdc524410130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406880d0c06c02cc028029149a2a660149211856616c696461746f722072657475726e65642066616c7365001365640241" + : "590dc80101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae003488888889660033001300437540132232330010010032259800800c528456600266ebc00cc01cc02c0062946266004004601800280310094dd2a400523008300930093009300930093009001918041804800cdd2a4001370e90014dc3a40009111111119194c004c034dd5000c88cc02c004c028cc048dd480125eb826022015301100248889660026010009132323322598009805980a9baa0028992cc004c034c058dd5000c4cc020dd7180d180b9baa00137566020602e6ea801e2c80a8c064c058dd5180c980b1baa300e301637546032602c6ea800a2c80a0c8cc004004dd6180c180a9baa0052259800800c530103d87a80008992cc004cdd7980d180b9baa001004898071980c800a5eb82266006006603600480a8c064005017180b980c001180b00098091baa005899912cc004c00401a264b3001300a30143754009132323259800980e00144cc88cc89660026022003159800980e1baa00380145901d45660026024003159800980e1baa00380145901d45660026012003159800980e1baa00380145901d45660026014003159800980e1baa00380145901d45660026008003159800980e1baa00380145901d456600266e1d200a0018acc004c070dd5001c00a2c80ea2c80d101a2034406880d101a0991980080080211192cc00400a330012259800800c52f5c1133021301e30220013300200230230014081222598008014530103d87a80008acc004c0540062602e66044604600497ae08cc00400e6048005337000029000a0064078810a44646600200200644b30010018a5eb8226644b3001300500289981280119802002000c4cc01001000502118120009812800a0449192cc004cdc4800a405d13371666e012080010010028acc004cdc4800a41fc0713371690580099b8b001002899b8b482c804cdc599b830014820010cdc599b86001482001000901d203a371a00323018330200014bd70489660026028603c6ea800a264646644b30013027003802c5902418120009bae30240023024001301f3754005164075230213022302200191810981118111811000cdc8a441009b8f4881004888888888a600260140153009009919199119801001000912cc0040060071323322598009804801456600260100051001803205889980280298190022058375c60560026eb4c0b0004c0b800502c191919800800802112cc0040060071323322598009805001456600260120051001803205a8998028029819802205a375c60580026eacc0b4004c0bc00502d0a5eb7bdb1805200091919800800801112cc004006297adef6c608994c004dd71815000cdd59815800cc0bc009222598009804801c566002601000710018802a05889981819bb037520066e98008cc01801800502c0c0b400502b244446644664464653001303430313754606860626ea800665300130353036001981518191baa3035001981a98191baa02148896600266ebcdd318059bab302d303537540066e98c02cdd59816981a9baa0028acc004cdc498061bab302d3035375400460186eacc0b4c0d4dd5001c56600266ebcc044c0d4dd5001a60103d87a80008992cc004c0b0c0d4dd5000c4c966002605a606c6ea80062646644b300130273039375400313233019001132598009814981d9baa0018991980d800899912cc004c0d00062b300159800803c66002606e607e6ea8016606e607e6ea800e97ae101010000810101008101020020248a5040f513042303f375408b1640f5159800981a800c566002b30010078acc00400a330013037303f375400b3037303f37540074bd708101000020248a5040f514a081ea2606e607e6ea81162c81ea2b3001302c0018acc0056600200f159800801456600330013037303f375400b3037303f37540074bd70901020020248992cc004c0d4c0fcdd5000c4c966002606c60806ea800633001598009bac30443041375400314a314a0821294294503f45903f1980a9bac304032337606ea0c100004dd398208009baa304330403754002900045903e1980a1bac303f32337606ea0c0fc004dd398200009baa3037303f375400690024528207a8a5040f514a081ea26038607e6ea81162c81ea2b3001302d0018acc0056600200f15980080144cdd7981b981f9baa003301e3037303f375400b14a081ea294103d44c06cc0fcdd5022c5903d4566002604e003159800acc00401e2b3001002899baf3037303f375400a603c606e607e6ea800e294103d4528207a898211821982198219821981f9baa0458b207a8acc005660033001007a50a5140f5159800801456600266ebcc0dcc0fcdd5001981b981f9baa0058998180041bab3038303f375405f14a081ea294103d4528207a8982118219821982198219821981f9baa0458b207a40f481e903d207a40f466e3cdd71820181e9baa001375c6080607a6ea800cc0f0dd5004981f981e1baa0018b20743018303b3754012607a60746ea80062c81c0cdc79bae303b30383754006002602a60706ea8014dd7181d181b9baa0018b206a3039303637546072606c6ea80122c81a0c0e0c0d4dd5181c181a9baa0028b20668b20668b206619801817010cc0d000922259800981518199baa003899912cc004c08cc0d4dd5000c4c8cc0540044ca600264660020026eb0c0c4c0e4dd5014112cc004006297ae089981e1ba732323303e303f0023303e3019303c37540026607c6ea4c8cdc52441018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400240f481e8dc68009bae3040303d375400266e28c074dd7181a981e9baa00133714603a6eb8c068c0f4dd5000980e9bae3019303d375400260666607c98010b4a5369676e617475726531003303e303f303c3754607e60786ea8004cc0f93010140003303e375200a97ae04bd70181f181f8009bac303d00133002002303e00140ed3756606260706ea80a26076607860786078607860786078607860706ea80a1222323300100100a2232598009819800c4c8c966002606a607e6ea8006264653001375c608a005375c608a608c003375c608a002b9518228009bac30433040375400314a081f0c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c608a0020091303933044374e00297ae089980180198230012080375860880028210dd71820981f1baa0028acc004c0d0006264660020026eb0c108c0fcdd5001912cc00400629462b30013300500530430018998010011822000c528207c41051598009815800c4c8cc004004dd61821181f9baa0032259800800c52845660026600a00a608600314a3133002002304400140f8820a2b3001302c00189919b89375a608400264660020026eb0c10cc110008896600200314800226644b300133008008002899b800014800a20028208c110004cc008008c114005042181f1baa0028acc004c0980062646644b3001303730403754005159800981b98201baa30443045003899b89375a608860826ea8008006266e20dd6982218209baa00200140fd14a081f8c108004dd69821181f9baa003303e3754606c607c6ea80122b30013370e9005000c4c8cc8966002606e60806ea800a2b30013037304037546088608a0071337120026eb4c110c104dd500144cdc40009bad30443041375400481fa294103f18210009bad3042303f3754006607c6ea8c104c0f8dd500244cc0e4014c0e0cc100c104c0f8dd500125eb8103c207840f081e103c2078303c375400237286eccc0b8cc0e4c0e8c0dcdd50131981c9ba90033303900133039303a3037375400897ae03039303637540031640d06eb8c0dcc0d0dd50019808981a1baa0048b20641819981a0009980081600f91119912cc00566002604e6eb4c0c400a2604e6eb4c0c4006294103044c8cdd79815194c00400690004dd6181a002200222259800800c52f5c1133038598009919800800804112cc00400629422b30013370e6eb4c0ec0040122946266004004607800281b103944c9660026058606c6ea800626074606e6ea80062c81a8cc02c01000a2607200281a260020073370000490014c0e8005003206e0053758606400314a08180c8cdd81ba83030001374e60620026ea800cc8cdd81ba83030001374e60620026ea800888c966002606800313259800981a800c4cc0ccc0d0008cc0ccc0d00052f5c11640c8660226eb0c034c0c0dd50011198029bab3029303137540020091640c4660206eb0c0c8c0bcdd50009198021bab302830303754605060606ea800400c896600266e2000520008a6103d87a8000899802801000a05622323300100130070032259800800c528456600266e3cdd71819000801c528c4cc008008c0cc00502d206022646644b30013024001899912cc004c05cc084dd500144c8c8c8cc8966002605600713259800980e98139baa0018991919912cc004c0c000e264b30013022001899192cc004c0cc00a01d1640c06eb8c0c4004c0b4dd5003c566002604600315980098169baa00780645902e45902b2056302b375400d1640b46eb8c0b4004dd71816801181680098141baa0018b204c302a0058b2050375c605000260500046050002604e00260446ea800a2c8100c08c0044c010c0900162c8108dd7181080098110009bac30200024078600400460326ea8004dc3a401060360071640646eb0c068004c068004c054dd5002459013180b980a1baa0078acc004c00801a26464b3001300b301537546032603400514a314a080a0dd6980c000980a1baa0078b202440486e1d2006370e90022020180818088009808004229344d9590021", + Type.Tuple([PolicyId, GovernanceConfig]), + [proxyPolicyId, gov], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1DistributionOracleDistributionOracleWithdraw { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + oracleNftPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5927e80101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0039bae00248888888888a60022a660089213265787065637420646174756d3a20446973747269627574696f6e4f7261636c65446174756d203d20646174756d5f6461746100168a99802249266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998022491b657870656374205b5f5d203d206f7261636c655f6f75747075747300168a998022495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f646174610016488896600264653001300f00198079808000cdc3a4009300f00248889660026004601e6ea800e3300130133010375400723014301530150019ba54800246028602a003370e90002444446464b30010018cc004dc3a4005222598009803180c9baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c9660026048007008803a042375a0030064090604200280f8dd700098100012042301e001407060346ea800e00280ba446466002002006446600600260040053016375400291114c004889660026014603a6ea800e264b300100180144c96600200313259800800c012264b30010018992cc004c08c0062b30013371290021811000c01a264b300130280048992cc004c0440062b30013025375400d009804204c8acc004c038006264b3001001804c4c96600200300a805402a264b3001302c003806402d0291bad00180520583029001409c604a6ea801a2b300130170018acc004c094dd500340260108132010811102220443023375400b007409460186044002810200c8120dd5000c01600b005802a04e302400140886048005003801c00e0068128c088005020180f1baa003800a0369112cc004c028c074dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b3001001803c01e00f0078992cc004c0a400e2b300130113024375400d13259800800c026264b3001001805402a01500a899912cc00400601913259800800c03601b00d806c4c966002605e00713259800980c000c4c9660020030108992cc004006023011808c046264b30013033003809c0490301bae00140cc60600028170c0b0dd5005c566002602a00315980098161baa00b808403d02d403d0292052302a375401500e40b06eb800502f1816000a054375c00260560048160c0a400502718129baa0068042044804204c375c0028148c0980050241813001401600b005802a04e302400140886048005003801c00e0068128c088005020180f1baa003800a036911192cc004c02c006264b3001001801c4c9660020030048024012009132598009813001c01a00a8118dd7000a04c30230014084603e6ea80122b300130080018992cc00400600713259800800c01200900480244c966002604c007006802a046375c0028130c08c005021180f9baa00480120384070603a6ea800e44464b3001300b0018992cc00400600713259800800c0120090048992cc004c09800e00d005408c6eb40060088130c08c005021180f9baa0048acc004c0200062b3001301f3754009003801204080120384070603a6ea800d2222332298009112cc004c040c08cdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c4c966002605a007159800980a98141baa0048992cc00400600f13259800800c4c9660020030098992cc0040062b300130310028acc004c064c0b0dd5001c4c96600200300b8992cc004006264b3001001806c4c96600200300e80744cc89660020030108992cc004006023011899912cc00400602713259800800c052029014899912cc00400602d13259800800c05e02f017899912cc00400603313259800800c06a03501a8992cc004c10800e2b3001302a303d375402113259800800c072264b300100180ec07603b1332259800800c07e264b30010018104082041132598009824001c5660020270218992cc00400604502281144cc89660020030248992cc00400604b025812c4c966002609a00715980080ac09a264b3001001813c09e04f1332259800800c0a6264b300100181540aa055132598009829001c66002045133035026225980080140ba264b300100181740ba264b3001001817c4c96600200303081840c20611332259800800c0ca264b30010018acc004c16800a3300100189803982d00440cd03a40cd05740ce067033819a0b6305800141586eb8004c15c009058182a800a0a6375800302e81720ac3053002414502b40bd02b413c6eb40060548290c13c00504d1bad001304e016813a09e304c015412902641286eb400604a8268c1280050481bad001304901481120943047013411502141146eb40060408240c1140050431bad001304400280ea08a30420014100607c6ea804203681da03681f8dd6800c069042181f800a07a375a002607c00501740fc607800281d0dd6800981d801405103c181c800a06e37580026070005011808a072303600140d06eb0004c0d400a01d00e40d860660028188c0cc00a01900c80640310341818800a05e302d375400700a40a900a40b900a805402a0148190c0bc00502d181780140220110088042060302d00140ac60526ea801200c813200c8150dd6000c01600a8168c0a80050281815001400e007003801a0563028001409860486ea800e002810a444b300130103023375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c566002605e00519800803466002003009804202680420168042058804402201100840c0605a0028158dd68009816001401502d1815000a050302a002801c00e00700340ac60500028130c090dd5001c005021488966002602060466ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b00d8992cc004c0d400e3300100c8cc00401201f00e406500e404500e40c86eb400601a81a8c0c80050301819001402e01700b805a066303000140b86eb4004c0bc00a0108180c0b400502b1bad001302c002802a05a302a00140a06054005003801c00e0068158c0a000502618121baa003800a0429112cc004c040c08cdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200300b805c02e26644b3001001806c4c96600200313259800800c03e264b30010018084042264b300130380038cc00403e330010048acc00400602313259800800c04a02501280944cc89660020030148992cc00400602b01580ac056264b3001303d00380bc05903a1bae00140f4607400281c0dd7000981c8012074303700140d50114071011405101140d46eb000602101040e0606a0028198c0d400a01d00e80740390361819800a062375a002606400500b40cc60600028170dd6800981780140210301816800a056375a002605800500540b460540028140c0a800a007003801c00d02b1814000a04c30243754007001408522259800980818119baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c4c966002606a00719800806466002009159800800c03a264b3001001807c03e01f00f899912cc00400602313259800800c04a02501280944c9660026074007014809a06e375c00281d0c0dc0050351bae001303600240dc6068002819201c80ca01c808a01c8190dd6000c03601a81a8c0c80050301819001402e01700b805a066303000140b86eb4004c0bc00a0108180c0b400502b1bad001302c002802a05a302a00140a06054005003801c00e0068158c0a000502618121baa003800a042488888c966002602601b13259800800c07e264b30010018acc004c0b400a2b300130153028375400313259800800c086264b30010018992cc00400604713259800800c4c9660020030258992cc00400604d0268992cc004c0d000e2b3001301c302f375400d13259800800c0a2264b3001001814c0a626644b3001001815c4c96600200302c81644cc896600200302e8992cc00400605f02f817c4cc89660020030318992cc00400606503281944cc89660020030348992cc004006264b300100181b44c966002003159800982200144cc09c038896600200513302900d225980080146600200f19800802c566002606060866ea8062264b300100181e44c96600200313259800800c0fa264b30010018acc004c13000a26644b300130360018992cc00400608513259800800c10e087132598009828801c4cc0d000489660020050078992cc0040063300100189801182a001c11d02b411e08f047823a0aa3052002414104441386eb00060870434144609c0028260c128dd5002c566002606600313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a056823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004c0f0006264b300100182144c966002003043821c4c96600260a20071330340012259800801401e264b30010018cc0040062600460a800704740b1047823c11e08e82a8c148009050411104e1bac001821c10d0511827000a098304a375400b15980099b8748018006264b300100182144c966002003043821c4cc89660020030458992cc0040062b3001305300289981b001912cc00400a2b3001303d3050375400713259800800c126264b3001001825412a0951332259800800c132264b3001001826c13609b13259800982d801c03e09c82c0dd6800c13505b182c000a0ac375a00260ae00504a416060aa0028298c144dd5001c12104e44c96600200319800800c4c008c15800e0928172093049824c125057182a00120a482320a0823411a08d046415060a20028278dd60009828001410e0868288c13800504c18251baa0058acc004cdc3a401000313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a05a823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004cdc3a401400313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a05a823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004cdc3a401800313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a05c823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004cdc3a401c00313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a05c823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004cdc3a402000315980098251baa005801410504b4105047208e411c8239047208e411c82390470cc00400626605e03244b300100281244c96600200304282144c9660020030438992cc004006089044822411226644b300100182344c966002003159800982a001466002003130073054008823a068823a0a2823c11e08f047415460a40028280dd7000982880120a4304f00141346eb00060850424140609a004825a07e8148c11cdd5001c0fd04940fe07f03f81fa09a304a0014120609400503d81ec0f607a8258c12000504618221baa01881da08281da04c81da04c8992cc00400607903c81e44c8c00cc128010dd6800c0f104a1823801208a8992cc00400607503a81d44c8c00cc120010dd6800c0e90481822801208681ba08281bc0de06f037411460840028200c10800a06b03581ac0d50431820000a07c375a002607e0050324100607a00281d8dd6800981e00140bd03d181d000a0703758002607200502c8162074303700140d46eb0004c0d800a05302940dc60680028190c0c0dd5003409d02d409d0311bac00181340990341818800a05e3031002812409204902440c8605e0028168c0bc00a04502281140890301816800a05630293754003020409902040a902081040820408170c0ac00502918139baa0118acc004c040036264b300100180fc4c966002003159800981680146600200300381020108102054810408204102040b860560028148c09cdd5008c0790242048159800980798129baa010899912cc004c050c09cdd5000c4c8cc896600330013233001001323300100137566006605a6ea8078896600200314bd7044c8cc88cc88cc008008004896600200310038991981b1ba733036375200a6606c60660026606c606800297ae0330030033038002303600140d06eacc0c400cdd718170009980180198198011818800a05e2259800800c528456600266e3cdd718181bac30300010288a518998010011818800a05440b94a14a28142264b30013371064b3001301f302c375400313259800800c5660026034605a6ea8006264b3001001814c4c96600200313259800800c0ae264b300100181640b20591332259800800c0ba264b3001001817c0be05f13259800981d001c6600200f1375a6016606c6ea8c0e4c0d8dd5181c981b1baa303930363754013030405503040dc6eb400605e81d0c0dc0050351bad0013036002816206e303400140c8606800502a81540aa05481a8c0c800503018171baa001814205681440a205102840cc6060605a6ea8006290002054301b302c3754603260586ea8010dd6980098161baa302f302c3754605e60586ea801a2b3001323259800980b800c4cdc41bad3031302e37540046eb4c00cc0b8dd5181898171baa3031302e3754011159800980d000c528c528205640ac60586ea8004c0bcc0b0dd5181798161baa302f3030303030303030303030303030302c375403b1323259800800c09a2b300130320018a51813205e40bc64660020026eb0c074c0b8dd500f912cc004006297ae0899912cc0056600266ebcc0d0c0c4dd5001004456600266ebcdd319198008009bab301f3032375400644b30010018a5eb7bdb1822653001375c606600337566068003303800248896600266e452201000038acc004cdc7a441000038800c401503444cc0e4cdd81ba9003374c0046600c00c00281a0606c00281a0dd32cc00528452f5bded8c113232330010014bd6f7b630112cc00400626606c66ec0dd48179ba60034bd6f7b63044ca60026eb8c0d00066eacc0d400660720049112cc004cdc8019801c4cc0e8cdd81ba9033374c00e00b15980099b8f03300389981d19bb037520666e9801c00626607466ec0dd48019ba60023300600600140d481a8606e00281a8c8cc0040052f5bded8c044b300100189981a99bb04c11453646973747269627574696f6e5f6f7261636c65004c010101004bd6f7b63044ca60026eb8c0cc0066eb4c0d000660700049112cc004cdc8244113646973747269627574696f6e5f6f7261636c650000389981c99bb04c011453646973747269627574696f6e5f6f7261636c65004c010101000058acc004cdc7a44113646973747269627574696f6e5f6f7261636c650000389981c99bb04c011453646973747269627574696f6e5f6f7261636c65004c0101010000189981c99bb037520066ea0008cc0180180050342068181b000a06840b913375e604060626ea8008cdd2a40086606600a97ae08a5040b914a081722660660046600800800313300400400140b86064002606600281826002444b3001301b001880146600200700199b86002001400c81624466e0ccdc1001000a410112f5223371266e08dd698188011bad30313032001337046eb4c0c4004dd69818981900148cdc4240006eb4c0c0c0c40066e092080897a981798161baa302f302c375400c91111119199118119981b8079981b9811181a9baa3038303537540086606e6ea0cc896600260100051598009804000c56600266012004003130030018980180120688a9981aa492b6578706563742069735f76616c69645f726174696f28706f73745f726574656e74696f6e5f7969656c6429001640d115330354911c6578706563742069735f76616c69645f726174696f28666c6f6f7229001640d06eb0c090c0d4dd50024c004dc4a400137586044606a6ea80126eb4c02cc0d4dd50024dd6981c181c981c981c981c981c981a9baa00448888c96600260160091598009805800c5660026601800200910018991919911805998201ba83370066e08dd6982080400119b82375a6082006002660806ea0cdc100080125eb80dd6981f98200009bad303f304000630083303d375066e08dd6981f00099b814820225e8c966002600e00b15980099b890050048acc004cdc48022410112f513370000a6601e66e0401001566002600e00315980099b8900148202d2244e26464646464646466e04cdc019b813370066e04cdc019b810073370600c900219b8300548030cdc18022406066e0c00d20f0013370600490500599b830014838138cdc19980b000803a4101ec086602a00200c6602800200a6602600200866024002006660220020046602000200266e0c00520288a9981d2491b6578706563742073203c3d206d61785f737570706f727465645f73001640e5153303a4910d6578706563742073203e3d2030001640e5153303a4911565787065637420725f6d6178203c3d207363616c65001640e5153303a4911465787065637420725f6d6178203e3d2062617365001640e5153303a491106578706563742062617365203e3d2030001640e464b30013371090405a4489800c52080b489138800a0723370666e08c02cdd6981f000a4190026eb4c0f8c0fc004cc0f4dd418059bad303e303f0014bd70199118049981f1ba83370266e08dd6981f80180099b82375a607e00c0046607c6ea0cdc1001000a5eb80dd6981e981f0009bad303d303e00440dd1533038491206578706563742069735f76616c69645f726174696f287261775f7969656c6429001640dd15330384911d6578706563742069735f76616c69645f726174696f28687572646c6529001640dc646644b300130070028acc004cdc42400000313303e37500046607c6ea00052f5c1153303a490116657870656374207374616b65645f75736472203e2030001640e5153303a49124657870656374206e65745f64697374726962757461626c655f696e636f6d65203e3d2030001640e46eb4c0f4c0e8dd50009bad3027303a3754002607860726ea802097ae02332232598009811800c52f5c210100008101010044cc0e4dd419b8300300133039375066e0c0080052f5c081a0c96600266e200052000899b8148000006200281a0cc010008004dd6981b8009bad3037303800123370660086eb4c0dc004dd6981b981c000980300322a660549217a6578706563740a20202020202076616c69646974795f72616e67655f7374617274735f6265666f7265280a202020202020202073656c662e76616c69646974795f72616e67652c0a202020202020202072656465656d65722e7061796c6f61642e616374696f6e2e74696d657374616d702c0a20202020202029001640a5153302a491696578706563740a20202020202072656465656d65722e7061796c6f61642e616374696f6e2e74696d657374616d70203e2070726576696f75735f6f7261636c655f74696d657374616d70280a20202020202020206f7261636c655f696e7075742c0a20202020202029001640a44605e60606060606000315330294913f657870656374206e6f5f6f7261636c655f746f6b656e735f6d696e7465642873656c662e6d696e742c206f7261636c655f6e66745f706f6c6963795f696429001640a0605860526ea8c058c0a4dd5000918169817181718171817000981598141baa0018a9981324815665787065637420536f6d65286f7261636c655f696e70757429203d0a20202020202066696e645f6f7261636c655f696e7075742873656c662e696e707574732c206f7261636c655f6e66745f706f6c6963795f696429001640946052604c6ea8040cc044dd6181498131baa01723010323322330020020012259800800c00e2646644b30013372291113646973747269627574696f6e5f6f7261636c65000028acc004cdc7a44113646973747269627574696f6e5f6f7261636c65000028800c01902a44cc014014c0c401102a1bae302a001375a6056002605a0028158c8c8cc004004dd5980b98151baa3017302a375400844b3001001801c4c8cc896600266e440a400a2b30013371e0520051001803205689980280298190022056375c60560026eacc0b0004c0b800502c0a5eb7bdb180520008a9981224813b657870656374205075626c6973685969656c644f7261636c652872656465656d657229203d206f7263686573747261746f725f72656465656d65720016408c22232598009807800c4c9660020030038992cc0040062b300130290028cc00400600b0044035004409900480240120088150c09c00502518119baa0048acc004c030006264b3001001801c4c96600200315980098148014566002602260486ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c0b400a330010038cc0040060130084039008403900840a900880440220108170c0ac0050291815801401a00d00680320583029001409c604a6ea800600881120088132009004802401102a1813800a04a3023375400900240808100c084dd50019112cc004c038c084dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981500144c9660026026604c6ea8012264b3001001803c4c96600200313259800800c026264b30010018acc004c0bc00a330010038992cc004c060006264b300100180644c966002003159800981900144c966002603600313259800800c03e264b30010018acc004c0d400a33001001805c04101440410324042021010808206c303300140c4605e6ea800a2b300130180018992cc00400601f13259800800c042021010899912cc00400602513259800800c04e027013899912cc00400602b13259800800c05a02d0168992cc004c0f000e02501740e46eb400602c81e0c0e40050371bad0013038002809a072303600140d06eb4004c0d400a02081b0c0cc00503118179baa002807205840b0605a6ea800601a817a01b00d806c0350331818000a05c302c3754005159800980a800c56600260586ea800a00d00b40b500b40a48148c0a8dd5000c02900e402902c402a01500a8052060302d00140ac605a00500880440220108170c0ac00502918139baa0048032048132598009809800c566002604e6ea800a00f00640a11598009808000c4c9660020030078992cc0040060110088044022264b3001302e003805402502b1bae00140b860560028148c09cdd50014566002603200313259800800c01e264b3001302d002804c02102a1815800a052302737540050064090812102418129baa001802a04e802c01600b00540ac60500028130c0a000a007003801c00d0291813000a04830223754007001407c403a01d00e8072038332232598009802980c1baa0018980c9919bb0301d001301d301e0013758603860326ea80062a6602e9218b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a202020202900164058646600200200644b30010018a60103d87a80008992cc004cdd7980d00099ba548010cc074cdd2a40046603a6ea40112f5c097ae0898049980e9ba73301d301a0013301d301b0014bd7025eb82266006006603e00480c0c07400501b1bab3019301a301a301a301a301a301a301a301a301a3016375400e6eb8c064c058dd54c004896600200314bd7044cc068c05cc06c004cc008008c07000501948896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901648888c8cc004004014896600200310058992cc004006266008604000400d1330053020002330030030014078604000280ea6eb0c00cc058dd5003a44446464646644a6603a66e5924012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea406d220100132598009806180f9baa00189929980f99b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980a18109baa0018992cc0040062b3001300f3022375400313259800800c076264b300100180f407a03d01e899912cc0040060411325980098160014401a0428148c0a80050281bae001302900240a8604e0028128c08cdd5000c071020407203901c80e2050302530223754003153302049013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d0016407c602060426ea8c038c084dd5000981198101baa0018a9980f24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640746601400c4646600200260066eacc038c084dd5180718109baa0022259800800c528456600266e3cdd7181280080f4528c4cc008008c09800501f2046300100130070072223259800801c4c8c8cc88cc024008cdc524501280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100c204a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80f901f1bac3022002375a60400026466ec0dd418100009ba73021001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a604a003337149101023a200098008054c09800600a805100a181400144ca6002015302500199b8a489023a200098008054c098006600e66008008004805100a1814001204c3028001409466e29220102207d0000340886eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900920443758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720483371666e000056600266e2000520148a40c11481b9024002200c33706002901019b8600148080cdc70020012042375c0068128dc5245022c200022323300100100322598009805800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003407080e0c00c00c44646600200200644b30010018a6103d87a80008992cc004c010006260106603800297ae0899801801980f001202e301c00140688b201a180780098051baa0108a4d153300849011856616c696461746f722072657475726e65642066616c73650013656401c1" + : "5914ad0101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae0039bae00248888888896600264653001300a00198051805800cdc3a4009300a0024888966002600460146ea800e33001300e300b37540072300f301030100019ba5480024601e6020003370e90004dc3a4005223233001001003223300300130020024888888a600244646600200200644b30010018a60103d87a80008992cc004c010006260146603200297ae0899801801980d801202a3019001405d2259800980298099baa00289919192cc004c06c00a26464b3001300a0018acc004c064dd5001401a2c80d22b30013009001899192cc004c07c00a0111640706eb4c074004c064dd500145660026020003159800980c9baa00280345901a459017202e405c602e6ea8004c06800e2c80c0c966002602e00315980099b8948010c0580062d13007301600140551640606ea8c064004c064004c050dd500145901248966002600a60266ea800a264646644b3001301c003802c590191bad3019001375c6032004603200260286ea800a2c809244b30013005301337540051323232332259800980e801c4c966002601660326ea8006264646644b300130220038992cc004c04000626464b300130250028074590221bae3023001301f375400f1598009807800c566002603e6ea801e01916408116407480e8c074dd500345901f1bae301f001375c603e004603e00260346ea80062c80c0c0700162c80d0dd7180d000980d001180d000980c800980a1baa0028b202491192cc004c01800626464b3001301b0028024590181bae3019001301537540071598009802800c4c8c96600260360050048b2030375c6032002602a6ea800e2c809901318099baa00291192cc004c01800626464b3001301b0028024590181bad3019001301537540071598009802800c566002602a6ea800e00516405916404c8098c04cdd500124444453001332232598009806180d1baa0018980d9919bb0301f001301f30200013758603c60366ea80062c80c8c8cc00400400c896600200314c103d87a80008992cc004cdd7980e00099ba548010cc07ccdd2a40046603e6ea40112f5c097ae0898081980f9ba73301f301c0013301f301d0014bd7025eb82266006006604200480d8c07c00501d1bab301b301c301c301c301c301c301c301c301c301c3018375401c6eb8c06cc060dd51919192cc004c030c068dd5000c4c966002602660366ea8006264b3001300e301c3754003132323322598009812801c40162c8110c088004dd718110011811000980e9baa0018b2036301f301c3754003164068601e60366ea8c034c06cdd5180f180d9baa0018b2032330083758601860346ea80408c8cc004004c00cdd59807180e1baa300e301c375400444b30010018a508acc004cdc79bae302000101a8a518998010011810800a0364078600200244b30010018a5eb822660386032603a00266004004603c00280da4464b3001300c0018992cc004c080006266010603e00200716407460366ea800e2b3001300b0018992cc004c080006264b3001300e301c3754003132323259800981200144cc034c08c00c4cc03400401e2c8108c088004c088004c074dd5000c5901b180f800c5901d180d9baa0038b2032406460326ea800a44b3001300b30193754005132323259800981080144cc89660026020603c6ea800a2646464b3001302600289980618128018992cc004c050006264b30013028001899192cc004c05c006264b3001302b0018998089815000804c5902818131baa0028acc004c05800626464653001375a6058003375a6058007375a60580049112cc004c0c001201d1640b4302c001302b001302637540051640908120c090dd50009813800c5902518119baa0028acc004c04c0062b3001302337540050058b20488b2042408460426ea80062c8118c090004c090004c07cdd500145901d18100018992cc004c03c0062b3001301e37540050058b203e8acc004c03800626464b30013024002803c590211bae3022001301e3754005159800980a800c4c8c96600260480050078b20423022001301e375400516407080e101c180e1baa0018b203c301f001301f001301a37540051640609114c0048966002601c60386ea800a2646464b300130240028992cc004c048c080dd5000c4c8c966002604e00313259800980a98119baa00189919191919194c004dd69816800cdd61816802cdd618168024dd69816801cdd69816801244444b300130330068992cc004c084c0bcdd5000c4c8c8cc89660026070007132332259800981d801c4c8cc8966002607c007133021303d01813302901b225980080140822646644b300130430018998151821000898021821802c590401bae304000130410013758607e00481ea2c81d8dd6981d8009bad303b00c303b00b8b2070375a60700026eb4c0e0028c0e00262c81a8dd6981a8009bad30350023035001303037540031640b860640171640c0302d001302c001302b001302a001302900130243754003164088604c005164090604c00260426ea80062c80f8c08c00e2c8108dd618110009811000980e9baa0028b2036912cc004c038c070dd500144c8c8c8cc8966002604c007133008302500513300e0020068b20463023001375a604600460460026044002603a6ea800a2c80da44b3001300e301c37540051323232323298009bad30250019bad30250049bad3025003981280124444b3001302a00589980618148048998090008054590270c094004c090004c08c004c088004c074dd500145901b48966002601c60386ea800a264646464646530013758604c003375a604c00b375a604c009375a604c007302600248888966002605800d13300e302b00b1330140011323322598009817801c03e2c8160dd718160009bae302c006302c0058b205218130009812800981200098118009811000980e9baa0028b2036912cc004c038c070dd500144c8c8c8c8ca60026eb0c0940066eb4c0940126eb4c09400e604a00491112cc004c0a801626601860520122660240022646644b3001302d003806c5902a1bae302a001375c605400a605400916409c3025001302400130230013022001301d375400516406d301a3754006911111192cc004c04c00a264b300130270018992cc004c054c08cdd5000c4c8c8c8cc8966002605a00713259800980d98149baa00189919191919194c004c0cc0066eb0c0cc0166eb4c0cc0126eb4c0cc00e6066004911112cc004c0e401a2660486eb0c0e002c8966002005133026006225980080144cc0880144cc088024566002605460706ea80462646464b3001304000289919912cc004c0c000a264b300130440018998179bac304300122598008014012266046608a00426002608c004821a2c8208c0fcdd5001c566002605e005132598009822000c4cc0bcdd61821800912cc00400a0091330233045002130013046002410d164104607e6ea800e2b300130360028992cc004c11000626605e6eb0c10c0048966002005004899812182280109800982300120868b2082303f375400715980099b874801800a2646464b300130460028998189bac304500322598008014566002606a60866ea800e264646644b3001304c0038054590491bad3049001375a6092004609200260886ea800e2c821226604c608e004260026090004822a2c8218c110004c110004c0fcdd5001c56600266e1d20080028992cc004c11000626605e6eb0c10c0048966002005004899812982280109800982300120868b2082303f375400715980099b874802800a264b300130440018998179bac30430012259800801401226604a608a00426002608c004821a2c8208c0fcdd5001c56600266e1d200c0028992cc004c11000626605e6eb0c10c0048966002005004899813182280109800982300120868b2082303f375400715980099b874803800a264b300130440018998179bac30430012259800801401226604c608a00426002608c004821a2c8208c0fcdd5001c56600266e1d20100028acc004c0fcdd5001c0062c82022c81e903d207a40f481e903d207a40f481e8c0f0dd500089981200109981600b112cc00400a03d1323322598009823000c4cc0b4c1140044c010c1180162c8218dd7182180098220009bac30420024100607e0071640f4607c002607c00260726ea80462c81ba2646004607c0066eb4c0f000903a44c8c008c0f000cdd6981d00120708b206c1819800981900098188009818000981780098151baa0018b2050302c0058b20543758605400260540046054002605200260486ea80062c8110c0980062c8120c088dd500545660026024005132598009813800c4cc020c09800400a2c8120c088dd50054590202040159800980898101baa009899912cc004c050c088dd5000c4c8cc89660033001323300100132330010013756600660506ea8078896600200314bd7044c8cc88cc88cc00800800489660020031003899198189ba733031375200a66062605c00266062605e00297ae0330030033033002303100140bc6eacc0b000cdd718148009980180198170011816000a0542259800800c528456600266e3cdd718159bac302b0010248a518998010011816000a04c40a54a14a28122264b30013371064b3001301f3027375400313259800980d18141baa001899191919912cc004c0c800e266026606200a26eb4c020c0b8dd5181898171baa3031302e37546062605c6ea801a2c8178dd698178009bad302f002302f001302e0013029375400316409c605660506ea800629000204c301b302737546032604e6ea8010dd6980098139baa302a302737546054604e6ea801a2b3001323259800980c800c4cdc41bad302c302937540046eb4c00cc0a4dd5181618149baa302c30293754011159800980d000c528c528204e409c604e6ea8004c0a8c09cdd5181518139baa302a302b302b302b302b302b302b302b3027375403b13259800981619198008009bac301d3029375403e44b30010018a5eb8226644b30015980099baf302f302c375400401115980099baf374c64660020026eacc07cc0b4dd5001912cc004006297adef6c608994c004dd71817000cdd59817800cc0cc0092225980099b91489000038acc004cdc7a441000038800c401503044cc0d0cdd81ba9003374c0046600c00c002818060620028178dd32cc00528452f5bded8c113232330010014bd6f7b630112cc00400626606266ec0dd48159ba60034bd6f7b63044ca60026eb8c0bc0066eacc0c000660680049112cc004cdc8017801c4cc0d4cdd81ba902f374c00e00b15980099b8f02f00389981a99bb0375205e6e9801c00626606a66ec0dd48019ba60023300600600140c4818860640028180c8cc0040052f5bded8c044b300100189981819bb04c11453646973747269627574696f6e5f6f7261636c65004c010101004bd6f7b63044ca60026eb8c0b80066eb4c0bc00660660049112cc004cdc8244113646973747269627574696f6e5f6f7261636c650000389981a19bb04c011453646973747269627574696f6e5f6f7261636c65004c010101000058acc004cdc7a44113646973747269627574696f6e5f6f7261636c650000389981a19bb04c011453646973747269627574696f6e5f6f7261636c65004c0101010000189981a19bb037520066ea0008cc01801800503020601818800a05e40a913375e604060586ea8008cdd2a40086605c00a97ae08a5040a914a0815226605c0046600800800313300400400140a8605a002605c002815a29462c814a6002444b3001301b001880146600200700199b86002001400c81424466e0ccdc1001000a410112f5223371266e08dd698160011bad302c302d001337046eb4c0b0004dd69816181680148cdc4240006eb4c0acc0b00066e092080897a981518139baa302a3027375400c91111119199118119981900799819181118181baa303330303754008660646ea0cc896600260100051598009804000c56600266012004003130030018980180120608b20608b20603758604860606ea801260026e2520009bac302230303754009375a601660606ea80126eb4c0ccc0d0c0d0c0d0c0d0c0d0c0c0dd50022444464b3001300b0048acc004c02c0062b30013300c0010048800c4c8c8cc88c02ccc0ecdd419b80337046eb4c0f0020008cdc11bad303c0030013303b375066e080040092f5c06eb4c0e8c0ec004dd6981d181d80318041981c1ba8337046eb4c0e4004cdc0a410112f464b300130070058acc004cdc4802802456600266e240112080897a899b800053300f3370200800ab300130070018acc004cdc4800a41016912271323232323232323370266e00cdc099b803370266e00cdc080399b8300648010cdc1802a401866e0c01120303370600690780099b83002482802ccdc1800a41c09c66e0ccc05800401d2080f604330150010063301400100533013001004330120010033301100100233010001001337060029014459035459035459035459035459035192cc004cdc424101691226003148202d2244e200281a8cdc199b82300b375a60720029064009bad3039303a00133038375060166eb4c0e4c0e80052f5c066446012660726ea0cdc099b82375a607400600266e08dd6981d0030011981c9ba83370400400297ae0375a607060720026eb4c0e0c0e40110334590334590331919912cc004c01c00a2b3001337109000000c4cc0e4dd40011981c9ba80014bd704590354590351bad3038303537540026eb4c09cc0d4dd5000981b981a1baa00825eb808cc88c966002604600314bd70810100008101010044cc0d0dd419b8300300133034375066e0c0080052f5c08180c96600266e200052000899b814800000620028180cc010008004dd698190009bad3032303300123370660086eb4c0c8004dd698191819800980300322c812a2c81288c0a8c0acc0acc0ac0062c8120c09cc090dd5180b18121baa001230283029302930293029001302630233754003164084604860426ea8024cc03cdd6181218109baa01723012323322330020020012259800800c00e2646644b300133722910113646973747269627574696f6e5f6f7261636c65000028acc004cdc7a44113646973747269627574696f6e5f6f7261636c65000028800c01902644cc014014c0b00110261bae3025001375a604c00260500028130c8c8cc004004dd5980b98129baa30173025375400844b3001001801c4c8cc896600266e4409400a2b30013371e04a0051001803204e8998028029816802204e375c604c0026eacc09c004c0a40050270a5eb7bdb180520008b203e08b2012180500098029baa00a8a4d13656400c1", + Type.Tuple([PolicyId, PolicyId]), + [proxyPolicyId, oracleNftPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1DistributionOracleDistributionOracleElse { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + oracleNftPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5927e80101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0039bae00248888888888a60022a660089213265787065637420646174756d3a20446973747269627574696f6e4f7261636c65446174756d203d20646174756d5f6461746100168a99802249266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998022491b657870656374205b5f5d203d206f7261636c655f6f75747075747300168a998022495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f646174610016488896600264653001300f00198079808000cdc3a4009300f00248889660026004601e6ea800e3300130133010375400723014301530150019ba54800246028602a003370e90002444446464b30010018cc004dc3a4005222598009803180c9baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c9660026048007008803a042375a0030064090604200280f8dd700098100012042301e001407060346ea800e00280ba446466002002006446600600260040053016375400291114c004889660026014603a6ea800e264b300100180144c96600200313259800800c012264b30010018992cc004c08c0062b30013371290021811000c01a264b300130280048992cc004c0440062b30013025375400d009804204c8acc004c038006264b3001001804c4c96600200300a805402a264b3001302c003806402d0291bad00180520583029001409c604a6ea801a2b300130170018acc004c094dd500340260108132010811102220443023375400b007409460186044002810200c8120dd5000c01600b005802a04e302400140886048005003801c00e0068128c088005020180f1baa003800a0369112cc004c028c074dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b3001001803c01e00f0078992cc004c0a400e2b300130113024375400d13259800800c026264b3001001805402a01500a899912cc00400601913259800800c03601b00d806c4c966002605e00713259800980c000c4c9660020030108992cc004006023011808c046264b30013033003809c0490301bae00140cc60600028170c0b0dd5005c566002602a00315980098161baa00b808403d02d403d0292052302a375401500e40b06eb800502f1816000a054375c00260560048160c0a400502718129baa0068042044804204c375c0028148c0980050241813001401600b005802a04e302400140886048005003801c00e0068128c088005020180f1baa003800a036911192cc004c02c006264b3001001801c4c9660020030048024012009132598009813001c01a00a8118dd7000a04c30230014084603e6ea80122b300130080018992cc00400600713259800800c01200900480244c966002604c007006802a046375c0028130c08c005021180f9baa00480120384070603a6ea800e44464b3001300b0018992cc00400600713259800800c0120090048992cc004c09800e00d005408c6eb40060088130c08c005021180f9baa0048acc004c0200062b3001301f3754009003801204080120384070603a6ea800d2222332298009112cc004c040c08cdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c4c966002605a007159800980a98141baa0048992cc00400600f13259800800c4c9660020030098992cc0040062b300130310028acc004c064c0b0dd5001c4c96600200300b8992cc004006264b3001001806c4c96600200300e80744cc89660020030108992cc004006023011899912cc00400602713259800800c052029014899912cc00400602d13259800800c05e02f017899912cc00400603313259800800c06a03501a8992cc004c10800e2b3001302a303d375402113259800800c072264b300100180ec07603b1332259800800c07e264b30010018104082041132598009824001c5660020270218992cc00400604502281144cc89660020030248992cc00400604b025812c4c966002609a00715980080ac09a264b3001001813c09e04f1332259800800c0a6264b300100181540aa055132598009829001c66002045133035026225980080140ba264b300100181740ba264b3001001817c4c96600200303081840c20611332259800800c0ca264b30010018acc004c16800a3300100189803982d00440cd03a40cd05740ce067033819a0b6305800141586eb8004c15c009058182a800a0a6375800302e81720ac3053002414502b40bd02b413c6eb40060548290c13c00504d1bad001304e016813a09e304c015412902641286eb400604a8268c1280050481bad001304901481120943047013411502141146eb40060408240c1140050431bad001304400280ea08a30420014100607c6ea804203681da03681f8dd6800c069042181f800a07a375a002607c00501740fc607800281d0dd6800981d801405103c181c800a06e37580026070005011808a072303600140d06eb0004c0d400a01d00e40d860660028188c0cc00a01900c80640310341818800a05e302d375400700a40a900a40b900a805402a0148190c0bc00502d181780140220110088042060302d00140ac60526ea801200c813200c8150dd6000c01600a8168c0a80050281815001400e007003801a0563028001409860486ea800e002810a444b300130103023375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c566002605e00519800803466002003009804202680420168042058804402201100840c0605a0028158dd68009816001401502d1815000a050302a002801c00e00700340ac60500028130c090dd5001c005021488966002602060466ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b00d8992cc004c0d400e3300100c8cc00401201f00e406500e404500e40c86eb400601a81a8c0c80050301819001402e01700b805a066303000140b86eb4004c0bc00a0108180c0b400502b1bad001302c002802a05a302a00140a06054005003801c00e0068158c0a000502618121baa003800a0429112cc004c040c08cdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200300b805c02e26644b3001001806c4c96600200313259800800c03e264b30010018084042264b300130380038cc00403e330010048acc00400602313259800800c04a02501280944cc89660020030148992cc00400602b01580ac056264b3001303d00380bc05903a1bae00140f4607400281c0dd7000981c8012074303700140d50114071011405101140d46eb000602101040e0606a0028198c0d400a01d00e80740390361819800a062375a002606400500b40cc60600028170dd6800981780140210301816800a056375a002605800500540b460540028140c0a800a007003801c00d02b1814000a04c30243754007001408522259800980818119baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c4c966002606a00719800806466002009159800800c03a264b3001001807c03e01f00f899912cc00400602313259800800c04a02501280944c9660026074007014809a06e375c00281d0c0dc0050351bae001303600240dc6068002819201c80ca01c808a01c8190dd6000c03601a81a8c0c80050301819001402e01700b805a066303000140b86eb4004c0bc00a0108180c0b400502b1bad001302c002802a05a302a00140a06054005003801c00e0068158c0a000502618121baa003800a042488888c966002602601b13259800800c07e264b30010018acc004c0b400a2b300130153028375400313259800800c086264b30010018992cc00400604713259800800c4c9660020030258992cc00400604d0268992cc004c0d000e2b3001301c302f375400d13259800800c0a2264b3001001814c0a626644b3001001815c4c96600200302c81644cc896600200302e8992cc00400605f02f817c4cc89660020030318992cc00400606503281944cc89660020030348992cc004006264b300100181b44c966002003159800982200144cc09c038896600200513302900d225980080146600200f19800802c566002606060866ea8062264b300100181e44c96600200313259800800c0fa264b30010018acc004c13000a26644b300130360018992cc00400608513259800800c10e087132598009828801c4cc0d000489660020050078992cc0040063300100189801182a001c11d02b411e08f047823a0aa3052002414104441386eb00060870434144609c0028260c128dd5002c566002606600313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a056823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004c0f0006264b300100182144c966002003043821c4c96600260a20071330340012259800801401e264b30010018cc0040062600460a800704740b1047823c11e08e82a8c148009050411104e1bac001821c10d0511827000a098304a375400b15980099b8748018006264b300100182144c966002003043821c4cc89660020030458992cc0040062b3001305300289981b001912cc00400a2b3001303d3050375400713259800800c126264b3001001825412a0951332259800800c132264b3001001826c13609b13259800982d801c03e09c82c0dd6800c13505b182c000a0ac375a00260ae00504a416060aa0028298c144dd5001c12104e44c96600200319800800c4c008c15800e0928172093049824c125057182a00120a482320a0823411a08d046415060a20028278dd60009828001410e0868288c13800504c18251baa0058acc004cdc3a401000313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a05a823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004cdc3a401400313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a05a823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004cdc3a401800313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a05c823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004cdc3a401c00313259800800c10a264b3001001821c10e264b3001305100389981a000912cc00400a00f13259800800c66002003130023054003823a05c823c11e08f047415460a400482820888270dd6000c10e0868288c13800504c18251baa0058acc004cdc3a402000315980098251baa005801410504b4105047208e411c8239047208e411c82390470cc00400626605e03244b300100281244c96600200304282144c9660020030438992cc004006089044822411226644b300100182344c966002003159800982a001466002003130073054008823a068823a0a2823c11e08f047415460a40028280dd7000982880120a4304f00141346eb00060850424140609a004825a07e8148c11cdd5001c0fd04940fe07f03f81fa09a304a0014120609400503d81ec0f607a8258c12000504618221baa01881da08281da04c81da04c8992cc00400607903c81e44c8c00cc128010dd6800c0f104a1823801208a8992cc00400607503a81d44c8c00cc120010dd6800c0e90481822801208681ba08281bc0de06f037411460840028200c10800a06b03581ac0d50431820000a07c375a002607e0050324100607a00281d8dd6800981e00140bd03d181d000a0703758002607200502c8162074303700140d46eb0004c0d800a05302940dc60680028190c0c0dd5003409d02d409d0311bac00181340990341818800a05e3031002812409204902440c8605e0028168c0bc00a04502281140890301816800a05630293754003020409902040a902081040820408170c0ac00502918139baa0118acc004c040036264b300100180fc4c966002003159800981680146600200300381020108102054810408204102040b860560028148c09cdd5008c0790242048159800980798129baa010899912cc004c050c09cdd5000c4c8cc896600330013233001001323300100137566006605a6ea8078896600200314bd7044c8cc88cc88cc008008004896600200310038991981b1ba733036375200a6606c60660026606c606800297ae0330030033038002303600140d06eacc0c400cdd718170009980180198198011818800a05e2259800800c528456600266e3cdd718181bac30300010288a518998010011818800a05440b94a14a28142264b30013371064b3001301f302c375400313259800800c5660026034605a6ea8006264b3001001814c4c96600200313259800800c0ae264b300100181640b20591332259800800c0ba264b3001001817c0be05f13259800981d001c6600200f1375a6016606c6ea8c0e4c0d8dd5181c981b1baa303930363754013030405503040dc6eb400605e81d0c0dc0050351bad0013036002816206e303400140c8606800502a81540aa05481a8c0c800503018171baa001814205681440a205102840cc6060605a6ea8006290002054301b302c3754603260586ea8010dd6980098161baa302f302c3754605e60586ea801a2b3001323259800980b800c4cdc41bad3031302e37540046eb4c00cc0b8dd5181898171baa3031302e3754011159800980d000c528c528205640ac60586ea8004c0bcc0b0dd5181798161baa302f3030303030303030303030303030302c375403b1323259800800c09a2b300130320018a51813205e40bc64660020026eb0c074c0b8dd500f912cc004006297ae0899912cc0056600266ebcc0d0c0c4dd5001004456600266ebcdd319198008009bab301f3032375400644b30010018a5eb7bdb1822653001375c606600337566068003303800248896600266e452201000038acc004cdc7a441000038800c401503444cc0e4cdd81ba9003374c0046600c00c00281a0606c00281a0dd32cc00528452f5bded8c113232330010014bd6f7b630112cc00400626606c66ec0dd48179ba60034bd6f7b63044ca60026eb8c0d00066eacc0d400660720049112cc004cdc8019801c4cc0e8cdd81ba9033374c00e00b15980099b8f03300389981d19bb037520666e9801c00626607466ec0dd48019ba60023300600600140d481a8606e00281a8c8cc0040052f5bded8c044b300100189981a99bb04c11453646973747269627574696f6e5f6f7261636c65004c010101004bd6f7b63044ca60026eb8c0cc0066eb4c0d000660700049112cc004cdc8244113646973747269627574696f6e5f6f7261636c650000389981c99bb04c011453646973747269627574696f6e5f6f7261636c65004c010101000058acc004cdc7a44113646973747269627574696f6e5f6f7261636c650000389981c99bb04c011453646973747269627574696f6e5f6f7261636c65004c0101010000189981c99bb037520066ea0008cc0180180050342068181b000a06840b913375e604060626ea8008cdd2a40086606600a97ae08a5040b914a081722660660046600800800313300400400140b86064002606600281826002444b3001301b001880146600200700199b86002001400c81624466e0ccdc1001000a410112f5223371266e08dd698188011bad30313032001337046eb4c0c4004dd69818981900148cdc4240006eb4c0c0c0c40066e092080897a981798161baa302f302c375400c91111119199118119981b8079981b9811181a9baa3038303537540086606e6ea0cc896600260100051598009804000c56600266012004003130030018980180120688a9981aa492b6578706563742069735f76616c69645f726174696f28706f73745f726574656e74696f6e5f7969656c6429001640d115330354911c6578706563742069735f76616c69645f726174696f28666c6f6f7229001640d06eb0c090c0d4dd50024c004dc4a400137586044606a6ea80126eb4c02cc0d4dd50024dd6981c181c981c981c981c981c981a9baa00448888c96600260160091598009805800c5660026601800200910018991919911805998201ba83370066e08dd6982080400119b82375a6082006002660806ea0cdc100080125eb80dd6981f98200009bad303f304000630083303d375066e08dd6981f00099b814820225e8c966002600e00b15980099b890050048acc004cdc48022410112f513370000a6601e66e0401001566002600e00315980099b8900148202d2244e26464646464646466e04cdc019b813370066e04cdc019b810073370600c900219b8300548030cdc18022406066e0c00d20f0013370600490500599b830014838138cdc19980b000803a4101ec086602a00200c6602800200a6602600200866024002006660220020046602000200266e0c00520288a9981d2491b6578706563742073203c3d206d61785f737570706f727465645f73001640e5153303a4910d6578706563742073203e3d2030001640e5153303a4911565787065637420725f6d6178203c3d207363616c65001640e5153303a4911465787065637420725f6d6178203e3d2062617365001640e5153303a491106578706563742062617365203e3d2030001640e464b30013371090405a4489800c52080b489138800a0723370666e08c02cdd6981f000a4190026eb4c0f8c0fc004cc0f4dd418059bad303e303f0014bd70199118049981f1ba83370266e08dd6981f80180099b82375a607e00c0046607c6ea0cdc1001000a5eb80dd6981e981f0009bad303d303e00440dd1533038491206578706563742069735f76616c69645f726174696f287261775f7969656c6429001640dd15330384911d6578706563742069735f76616c69645f726174696f28687572646c6529001640dc646644b300130070028acc004cdc42400000313303e37500046607c6ea00052f5c1153303a490116657870656374207374616b65645f75736472203e2030001640e5153303a49124657870656374206e65745f64697374726962757461626c655f696e636f6d65203e3d2030001640e46eb4c0f4c0e8dd50009bad3027303a3754002607860726ea802097ae02332232598009811800c52f5c210100008101010044cc0e4dd419b8300300133039375066e0c0080052f5c081a0c96600266e200052000899b8148000006200281a0cc010008004dd6981b8009bad3037303800123370660086eb4c0dc004dd6981b981c000980300322a660549217a6578706563740a20202020202076616c69646974795f72616e67655f7374617274735f6265666f7265280a202020202020202073656c662e76616c69646974795f72616e67652c0a202020202020202072656465656d65722e7061796c6f61642e616374696f6e2e74696d657374616d702c0a20202020202029001640a5153302a491696578706563740a20202020202072656465656d65722e7061796c6f61642e616374696f6e2e74696d657374616d70203e2070726576696f75735f6f7261636c655f74696d657374616d70280a20202020202020206f7261636c655f696e7075742c0a20202020202029001640a44605e60606060606000315330294913f657870656374206e6f5f6f7261636c655f746f6b656e735f6d696e7465642873656c662e6d696e742c206f7261636c655f6e66745f706f6c6963795f696429001640a0605860526ea8c058c0a4dd5000918169817181718171817000981598141baa0018a9981324815665787065637420536f6d65286f7261636c655f696e70757429203d0a20202020202066696e645f6f7261636c655f696e7075742873656c662e696e707574732c206f7261636c655f6e66745f706f6c6963795f696429001640946052604c6ea8040cc044dd6181498131baa01723010323322330020020012259800800c00e2646644b30013372291113646973747269627574696f6e5f6f7261636c65000028acc004cdc7a44113646973747269627574696f6e5f6f7261636c65000028800c01902a44cc014014c0c401102a1bae302a001375a6056002605a0028158c8c8cc004004dd5980b98151baa3017302a375400844b3001001801c4c8cc896600266e440a400a2b30013371e0520051001803205689980280298190022056375c60560026eacc0b0004c0b800502c0a5eb7bdb180520008a9981224813b657870656374205075626c6973685969656c644f7261636c652872656465656d657229203d206f7263686573747261746f725f72656465656d65720016408c22232598009807800c4c9660020030038992cc0040062b300130290028cc00400600b0044035004409900480240120088150c09c00502518119baa0048acc004c030006264b3001001801c4c96600200315980098148014566002602260486ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c0b400a330010038cc0040060130084039008403900840a900880440220108170c0ac0050291815801401a00d00680320583029001409c604a6ea800600881120088132009004802401102a1813800a04a3023375400900240808100c084dd50019112cc004c038c084dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981500144c9660026026604c6ea8012264b3001001803c4c96600200313259800800c026264b30010018acc004c0bc00a330010038992cc004c060006264b300100180644c966002003159800981900144c966002603600313259800800c03e264b30010018acc004c0d400a33001001805c04101440410324042021010808206c303300140c4605e6ea800a2b300130180018992cc00400601f13259800800c042021010899912cc00400602513259800800c04e027013899912cc00400602b13259800800c05a02d0168992cc004c0f000e02501740e46eb400602c81e0c0e40050371bad0013038002809a072303600140d06eb4004c0d400a02081b0c0cc00503118179baa002807205840b0605a6ea800601a817a01b00d806c0350331818000a05c302c3754005159800980a800c56600260586ea800a00d00b40b500b40a48148c0a8dd5000c02900e402902c402a01500a8052060302d00140ac605a00500880440220108170c0ac00502918139baa0048032048132598009809800c566002604e6ea800a00f00640a11598009808000c4c9660020030078992cc0040060110088044022264b3001302e003805402502b1bae00140b860560028148c09cdd50014566002603200313259800800c01e264b3001302d002804c02102a1815800a052302737540050064090812102418129baa001802a04e802c01600b00540ac60500028130c0a000a007003801c00d0291813000a04830223754007001407c403a01d00e8072038332232598009802980c1baa0018980c9919bb0301d001301d301e0013758603860326ea80062a6602e9218b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a202020202900164058646600200200644b30010018a60103d87a80008992cc004cdd7980d00099ba548010cc074cdd2a40046603a6ea40112f5c097ae0898049980e9ba73301d301a0013301d301b0014bd7025eb82266006006603e00480c0c07400501b1bab3019301a301a301a301a301a301a301a301a301a3016375400e6eb8c064c058dd54c004896600200314bd7044cc068c05cc06c004cc008008c07000501948896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901648888c8cc004004014896600200310058992cc004006266008604000400d1330053020002330030030014078604000280ea6eb0c00cc058dd5003a44446464646644a6603a66e5924012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea406d220100132598009806180f9baa00189929980f99b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980a18109baa0018992cc0040062b3001300f3022375400313259800800c076264b300100180f407a03d01e899912cc0040060411325980098160014401a0428148c0a80050281bae001302900240a8604e0028128c08cdd5000c071020407203901c80e2050302530223754003153302049013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d0016407c602060426ea8c038c084dd5000981198101baa0018a9980f24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640746601400c4646600200260066eacc038c084dd5180718109baa0022259800800c528456600266e3cdd7181280080f4528c4cc008008c09800501f2046300100130070072223259800801c4c8c8cc88cc024008cdc524501280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100c204a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80f901f1bac3022002375a60400026466ec0dd418100009ba73021001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a604a003337149101023a200098008054c09800600a805100a181400144ca6002015302500199b8a489023a200098008054c098006600e66008008004805100a1814001204c3028001409466e29220102207d0000340886eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900920443758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720483371666e000056600266e2000520148a40c11481b9024002200c33706002901019b8600148080cdc70020012042375c0068128dc5245022c200022323300100100322598009805800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003407080e0c00c00c44646600200200644b30010018a6103d87a80008992cc004c010006260106603800297ae0899801801980f001202e301c00140688b201a180780098051baa0108a4d153300849011856616c696461746f722072657475726e65642066616c73650013656401c1" + : "5914ad0101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae0039bae00248888888896600264653001300a00198051805800cdc3a4009300a0024888966002600460146ea800e33001300e300b37540072300f301030100019ba5480024601e6020003370e90004dc3a4005223233001001003223300300130020024888888a600244646600200200644b30010018a60103d87a80008992cc004c010006260146603200297ae0899801801980d801202a3019001405d2259800980298099baa00289919192cc004c06c00a26464b3001300a0018acc004c064dd5001401a2c80d22b30013009001899192cc004c07c00a0111640706eb4c074004c064dd500145660026020003159800980c9baa00280345901a459017202e405c602e6ea8004c06800e2c80c0c966002602e00315980099b8948010c0580062d13007301600140551640606ea8c064004c064004c050dd500145901248966002600a60266ea800a264646644b3001301c003802c590191bad3019001375c6032004603200260286ea800a2c809244b30013005301337540051323232332259800980e801c4c966002601660326ea8006264646644b300130220038992cc004c04000626464b300130250028074590221bae3023001301f375400f1598009807800c566002603e6ea801e01916408116407480e8c074dd500345901f1bae301f001375c603e004603e00260346ea80062c80c0c0700162c80d0dd7180d000980d001180d000980c800980a1baa0028b202491192cc004c01800626464b3001301b0028024590181bae3019001301537540071598009802800c4c8c96600260360050048b2030375c6032002602a6ea800e2c809901318099baa00291192cc004c01800626464b3001301b0028024590181bad3019001301537540071598009802800c566002602a6ea800e00516405916404c8098c04cdd500124444453001332232598009806180d1baa0018980d9919bb0301f001301f30200013758603c60366ea80062c80c8c8cc00400400c896600200314c103d87a80008992cc004cdd7980e00099ba548010cc07ccdd2a40046603e6ea40112f5c097ae0898081980f9ba73301f301c0013301f301d0014bd7025eb82266006006604200480d8c07c00501d1bab301b301c301c301c301c301c301c301c301c301c3018375401c6eb8c06cc060dd51919192cc004c030c068dd5000c4c966002602660366ea8006264b3001300e301c3754003132323322598009812801c40162c8110c088004dd718110011811000980e9baa0018b2036301f301c3754003164068601e60366ea8c034c06cdd5180f180d9baa0018b2032330083758601860346ea80408c8cc004004c00cdd59807180e1baa300e301c375400444b30010018a508acc004cdc79bae302000101a8a518998010011810800a0364078600200244b30010018a5eb822660386032603a00266004004603c00280da4464b3001300c0018992cc004c080006266010603e00200716407460366ea800e2b3001300b0018992cc004c080006264b3001300e301c3754003132323259800981200144cc034c08c00c4cc03400401e2c8108c088004c088004c074dd5000c5901b180f800c5901d180d9baa0038b2032406460326ea800a44b3001300b30193754005132323259800981080144cc89660026020603c6ea800a2646464b3001302600289980618128018992cc004c050006264b30013028001899192cc004c05c006264b3001302b0018998089815000804c5902818131baa0028acc004c05800626464653001375a6058003375a6058007375a60580049112cc004c0c001201d1640b4302c001302b001302637540051640908120c090dd50009813800c5902518119baa0028acc004c04c0062b3001302337540050058b20488b2042408460426ea80062c8118c090004c090004c07cdd500145901d18100018992cc004c03c0062b3001301e37540050058b203e8acc004c03800626464b30013024002803c590211bae3022001301e3754005159800980a800c4c8c96600260480050078b20423022001301e375400516407080e101c180e1baa0018b203c301f001301f001301a37540051640609114c0048966002601c60386ea800a2646464b300130240028992cc004c048c080dd5000c4c8c966002604e00313259800980a98119baa00189919191919194c004dd69816800cdd61816802cdd618168024dd69816801cdd69816801244444b300130330068992cc004c084c0bcdd5000c4c8c8cc89660026070007132332259800981d801c4c8cc8966002607c007133021303d01813302901b225980080140822646644b300130430018998151821000898021821802c590401bae304000130410013758607e00481ea2c81d8dd6981d8009bad303b00c303b00b8b2070375a60700026eb4c0e0028c0e00262c81a8dd6981a8009bad30350023035001303037540031640b860640171640c0302d001302c001302b001302a001302900130243754003164088604c005164090604c00260426ea80062c80f8c08c00e2c8108dd618110009811000980e9baa0028b2036912cc004c038c070dd500144c8c8c8cc8966002604c007133008302500513300e0020068b20463023001375a604600460460026044002603a6ea800a2c80da44b3001300e301c37540051323232323298009bad30250019bad30250049bad3025003981280124444b3001302a00589980618148048998090008054590270c094004c090004c08c004c088004c074dd500145901b48966002601c60386ea800a264646464646530013758604c003375a604c00b375a604c009375a604c007302600248888966002605800d13300e302b00b1330140011323322598009817801c03e2c8160dd718160009bae302c006302c0058b205218130009812800981200098118009811000980e9baa0028b2036912cc004c038c070dd500144c8c8c8c8ca60026eb0c0940066eb4c0940126eb4c09400e604a00491112cc004c0a801626601860520122660240022646644b3001302d003806c5902a1bae302a001375c605400a605400916409c3025001302400130230013022001301d375400516406d301a3754006911111192cc004c04c00a264b300130270018992cc004c054c08cdd5000c4c8c8c8cc8966002605a00713259800980d98149baa00189919191919194c004c0cc0066eb0c0cc0166eb4c0cc0126eb4c0cc00e6066004911112cc004c0e401a2660486eb0c0e002c8966002005133026006225980080144cc0880144cc088024566002605460706ea80462646464b3001304000289919912cc004c0c000a264b300130440018998179bac304300122598008014012266046608a00426002608c004821a2c8208c0fcdd5001c566002605e005132598009822000c4cc0bcdd61821800912cc00400a0091330233045002130013046002410d164104607e6ea800e2b300130360028992cc004c11000626605e6eb0c10c0048966002005004899812182280109800982300120868b2082303f375400715980099b874801800a2646464b300130460028998189bac304500322598008014566002606a60866ea800e264646644b3001304c0038054590491bad3049001375a6092004609200260886ea800e2c821226604c608e004260026090004822a2c8218c110004c110004c0fcdd5001c56600266e1d20080028992cc004c11000626605e6eb0c10c0048966002005004899812982280109800982300120868b2082303f375400715980099b874802800a264b300130440018998179bac30430012259800801401226604a608a00426002608c004821a2c8208c0fcdd5001c56600266e1d200c0028992cc004c11000626605e6eb0c10c0048966002005004899813182280109800982300120868b2082303f375400715980099b874803800a264b300130440018998179bac30430012259800801401226604c608a00426002608c004821a2c8208c0fcdd5001c56600266e1d20100028acc004c0fcdd5001c0062c82022c81e903d207a40f481e903d207a40f481e8c0f0dd500089981200109981600b112cc00400a03d1323322598009823000c4cc0b4c1140044c010c1180162c8218dd7182180098220009bac30420024100607e0071640f4607c002607c00260726ea80462c81ba2646004607c0066eb4c0f000903a44c8c008c0f000cdd6981d00120708b206c1819800981900098188009818000981780098151baa0018b2050302c0058b20543758605400260540046054002605200260486ea80062c8110c0980062c8120c088dd500545660026024005132598009813800c4cc020c09800400a2c8120c088dd50054590202040159800980898101baa009899912cc004c050c088dd5000c4c8cc89660033001323300100132330010013756600660506ea8078896600200314bd7044c8cc88cc88cc00800800489660020031003899198189ba733031375200a66062605c00266062605e00297ae0330030033033002303100140bc6eacc0b000cdd718148009980180198170011816000a0542259800800c528456600266e3cdd718159bac302b0010248a518998010011816000a04c40a54a14a28122264b30013371064b3001301f3027375400313259800980d18141baa001899191919912cc004c0c800e266026606200a26eb4c020c0b8dd5181898171baa3031302e37546062605c6ea801a2c8178dd698178009bad302f002302f001302e0013029375400316409c605660506ea800629000204c301b302737546032604e6ea8010dd6980098139baa302a302737546054604e6ea801a2b3001323259800980c800c4cdc41bad302c302937540046eb4c00cc0a4dd5181618149baa302c30293754011159800980d000c528c528204e409c604e6ea8004c0a8c09cdd5181518139baa302a302b302b302b302b302b302b302b3027375403b13259800981619198008009bac301d3029375403e44b30010018a5eb8226644b30015980099baf302f302c375400401115980099baf374c64660020026eacc07cc0b4dd5001912cc004006297adef6c608994c004dd71817000cdd59817800cc0cc0092225980099b91489000038acc004cdc7a441000038800c401503044cc0d0cdd81ba9003374c0046600c00c002818060620028178dd32cc00528452f5bded8c113232330010014bd6f7b630112cc00400626606266ec0dd48159ba60034bd6f7b63044ca60026eb8c0bc0066eacc0c000660680049112cc004cdc8017801c4cc0d4cdd81ba902f374c00e00b15980099b8f02f00389981a99bb0375205e6e9801c00626606a66ec0dd48019ba60023300600600140c4818860640028180c8cc0040052f5bded8c044b300100189981819bb04c11453646973747269627574696f6e5f6f7261636c65004c010101004bd6f7b63044ca60026eb8c0b80066eb4c0bc00660660049112cc004cdc8244113646973747269627574696f6e5f6f7261636c650000389981a19bb04c011453646973747269627574696f6e5f6f7261636c65004c010101000058acc004cdc7a44113646973747269627574696f6e5f6f7261636c650000389981a19bb04c011453646973747269627574696f6e5f6f7261636c65004c0101010000189981a19bb037520066ea0008cc01801800503020601818800a05e40a913375e604060586ea8008cdd2a40086605c00a97ae08a5040a914a0815226605c0046600800800313300400400140a8605a002605c002815a29462c814a6002444b3001301b001880146600200700199b86002001400c81424466e0ccdc1001000a410112f5223371266e08dd698160011bad302c302d001337046eb4c0b0004dd69816181680148cdc4240006eb4c0acc0b00066e092080897a981518139baa302a3027375400c91111119199118119981900799819181118181baa303330303754008660646ea0cc896600260100051598009804000c56600266012004003130030018980180120608b20608b20603758604860606ea801260026e2520009bac302230303754009375a601660606ea80126eb4c0ccc0d0c0d0c0d0c0d0c0d0c0c0dd50022444464b3001300b0048acc004c02c0062b30013300c0010048800c4c8c8cc88c02ccc0ecdd419b80337046eb4c0f0020008cdc11bad303c0030013303b375066e080040092f5c06eb4c0e8c0ec004dd6981d181d80318041981c1ba8337046eb4c0e4004cdc0a410112f464b300130070058acc004cdc4802802456600266e240112080897a899b800053300f3370200800ab300130070018acc004cdc4800a41016912271323232323232323370266e00cdc099b803370266e00cdc080399b8300648010cdc1802a401866e0c01120303370600690780099b83002482802ccdc1800a41c09c66e0ccc05800401d2080f604330150010063301400100533013001004330120010033301100100233010001001337060029014459035459035459035459035459035192cc004cdc424101691226003148202d2244e200281a8cdc199b82300b375a60720029064009bad3039303a00133038375060166eb4c0e4c0e80052f5c066446012660726ea0cdc099b82375a607400600266e08dd6981d0030011981c9ba83370400400297ae0375a607060720026eb4c0e0c0e40110334590334590331919912cc004c01c00a2b3001337109000000c4cc0e4dd40011981c9ba80014bd704590354590351bad3038303537540026eb4c09cc0d4dd5000981b981a1baa00825eb808cc88c966002604600314bd70810100008101010044cc0d0dd419b8300300133034375066e0c0080052f5c08180c96600266e200052000899b814800000620028180cc010008004dd698190009bad3032303300123370660086eb4c0c8004dd698191819800980300322c812a2c81288c0a8c0acc0acc0ac0062c8120c09cc090dd5180b18121baa001230283029302930293029001302630233754003164084604860426ea8024cc03cdd6181218109baa01723012323322330020020012259800800c00e2646644b300133722910113646973747269627574696f6e5f6f7261636c65000028acc004cdc7a44113646973747269627574696f6e5f6f7261636c65000028800c01902644cc014014c0b00110261bae3025001375a604c00260500028130c8c8cc004004dd5980b98129baa30173025375400844b3001001801c4c8cc896600266e4409400a2b30013371e04a0051001803204e8998028029816802204e375c604c0026eacc09c004c0a40050270a5eb7bdb180520008b203e08b2012180500098029baa00a8a4d13656400c1", + Type.Tuple([PolicyId, PolicyId]), + [proxyPolicyId, oracleNftPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1OrderOrderSpend { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + protocolScripthash: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5919070101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0039bae00248888888888a60022a66008921696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99802249266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998022493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00168a998022494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900168a9980224932657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f6372656400168a998022493665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f75742900168a998022492065787065637420536f6d65286f726465725f646174756d29203d20646174756d00168a998022491972656465656d65723a204f7264657252656465656d657256310016488888889660026465300130130019809980a000cdc3a400530130024888966002600460266ea800e2646644b30010078999119912cc004c00c0062b3001301b375401700280720388acc004c0240062b3001301b375401700280720388acc004c0100062b3001301b375401700280720388072030406080c0660026e952000911192cc004c014006264b3001001801c4c9660020030048024012009132598009812001c01a00a8108dd7000a0483021001407c603a6ea80122b3001300b0018992cc00400600713259800800c01200900480244c9660026048007006802a042375c0028120c08400501f180e9baa0048012034406860366ea800e446466002002006446600600260040052301d301e301e0019112cc004cdc48012400110018cc00400e66e10009201499b8b3370066e14009201448180005003203291111919800800802912cc004006200b13259800800c4cc010c08c00801a26600a6046004660060060028108c08c0050204dc0240032259800800c52f5c113301d301a301e00133002002301f00140712301d301e001911919800800801912cc00400629422b30013371e6eb8c08000400e2946266004004604200280d101e4c060dd5004c8c074c078c078c078c078c078c07800644646600200200644b30010018a508acc004cdd7801980e1810000c528c4cc008008c08400501a203c4888888888888a600244646600200200644b30010018a6103d87a80008992cc004c010006260246605a00297ae089980180198178012050302d00140ad222329800800c0120068008888c966002602a00313259800800c01a264b3001001803c01e00f0078992cc004c0d000e00b00840c46eb80050341818800a05e302d3754007159800980d800c4c9660020030068992cc00400600f0078992cc004c0d000e26602a00244b3001002803c4c96600200319800805400626004606e006805201700b805c02d038181a801206680420623758003007803a068303100140bc605a6ea800e2b300130160018992cc00400600d13259800800c01e00f13259800981a001c4cc05400489660020050078992cc0040063300100a800c4c008c0dc00d00a402e01700b805a070303500240cd00840c46eb000600f00740d060620028178c0b4dd5001c56600266e1d20060018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981b801c4cc060004896600200500a8992cc0040063300100d800c4c008c0e800d00d403a01d00e8072076303800240d900b40d06eb000601500a40dc60680028190dd68009819801401d0341818800a05e302d375400715980099b8748020006264b300100180344c966002003007803c01e264b30013034003802c0210311bad001803a068303100140bc605a6ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c96600260680070058042062375a00300740d060620028178c0b4dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260680070058042062375c00281a0c0c400502f18169baa003802a05440a8815102a205440a88150c0acdd50014c024026600c00c91114c00488cc0180088cdd7981818169baa0010029112cc004c054c0b0dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018acc004c0dc00a2b3001301b3032375400b13259800800c022264b30010018992cc00400601513259800800c4c96600200300c8992cc004006264b300100180744c96600200313259800800c042264b30010018992cc00400602513259800800c4c9660020030148992cc004006264b300100180b44c96600200313259800800c062264b30010018992cc00400603513259800800c566002609600519800809c6600202319800807c6600201b19800805c6600201319800803c6600200b19800801c6600200313259800981818239baa0188992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004006043021810c08626644b3001001811c4c96600200302481240920491332259800800c09a264b3001001813c09e04f027899912cc00400605313259800800c0aa05502a81544cc896600200302c8992cc0040062b3001305d0028992cc004c108006264b3001001817c4c96600200303081840c2061132598009830801c05a06282f0dd7000a0c2305e001417060b46ea800a2b300130480018acc004c168dd5001404e05c82da05c82b9057182c1baa001816a0b4816c0b605b02d417860b600282c8dd7000982d00120b6305800141586eb8004c15c009058182a800a0a6375c00260a800482a8c1480050501bae00130510024148609e0028268dd70009827001209e304c001412860906ea80620388228566002605e608c6ea8056264b300100180e44c96600200301d80ec4cc896600200301f8992cc0040062b30013050002899818801912cc00400a2b30013036304d375400713259800800c08e264b30010018992cc00400604b13259800800c56600260ac00519800801c4c966002607600313259800800c0a2264b30010018acc004c16400a264b3001303e0018992cc00400605713259800800c56600260b800519800800c0b605881f205882ca05902c81640b105d182d000a0b0305637540051598009822000c4c96600200302b8992cc00400605902c81644cc896600200302e8992cc00400605f02f817c4cc89660020030318992cc00400606503281944c96600260c6007034819a0c0375a003032418c60c000282f0dd6800982f80140bd060182e800a0b6375a00260b800502c417460b400282c0c158dd500140a905320a6305437540030294159029814c0a605282d0c15c00505518299baa0028acc004c1040062b300130533754005028813a0a8813a0a0414060a26ea800604c81c204c829a04d0268134099057182a000a0a430540028124092049024415460a40028280c138dd5001c08904b44c966002003159800981b98271baa0018992cc00400604913259800800c09604b1332259800800c09e264b300100181440a20511332259800800c0aa264b3001001815c0ae05713259800982e001c56600200f02c8992cc00400605b02d816c0b626644b3001001817c4c96600200303081840c2061132598009830801c4c040c18404606282f0dd7000a0c2305e00141706eb8004c17402105e182d803a0b281620b2375a00302b417060b200282b8dd6800982c00140a1059182b000a0a8375800260aa005025812a0ac30530014144609e6ea80060468262047023811c08d0541828801209e810209a81040820410204144609c0028260dd60009826801407603a8270c12c00504918239baa01580da08880da04080da04080da04080da04080da04080da04080da04080da04080da04080da04080da09080dc06e03701b413060920028238c12400a03301980cc06504a1823800a08a304700280bc05e02f0174120608a0028218c11400a02b01580ac0550461821800a0823043002809c04e0270134110608200281f8c10400a023011808c045042181f800a07a303f002807c03e01f00f4100607a00281d8c0f400a01b00d806c03503e181d800a072303b002805c02e01700b40f0607200281b8c0e400a013009804c02503a181b800a06a3033375400b00740c100740d1007803c01e00e81c0c0d4005033181a801401600b005802a06c303300140c46066005003801c00e00681a0c0c400502f18169baa003800a054911919800800801912cc004c058006266e2922010130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc018cdc2000a402866e2ccdc019b8500148051206000340ac815a446600c00446601660086eacc030c0b4dd5180618169baa00100248888c8c966002603001b1332259800980d18189baa0018992cc004c084c0c8dd5000c56600266e3cdd7181b18199baa001375c602e60666ea8c048c0ccdd5180918199baa0038999129981999b9649010d63726564656e7469616c3a3a200037326600c0029101001330100020013756601e60666ea8080cdd2a40046606a6ea40b92f5c1153303149013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f72646572001640c102940c0606a60646ea8c0d4c0c8dd5180898191baa30353032375400302740bc64b30010018acc004c064c0c0dd5000c4c96600200302c8992cc00400605b02d816c0b626644b3001001817c4c966002003159800981d00146600200310068182016818206e81840c206103040ec607000281b0dd7000981b8012070303500140cc60626ea8006056817205702b815c0ad036192cc004c064c0c0dd5000c4c966002603660626ea80062606a60646ea80060548178c054c0c4dd5180818189baa30343031375400302840b8660066eb0c03cc0c0dd500e816198031bac30333030375403a037159800980f006c5660026030605e6ea806a33001303330303754606660606ea806a6eb0c0ccc0d0c0d0c0d0c0d0c0d0c0d0c0d0c0d0c0c0dd500ecc0ccc0d0c0d0c0d0c0d0c0d0c0d0c0d0c0c0dd500ecdd5980618181baa01d48888c8cc00400401488c966002603e003133015006375c6074606e6ea800a2b30013025001899198008009bac303b3038375400644b30010018a518acc004cc014014c0f0006266004004607a00314a081b103a45660026040003132330010013758607660706ea800c896600200314a115980099802802981e000c528c4cc008008c0f400503620748acc004cdc3a400c003132337126eb4c0ec004c8cc004004dd6181e181e801112cc0040062900044cc896600266010010005133700002900144005039181e80099801001181f000a0763037375400515980099b87480200062646644b30013028303937540051598009814181c9baa303d303e003899b89375a607a60746ea8008006266e20dd6981e981d1baa00200140dd14a081b8c0ec004dd6981d981c1baa00330373754602c606e6ea80162b30013370e9005000c4c8cc8966002605060726ea800a2b3001302830393754607a607c0071337120026eb4c0f4c0e8dd500144cdc40009bad303d303a375400481ba2941037181d8009bad303b30383754006606e6ea8c0e8c0dcdd5002c4cc048010cdd2a4004660726074606e6ea80092f5c081a1034206840d081a1034181a9baa001409102d45660026030605e6ea806a330013033303037540353253302f3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea40b522010013259800980d18189baa00189929981899b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980e98199baa0018992cc0040062b3001301d3034375400313259800800c0be264b300100181840c2061030899912cc00400606513259800981f0014401a06681d8c0f000503a1bae001303b00240f0607200281b8c0d4dd5000c0b903240ba05d02e817207430373034375400302c40c4602e60666ea8c048c0ccdd5000981a98191baa001814a05e3300400102d3758601e60606ea80766600c6eb0c0ccc0c0dd500e80da444b3001301b3032375400313232598009811981a1baa0018acc004c96600330013371e6eb8c0e4c0d8dd5002818d28528a0668a51899912cc004006330010018cc004cdc79bae301c30383754602e60706ea800400e942945035400900d400a005002801207a14a2602a606c6ea80150331bae30383035375400313259800980f181a9baa0018992cc004c07cc0d8dd5000c4c9660026040606e6ea8006264b30013375e607860726ea8004c080cc0ecc080cc0ecc0f0c0e4dd500225eb80cc0ed300103d87a80004bd704660026eacc060c0e4dd5000cc060c0e4dd5180c181c9baa0069119b89337020026eb4c0f8c0fcc0fcc0fcc0ecdd50140012444b30010028a508994c004c966002604c607a6ea800626eb4c0f8c104dd59820981f1baa0018a400081d8c1000066ebcc100c1040066eac00d22259800800c566002600400d13300500348002294103d44c96600266ebcc1000053010140008acc004cc018010dd6982098221bab3041001898019ba630450028a5040f91598009980300224001130030078a5040f881f0c10c0050410ca60020030049119820801198209ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0fc0066eacc10000660880069112cc004cdc8a441000038acc004cdc7a441000038998029815198229ba60024bd70000c4cc015300103d87a8000006410119800803c006446600e0046608e66ec0dd48029ba6004001401c82006084004820229422942294104122941036181d981c1baa0018a9981b2493865787065637420536f6d65286f757470757429203d206c6973742e61742873656c662e6f7574707574732c20696e7075745f696e64657829001640d465300130010019bad303b303837540053758603860706ea80952225980099b8800248002298103d87a800089980180080120701112cc00400a298103d87a80008acc004c0880062604266078607a00497ae08cc00400e607c005301b001400c81b903b454cc0d524014165787065637420536f6d6528696e7075745f696e64657829203d206c6973742e696e6465785f6f662873656c662e696e707574732c2073656c665f696e70757429001640d06530010019bac303a30373754049480010011112cc00400a298103d87a80008acc004cdd7981e00100344c080cc0ecdd4000a5eb8233001003981e8014cdc0000a4004801903620748a9981a248131657870656374205369676e6174757265207b206b65795f68617368207d203d206f726465725f646174756d2e6f776e6572001640cc6070606a6ea80162a6606692019d6578706563740a2020202020202020202076315f315f7263315f7574696c69746965732e69735f70726f746f636f6c5f7570677261646564280a20202020202020202020202070726f78795f646174756d2c0a20202020202020202020202073656c665f7363726970745f686173682c0a20202020202020202020202070726f746f636f6c5f736372697074686173682c0a2020202020202020202029001640c902b40c8606e60686ea8c0dcc0d0dd51809981a1baa00130363033375400302840c0812205a40b48168c004004888c9660020071323233223300a00233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a0028051018206e5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81890311bac3034002375a60640026466ec0dd418190009ba73033001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a606e003337149101023a200098008054c0e000600a805100a181d00144ca6002015303700199b8a489023a200098008054c0e0006600e66008008004805100a181d0012070303a00140dc66e29220102207d0000340d06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803901520683758007133006375a0060051323371491102682700329800800cc054dc68014cdc52450127000044004444b30013371000490004400626466453001006980d002ccdc599b800025980099b88002480522903045206e40d866e2ccdc0000acc004cdc4000a402914818229037206c004401866e0c00520203370c002901019b8e00400240cc6eb800d0371b8a4881022c2000060306ea8024dc3a40086e1d2000805402a01500a407060300026030603200260286ea800e2c80886026002601c6ea8052293454cc0312411856616c696461746f722072657475726e65642066616c73650013656402c1" + : "5915d20101002229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae0039bae002488888888896600264653001300a00198051805800cdc3a4005300a0024888966002600460146ea800e33001300b3754007370e90024dc3a4001300a375400891111991192cc004c0140122b3001301237540170018b20268acc004c0240122b3001301237540170018b20268acc004c0180122b3001301237540170018b20268b202040408080660026e9520009180a980b180b000c896600200314bd7044cc054c048c058004cc008008c05c00501448c054c05800644646600200200644b30010018a508acc004cdc79bae30180010038a51899801001180c800a02640592232330010010032233003001300200298081baa00a9180a980b180b180b180b180b180b000c88c8cc00400400c896600200314a115980099baf003301430180018a51899801001180c800a0264059370e90034dc3a4011370e9005244444444444466446644b3001301400a8992cc004c054c084dd5000c4c966002603460446ea80062b30013371e6eb8c098c08cdd50009bae301130233754601e60466ea8c03cc08cdd519914c004c00800a2003223259800980d800c4c8c966002605c0050048b2056375c605800260506ea800e2b3001301f001899192cc004c0b800a0091640ac6eb8c0b0004c0a0dd5001c59026204c302637540049112cc004c06cc09cdd500244c8cc8966002605e00313259800980f98159baa001899191919912cc004c0d400e264b30013025303137540031323232323232323232329800981f800cc0fc026607e011303f007981f8034c0fc016607e009303f003981f8012444444444b3001304900a89981018240098998100040998100038998100030998100028998100020998100018998100010998100008998100048992cc004c0e4c114dd500b44c8c8c8c8ca60026eb8c138006609e003375c609c00b375c609c009375c609c007375c609c0049111112cc004c15401626464b30013046001899192cc004c16400a0211641586eb8c15c004c14cdd50014566002609400315980098299baa00280745905445905120a23051375400260a800b164148304e001304d001304c001304b0013046375402d1641102b300130383044375402d132323259800982600144cc0c8dd61825801912cc00400a2b3001303d30493754007132323259800982880144cc098c14000c4c9660026082003132598009829800c4c8c966002608800313259800982b000c4cc0acc1540040b22c8298c144dd500145660026090003132323298009bad30570019bad30570039bad305700248896600260b60090318b20b0182b800982b00098289baa0028b209e413c609e6ea8004c1480062c8280c138dd50014566002608a00315980098271baa00281445904f45904c2098304c3754003164138609e002609e00260946ea800e2c8242264b3001303e304a37540031323232332259800982a001c4c8c8cc896600260b00071300b305800c8b20aa375c60aa0026eb8c154008c154004dd61829802c590511bad3051001375a60a200460a200260a000260966ea80062c8248c13400904b4590491825000982500098229baa0168b20868b208c181f800981f000981e800981e000981d800981d000981c800981c000981b80098191baa0018b206030340058b20643032001303200230320013031001302c37540031640a8605c0031640b06eb8c0b0004c0b4004c0a0dd50024590260888c96600260340031323259800981680140122c8150dd7181580098139baa0038acc004c078006264b3001302c0018998091bac302b0012259800801401633001007981680144c004c0b800900720568b205230273754007159800980d800c4c96600260580031330123758605600244b3001002802c6600200f302d002898009817001200e40ad1640a4604e6ea800e2b3001300d00189919912cc004c0b80062660286eb0c0b400489660020050078cc004026605e0051300130300024024816a2c8158dd69815800981600098139baa0038acc004c03000626464b3001302d00280245902a1bad302b001302737540071598009805800c4c8c966002605a0050048b2054375a6056002604e6ea800e2b30013370e9006000c4c8c966002605a0050048b2054375c6056002604e6ea800e2c8129025204a40948129025204a3025375400464b300130173023375400313259800980c98121baa0018981418129baa0018b2046301230243754602060486ea8c09cc090dd5000c59022198019bac300f3023375403204113300a3756601660466ea8064cdd2a40046604a6ea407d2f5c1164085164084604a60446ea8c094c088dd5180718111baa302530223754003164080660046eb0c090c084dd500b80945660026030015159800980a18101baa0118cc004c090c084dd5181218109baa0119bac3024302530253025302530253025302530253021375402f302430253025302530253025302530253021375402f3756601260426ea805d22223233001001005223259800980d800c4cc04c018dd7181598141baa0028acc004c07c006264660020026eb0c0b0c0a4dd5001912cc00400629462b300133005005302d0018998010011817000c528205040ad159800980e000c4c8cc004004dd6181618149baa0032259800800c52845660026600a00a605a00314a3133002002302e00140a0815a2b3001300e00189919b89375a605800264660020026eb0c0b4c0b8008896600200314800226644b300133008008002899b800014800a20028158c0b8004cc008008c0bc00502c18141baa0028acc004c0340062646644b30013022302a3754005159800981118151baa302e302f003899b89375a605c60566ea8008006266e20dd6981718159baa00200140a514a08148c0b0004dd6981618149baa00330283754602860506ea80162b3001300c00189919912cc004c088c0a8dd50014566002604460546ea8c0b8c0bc00e266e24004dd6981718159baa002899b88001375a605c60566ea800902945282052302c001375a605860526ea800cc0a0dd5181598141baa00589980780219ba548008cc0a8c0acc0a0dd500125eb81026204c40988131026204c302637540028b203e8acc004c050c080dd5008c4c966002602a60426ea800626464b3001301b30233754003159800cc004888c966002603600313259800800c00e264b300100180240120090048992cc004c0bc00e00d00540b06eb800502f1816000a05430283754009159800980f800c4c9660020030038992cc0040060090048024012264b3001302f003803401502c1bae00140bc60580028150c0a0dd50024009026204c30263754007222329800800c0120068008888c966002603c00313259800800c01a264b3001001803c01e00f0078992cc004c0c800e00b00840bc6eb80050321817800a05a302b37540071598009811000c4c9660020030068992cc00400600f0078992cc004c0c800e26603000244b3001002803c4c96600200319800805400626004606a006805201700b805c02d03618198012062804205e3758003007803a064302f00140b460566ea800e2b3001301f0018992cc00400600d13259800800c01e00f132598009819001c4cc06000489660020050078992cc0040063300100a800c4c008c0d400d00a402e01700b805a06c303300240c500840bc6eb000600f00740c8605e0028168c0acdd5001c566002602200313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b3001303500389980d800912cc00400a01513259800800c6600201b00189801181c001a01a807403a01d00e40e4606c00481a20168190dd6000c02a01481a8c0c80050301bad0013031002803a064302f00140b460566ea800e2b300130100018992cc00400600d13259800800c01e00f0078992cc004c0c800e00b00840bc6eb400600e8190c0bc00502d18159baa0038acc004c03c006264b300100180344c966002003007803c01e264b30013032003802c02102f1bad001803a064302f00140b460566ea800e2b30013370e9006000c4c9660020030068992cc00400600f007803c01e264b30013032003802c02102f1bae00140c8605e0028168c0acdd5001c015029205240a48149029205240a460526ea800a64b300130183024375400313259800980d18129baa0018992cc004c068c098dd5000c4c8c8cc8966002605e00710058b2058302c001375c60580046058002604e6ea80062c8128c0a4c098dd5000c59024180998129baa3011302537546050604a6ea80062c8118cc010dd6180818121baa01a0219bae30273024375400291112cc006600266e3cdd7181598141baa002024a50a51409914a31332259800800c4c966002603c60546ea800a264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800800c566002606a005159800981218181baa0058992cc00400601513259800800c4c96600200300c8992cc004006264b300100180744c96600200313259800800c042264b30010018992cc00400602513259800800c4c9660020030148992cc004006264b300100180b44c96600200313259800800c062264b30010018992cc00400603513259800800c4c96600200301c8992cc0040062b300130490028cc00404e330010118cc00403e3300100d8cc00402e330010098cc00401e330010058cc00400e330010018992cc004c0e4c114dd500c44c96600200301f8992cc004006041020810408226644b300100181144c966002003023811c08e0471332259800800c096264b3001001813409a04d026899912cc00400605113259800800c0a6053029814c4cc896600200302b8992cc00400605902c81640b226644b300100181744c966002003159800982d80144c966002609600313259800800c0c6264b300100181940ca0650328992cc004c17c00e02d03341706eb800505f182e000a0b4305837540051598009827800c56600260b06ea800a0270304165030415882b0c158dd5000c0bd05840be05f02f817a0b83059001415c6eb8004c160009059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270dd7000982780120a0304d001412c6eb8004c13000904d1825000a0903046375403101e41102b300130383044375402b13259800800c07a264b300100180fc07e26644b3001001810c4c966002003159800982700144cc0d000c8966002005159800981f98259baa0038992cc00400604b13259800800c4c9660020030278992cc0040062b300130540028cc00400e264b300130440018992cc00400605513259800800c56600260ae005132598009823800c4c96600200302d8992cc0040062b3001305a0028cc00400605902e40c902e415d02e81740ba05c82d8c160005056182a1baa0028acc004c12c006264b3001001816c4c96600200302e81740ba26644b300100181844c966002003031818c0c626644b3001001819c4c96600200303481a40d2264b30013061003819c0d505e1bad00181a20c2305e00141706eb4004c17400a06282f0c16c0050591bad001305a00281720b63058001415860a86ea800a058829105218291baa001815a0a8815c0ae05702b416060aa0028298c144dd50014566002609000315980098289baa002813c0a505240a504f209e304f375400302840b1028414502881440a205082a8c1480050501829001409a04d02681320a63050001413860986ea800e0488252264b30010018acc004c100c130dd5000c4c9660020030268992cc00400604f027899912cc00400605313259800800c0aa05502a899912cc00400605913259800800c0b605b02d8992cc004c16800e2b300100781744c96600200302f817c0be05f1332259800800c0c6264b300100181940ca0650328992cc004c17c00e2602060be02303341706eb800505f182e000a0b4375c00260b601082e0c16401d05740b90571bad001816a0b4305700141546eb4004c15800a05482b8c1500050521bac0013053002813c09d0541828800a09e304d3754003025412d025812c09604a8290c13c00904d408904b408a045022811209e304c00141286eb0004c12c00a03f01f413060920028238c114dd500ac07504340750204075020407502040750204075020407502040750204075020407502040750204075046407603b01d80ea09430470014114608e00501b80dc06e0368240c1140050431822801406603301980ca08c30430014104608600501780bc05e02e8220c10400503f1820801405602b01580aa084303f00140f4607e005013809c04e0268200c0f400503b181e8014046023011808a07c303b00140e4607600500f807c03e01e81e0c0e4005037181c801403601b00d806a074303700140d4606e00500b805c02e01681c0c0d400503318189baa005804a05e804a064804c02601300940d860660028188c0cc00a00f007803c01d0341818800a05e3031002802c01600b00540c8605e0028168c0acdd5001400d0290cc004cdc79bae3018302a3754602c60546ea800400e942945028400a005002801205e14a2602860506ea80090262264b300130183024375400313259800980c98129baa0018992cc004c068c098dd5000c4c96600266ebcc0acc0a0dd5000980b99815180b99815181598141baa0044bd701981526103d87a80004bd704660026eacc050c0a0dd5000cc050c0a0dd5180a18141baa0069119b89337020026eb4c0b4c0b8c0b8c0b8c0a8dd50100012444b30010028a508994c004c966002604060586ea800626eb4c0b4c0c0dd5981818169baa0018a40008158c0bc0066ebcc0bcc0c00066eac00d22259800800c566002600400d13300500348002294102d44c96600266ebcc0bc0053010140008acc004cc018010dd6981818199bab3030001898019ba630340028a5040b91598009980300224001130030078a5040b88170c0c80050300ca60020030049119818001198181ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0b80066eacc0bc00660660069112cc004cdc8a441000038acc004cdc7a4410000389980298109981a1ba60024bd70000c4cc015300103d87a800000640c119800803c006446600e0046606c66ec0dd48029ba6004001401c81806062004817a29422942294103022941026181518139baa0018b204a3298009800800cdd6981518139baa0029bac30153027375403a9112cc004cdc40012400114c103d87a800089980180080120501112cc00400a298103d87a80008acc004c0700062603066056605800497ae08cc00400e605a005337000029000a006409c81522c8120ca600200337586052604c6ea807290002002222598008014530103d87a80008acc004cdd7981580100344c05ccc0a8dd4000a5eb823300100398160014cdc0000a4004801902620528b2046302730243754604e60486ea80522c81122c8110c098c08cdd5181318119baa300f30233754002604a60446ea80062c8100cc008dd6181218109baa0170128b203e407c80f888cc0100088cdd7981298111baa001002223300400223300d30043756601c60446ea8c038c088dd5000801111919800800801912cc0040062980103d87a80008992cc004c010006260226604800297ae0899801801981300120403024001408860140143012004301230130044590090c028004c014dd5005c52689b2b20061", + Type.Tuple([PolicyId, ScriptHash]), + [proxyPolicyId, protocolScripthash], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1OrderOrderElse { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + protocolScripthash: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5919070101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0039bae00248888888888a60022a66008921696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99802249266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a998022493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00168a998022494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900168a9980224932657870656374205363726970742873656c665f7363726970745f6861736829203d2073656c665f7363726970745f6372656400168a998022493665787065637420536f6d652873656c665f696e70757429203d2066696e645f696e7075742873656c662e696e707574732c206f75742900168a998022492065787065637420536f6d65286f726465725f646174756d29203d20646174756d00168a998022491972656465656d65723a204f7264657252656465656d657256310016488888889660026465300130130019809980a000cdc3a400530130024888966002600460266ea800e2646644b30010078999119912cc004c00c0062b3001301b375401700280720388acc004c0240062b3001301b375401700280720388acc004c0100062b3001301b375401700280720388072030406080c0660026e952000911192cc004c014006264b3001001801c4c9660020030048024012009132598009812001c01a00a8108dd7000a0483021001407c603a6ea80122b3001300b0018992cc00400600713259800800c01200900480244c9660026048007006802a042375c0028120c08400501f180e9baa0048012034406860366ea800e446466002002006446600600260040052301d301e301e0019112cc004cdc48012400110018cc00400e66e10009201499b8b3370066e14009201448180005003203291111919800800802912cc004006200b13259800800c4cc010c08c00801a26600a6046004660060060028108c08c0050204dc0240032259800800c52f5c113301d301a301e00133002002301f00140712301d301e001911919800800801912cc00400629422b30013371e6eb8c08000400e2946266004004604200280d101e4c060dd5004c8c074c078c078c078c078c078c07800644646600200200644b30010018a508acc004cdd7801980e1810000c528c4cc008008c08400501a203c4888888888888a600244646600200200644b30010018a6103d87a80008992cc004c010006260246605a00297ae089980180198178012050302d00140ad222329800800c0120068008888c966002602a00313259800800c01a264b3001001803c01e00f0078992cc004c0d000e00b00840c46eb80050341818800a05e302d3754007159800980d800c4c9660020030068992cc00400600f0078992cc004c0d000e26602a00244b3001002803c4c96600200319800805400626004606e006805201700b805c02d038181a801206680420623758003007803a068303100140bc605a6ea800e2b300130160018992cc00400600d13259800800c01e00f13259800981a001c4cc05400489660020050078992cc0040063300100a800c4c008c0dc00d00a402e01700b805a070303500240cd00840c46eb000600f00740d060620028178c0b4dd5001c56600266e1d20060018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a01513259800981b801c4cc060004896600200500a8992cc0040063300100d800c4c008c0e800d00d403a01d00e8072076303800240d900b40d06eb000601500a40dc60680028190dd68009819801401d0341818800a05e302d375400715980099b8748020006264b300100180344c966002003007803c01e264b30013034003802c0210311bad001803a068303100140bc605a6ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c96600260680070058042062375a00300740d060620028178c0b4dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260680070058042062375c00281a0c0c400502f18169baa003802a05440a8815102a205440a88150c0acdd50014c024026600c00c91114c00488cc0180088cdd7981818169baa0010029112cc004c054c0b0dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018acc004c0dc00a2b3001301b3032375400b13259800800c022264b30010018992cc00400601513259800800c4c96600200300c8992cc004006264b300100180744c96600200313259800800c042264b30010018992cc00400602513259800800c4c9660020030148992cc004006264b300100180b44c96600200313259800800c062264b30010018992cc00400603513259800800c566002609600519800809c6600202319800807c6600201b19800805c6600201319800803c6600200b19800801c6600200313259800981818239baa0188992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004006043021810c08626644b3001001811c4c96600200302481240920491332259800800c09a264b3001001813c09e04f027899912cc00400605313259800800c0aa05502a81544cc896600200302c8992cc0040062b3001305d0028992cc004c108006264b3001001817c4c96600200303081840c2061132598009830801c05a06282f0dd7000a0c2305e001417060b46ea800a2b300130480018acc004c168dd5001404e05c82da05c82b9057182c1baa001816a0b4816c0b605b02d417860b600282c8dd7000982d00120b6305800141586eb8004c15c009058182a800a0a6375c00260a800482a8c1480050501bae00130510024148609e0028268dd70009827001209e304c001412860906ea80620388228566002605e608c6ea8056264b300100180e44c96600200301d80ec4cc896600200301f8992cc0040062b30013050002899818801912cc00400a2b30013036304d375400713259800800c08e264b30010018992cc00400604b13259800800c56600260ac00519800801c4c966002607600313259800800c0a2264b30010018acc004c16400a264b3001303e0018992cc00400605713259800800c56600260b800519800800c0b605881f205882ca05902c81640b105d182d000a0b0305637540051598009822000c4c96600200302b8992cc00400605902c81644cc896600200302e8992cc00400605f02f817c4cc89660020030318992cc00400606503281944c96600260c6007034819a0c0375a003032418c60c000282f0dd6800982f80140bd060182e800a0b6375a00260b800502c417460b400282c0c158dd500140a905320a6305437540030294159029814c0a605282d0c15c00505518299baa0028acc004c1040062b300130533754005028813a0a8813a0a0414060a26ea800604c81c204c829a04d0268134099057182a000a0a430540028124092049024415460a40028280c138dd5001c08904b44c966002003159800981b98271baa0018992cc00400604913259800800c09604b1332259800800c09e264b300100181440a20511332259800800c0aa264b3001001815c0ae05713259800982e001c56600200f02c8992cc00400605b02d816c0b626644b3001001817c4c96600200303081840c2061132598009830801c4c040c18404606282f0dd7000a0c2305e00141706eb8004c17402105e182d803a0b281620b2375a00302b417060b200282b8dd6800982c00140a1059182b000a0a8375800260aa005025812a0ac30530014144609e6ea80060468262047023811c08d0541828801209e810209a81040820410204144609c0028260dd60009826801407603a8270c12c00504918239baa01580da08880da04080da04080da04080da04080da04080da04080da04080da04080da04080da04080da09080dc06e03701b413060920028238c12400a03301980cc06504a1823800a08a304700280bc05e02f0174120608a0028218c11400a02b01580ac0550461821800a0823043002809c04e0270134110608200281f8c10400a023011808c045042181f800a07a303f002807c03e01f00f4100607a00281d8c0f400a01b00d806c03503e181d800a072303b002805c02e01700b40f0607200281b8c0e400a013009804c02503a181b800a06a3033375400b00740c100740d1007803c01e00e81c0c0d4005033181a801401600b005802a06c303300140c46066005003801c00e00681a0c0c400502f18169baa003800a054911919800800801912cc004c058006266e2922010130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc018cdc2000a402866e2ccdc019b8500148051206000340ac815a446600c00446601660086eacc030c0b4dd5180618169baa00100248888c8c966002603001b1332259800980d18189baa0018992cc004c084c0c8dd5000c56600266e3cdd7181b18199baa001375c602e60666ea8c048c0ccdd5180918199baa0038999129981999b9649010d63726564656e7469616c3a3a200037326600c0029101001330100020013756601e60666ea8080cdd2a40046606a6ea40b92f5c1153303149013e6578706563742073656c665f7363726970745f68617368203d3d2070726f78795f646174756d2e73657474696e67732e72656769737472792e6f72646572001640c102940c0606a60646ea8c0d4c0c8dd5180898191baa30353032375400302740bc64b30010018acc004c064c0c0dd5000c4c96600200302c8992cc00400605b02d816c0b626644b3001001817c4c966002003159800981d00146600200310068182016818206e81840c206103040ec607000281b0dd7000981b8012070303500140cc60626ea8006056817205702b815c0ad036192cc004c064c0c0dd5000c4c966002603660626ea80062606a60646ea80060548178c054c0c4dd5180818189baa30343031375400302840b8660066eb0c03cc0c0dd500e816198031bac30333030375403a037159800980f006c5660026030605e6ea806a33001303330303754606660606ea806a6eb0c0ccc0d0c0d0c0d0c0d0c0d0c0d0c0d0c0d0c0c0dd500ecc0ccc0d0c0d0c0d0c0d0c0d0c0d0c0d0c0c0dd500ecdd5980618181baa01d48888c8cc00400401488c966002603e003133015006375c6074606e6ea800a2b30013025001899198008009bac303b3038375400644b30010018a518acc004cc014014c0f0006266004004607a00314a081b103a45660026040003132330010013758607660706ea800c896600200314a115980099802802981e000c528c4cc008008c0f400503620748acc004cdc3a400c003132337126eb4c0ec004c8cc004004dd6181e181e801112cc0040062900044cc896600266010010005133700002900144005039181e80099801001181f000a0763037375400515980099b87480200062646644b30013028303937540051598009814181c9baa303d303e003899b89375a607a60746ea8008006266e20dd6981e981d1baa00200140dd14a081b8c0ec004dd6981d981c1baa00330373754602c606e6ea80162b30013370e9005000c4c8cc8966002605060726ea800a2b3001302830393754607a607c0071337120026eb4c0f4c0e8dd500144cdc40009bad303d303a375400481ba2941037181d8009bad303b30383754006606e6ea8c0e8c0dcdd5002c4cc048010cdd2a4004660726074606e6ea80092f5c081a1034206840d081a1034181a9baa001409102d45660026030605e6ea806a330013033303037540353253302f3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea40b522010013259800980d18189baa00189929981899b9649113666f756e642070726f7879207574786f3a3a200037326600800291010013259800980e98199baa0018992cc0040062b3001301d3034375400313259800800c0be264b300100181840c2061030899912cc00400606513259800981f0014401a06681d8c0f000503a1bae001303b00240f0607200281b8c0d4dd5000c0b903240ba05d02e817207430373034375400302c40c4602e60666ea8c048c0ccdd5000981a98191baa001814a05e3300400102d3758601e60606ea80766600c6eb0c0ccc0c0dd500e80da444b3001301b3032375400313232598009811981a1baa0018acc004c96600330013371e6eb8c0e4c0d8dd5002818d28528a0668a51899912cc004006330010018cc004cdc79bae301c30383754602e60706ea800400e942945035400900d400a005002801207a14a2602a606c6ea80150331bae30383035375400313259800980f181a9baa0018992cc004c07cc0d8dd5000c4c9660026040606e6ea8006264b30013375e607860726ea8004c080cc0ecc080cc0ecc0f0c0e4dd500225eb80cc0ed300103d87a80004bd704660026eacc060c0e4dd5000cc060c0e4dd5180c181c9baa0069119b89337020026eb4c0f8c0fcc0fcc0fcc0ecdd50140012444b30010028a508994c004c966002604c607a6ea800626eb4c0f8c104dd59820981f1baa0018a400081d8c1000066ebcc100c1040066eac00d22259800800c566002600400d13300500348002294103d44c96600266ebcc1000053010140008acc004cc018010dd6982098221bab3041001898019ba630450028a5040f91598009980300224001130030078a5040f881f0c10c0050410ca60020030049119820801198209ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0fc0066eacc10000660880069112cc004cdc8a441000038acc004cdc7a441000038998029815198229ba60024bd70000c4cc015300103d87a8000006410119800803c006446600e0046608e66ec0dd48029ba6004001401c82006084004820229422942294104122941036181d981c1baa0018a9981b2493865787065637420536f6d65286f757470757429203d206c6973742e61742873656c662e6f7574707574732c20696e7075745f696e64657829001640d465300130010019bad303b303837540053758603860706ea80952225980099b8800248002298103d87a800089980180080120701112cc00400a298103d87a80008acc004c0880062604266078607a00497ae08cc00400e607c005301b001400c81b903b454cc0d524014165787065637420536f6d6528696e7075745f696e64657829203d206c6973742e696e6465785f6f662873656c662e696e707574732c2073656c665f696e70757429001640d06530010019bac303a30373754049480010011112cc00400a298103d87a80008acc004cdd7981e00100344c080cc0ecdd4000a5eb8233001003981e8014cdc0000a4004801903620748a9981a248131657870656374205369676e6174757265207b206b65795f68617368207d203d206f726465725f646174756d2e6f776e6572001640cc6070606a6ea80162a6606692019d6578706563740a2020202020202020202076315f315f7263315f7574696c69746965732e69735f70726f746f636f6c5f7570677261646564280a20202020202020202020202070726f78795f646174756d2c0a20202020202020202020202073656c665f7363726970745f686173682c0a20202020202020202020202070726f746f636f6c5f736372697074686173682c0a2020202020202020202029001640c902b40c8606e60686ea8c0dcc0d0dd51809981a1baa00130363033375400302840c0812205a40b48168c004004888c9660020071323233223300a00233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a0028051018206e5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81890311bac3034002375a60640026466ec0dd418190009ba73033001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a606e003337149101023a200098008054c0e000600a805100a181d00144ca6002015303700199b8a489023a200098008054c0e0006600e66008008004805100a181d0012070303a00140dc66e29220102207d0000340d06eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803901520683758007133006375a0060051323371491102682700329800800cc054dc68014cdc52450127000044004444b30013371000490004400626466453001006980d002ccdc599b800025980099b88002480522903045206e40d866e2ccdc0000acc004cdc4000a402914818229037206c004401866e0c00520203370c002901019b8e00400240cc6eb800d0371b8a4881022c2000060306ea8024dc3a40086e1d2000805402a01500a407060300026030603200260286ea800e2c80886026002601c6ea8052293454cc0312411856616c696461746f722072657475726e65642066616c73650013656402c1" + : "5915d20101002229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bae0039bae002488888888896600264653001300a00198051805800cdc3a4005300a0024888966002600460146ea800e33001300b3754007370e90024dc3a4001300a375400891111991192cc004c0140122b3001301237540170018b20268acc004c0240122b3001301237540170018b20268acc004c0180122b3001301237540170018b20268b202040408080660026e9520009180a980b180b000c896600200314bd7044cc054c048c058004cc008008c05c00501448c054c05800644646600200200644b30010018a508acc004cdc79bae30180010038a51899801001180c800a02640592232330010010032233003001300200298081baa00a9180a980b180b180b180b180b180b000c88c8cc00400400c896600200314a115980099baf003301430180018a51899801001180c800a0264059370e90034dc3a4011370e9005244444444444466446644b3001301400a8992cc004c054c084dd5000c4c966002603460446ea80062b30013371e6eb8c098c08cdd50009bae301130233754601e60466ea8c03cc08cdd519914c004c00800a2003223259800980d800c4c8c966002605c0050048b2056375c605800260506ea800e2b3001301f001899192cc004c0b800a0091640ac6eb8c0b0004c0a0dd5001c59026204c302637540049112cc004c06cc09cdd500244c8cc8966002605e00313259800980f98159baa001899191919912cc004c0d400e264b30013025303137540031323232323232323232329800981f800cc0fc026607e011303f007981f8034c0fc016607e009303f003981f8012444444444b3001304900a89981018240098998100040998100038998100030998100028998100020998100018998100010998100008998100048992cc004c0e4c114dd500b44c8c8c8c8ca60026eb8c138006609e003375c609c00b375c609c009375c609c007375c609c0049111112cc004c15401626464b30013046001899192cc004c16400a0211641586eb8c15c004c14cdd50014566002609400315980098299baa00280745905445905120a23051375400260a800b164148304e001304d001304c001304b0013046375402d1641102b300130383044375402d132323259800982600144cc0c8dd61825801912cc00400a2b3001303d30493754007132323259800982880144cc098c14000c4c9660026082003132598009829800c4c8c966002608800313259800982b000c4cc0acc1540040b22c8298c144dd500145660026090003132323298009bad30570019bad30570039bad305700248896600260b60090318b20b0182b800982b00098289baa0028b209e413c609e6ea8004c1480062c8280c138dd50014566002608a00315980098271baa00281445904f45904c2098304c3754003164138609e002609e00260946ea800e2c8242264b3001303e304a37540031323232332259800982a001c4c8c8cc896600260b00071300b305800c8b20aa375c60aa0026eb8c154008c154004dd61829802c590511bad3051001375a60a200460a200260a000260966ea80062c8248c13400904b4590491825000982500098229baa0168b20868b208c181f800981f000981e800981e000981d800981d000981c800981c000981b80098191baa0018b206030340058b20643032001303200230320013031001302c37540031640a8605c0031640b06eb8c0b0004c0b4004c0a0dd50024590260888c96600260340031323259800981680140122c8150dd7181580098139baa0038acc004c078006264b3001302c0018998091bac302b0012259800801401633001007981680144c004c0b800900720568b205230273754007159800980d800c4c96600260580031330123758605600244b3001002802c6600200f302d002898009817001200e40ad1640a4604e6ea800e2b3001300d00189919912cc004c0b80062660286eb0c0b400489660020050078cc004026605e0051300130300024024816a2c8158dd69815800981600098139baa0038acc004c03000626464b3001302d00280245902a1bad302b001302737540071598009805800c4c8c966002605a0050048b2054375a6056002604e6ea800e2b30013370e9006000c4c8c966002605a0050048b2054375c6056002604e6ea800e2c8129025204a40948129025204a3025375400464b300130173023375400313259800980c98121baa0018981418129baa0018b2046301230243754602060486ea8c09cc090dd5000c59022198019bac300f3023375403204113300a3756601660466ea8064cdd2a40046604a6ea407d2f5c1164085164084604a60446ea8c094c088dd5180718111baa302530223754003164080660046eb0c090c084dd500b80945660026030015159800980a18101baa0118cc004c090c084dd5181218109baa0119bac3024302530253025302530253025302530253021375402f302430253025302530253025302530253021375402f3756601260426ea805d22223233001001005223259800980d800c4cc04c018dd7181598141baa0028acc004c07c006264660020026eb0c0b0c0a4dd5001912cc00400629462b300133005005302d0018998010011817000c528205040ad159800980e000c4c8cc004004dd6181618149baa0032259800800c52845660026600a00a605a00314a3133002002302e00140a0815a2b3001300e00189919b89375a605800264660020026eb0c0b4c0b8008896600200314800226644b300133008008002899b800014800a20028158c0b8004cc008008c0bc00502c18141baa0028acc004c0340062646644b30013022302a3754005159800981118151baa302e302f003899b89375a605c60566ea8008006266e20dd6981718159baa00200140a514a08148c0b0004dd6981618149baa00330283754602860506ea80162b3001300c00189919912cc004c088c0a8dd50014566002604460546ea8c0b8c0bc00e266e24004dd6981718159baa002899b88001375a605c60566ea800902945282052302c001375a605860526ea800cc0a0dd5181598141baa00589980780219ba548008cc0a8c0acc0a0dd500125eb81026204c40988131026204c302637540028b203e8acc004c050c080dd5008c4c966002602a60426ea800626464b3001301b30233754003159800cc004888c966002603600313259800800c00e264b300100180240120090048992cc004c0bc00e00d00540b06eb800502f1816000a05430283754009159800980f800c4c9660020030038992cc0040060090048024012264b3001302f003803401502c1bae00140bc60580028150c0a0dd50024009026204c30263754007222329800800c0120068008888c966002603c00313259800800c01a264b3001001803c01e00f0078992cc004c0c800e00b00840bc6eb80050321817800a05a302b37540071598009811000c4c9660020030068992cc00400600f0078992cc004c0c800e26603000244b3001002803c4c96600200319800805400626004606a006805201700b805c02d03618198012062804205e3758003007803a064302f00140b460566ea800e2b3001301f0018992cc00400600d13259800800c01e00f132598009819001c4cc06000489660020050078992cc0040063300100a800c4c008c0d400d00a402e01700b805a06c303300240c500840bc6eb000600f00740c8605e0028168c0acdd5001c566002602200313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b3001303500389980d800912cc00400a01513259800800c6600201b00189801181c001a01a807403a01d00e40e4606c00481a20168190dd6000c02a01481a8c0c80050301bad0013031002803a064302f00140b460566ea800e2b300130100018992cc00400600d13259800800c01e00f0078992cc004c0c800e00b00840bc6eb400600e8190c0bc00502d18159baa0038acc004c03c006264b300100180344c966002003007803c01e264b30013032003802c02102f1bad001803a064302f00140b460566ea800e2b30013370e9006000c4c9660020030068992cc00400600f007803c01e264b30013032003802c02102f1bae00140c8605e0028168c0acdd5001c015029205240a48149029205240a460526ea800a64b300130183024375400313259800980d18129baa0018992cc004c068c098dd5000c4c8c8cc8966002605e00710058b2058302c001375c60580046058002604e6ea80062c8128c0a4c098dd5000c59024180998129baa3011302537546050604a6ea80062c8118cc010dd6180818121baa01a0219bae30273024375400291112cc006600266e3cdd7181598141baa002024a50a51409914a31332259800800c4c966002603c60546ea800a264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800800c566002606a005159800981218181baa0058992cc00400601513259800800c4c96600200300c8992cc004006264b300100180744c96600200313259800800c042264b30010018992cc00400602513259800800c4c9660020030148992cc004006264b300100180b44c96600200313259800800c062264b30010018992cc00400603513259800800c4c96600200301c8992cc0040062b300130490028cc00404e330010118cc00403e3300100d8cc00402e330010098cc00401e330010058cc00400e330010018992cc004c0e4c114dd500c44c96600200301f8992cc004006041020810408226644b300100181144c966002003023811c08e0471332259800800c096264b3001001813409a04d026899912cc00400605113259800800c0a6053029814c4cc896600200302b8992cc00400605902c81640b226644b300100181744c966002003159800982d80144c966002609600313259800800c0c6264b300100181940ca0650328992cc004c17c00e02d03341706eb800505f182e000a0b4305837540051598009827800c56600260b06ea800a0270304165030415882b0c158dd5000c0bd05840be05f02f817a0b83059001415c6eb8004c160009059182b000a0a8375c00260aa00482b0c14c0050511bae0013052002414c60a00028270dd7000982780120a0304d001412c6eb8004c13000904d1825000a0903046375403101e41102b300130383044375402b13259800800c07a264b300100180fc07e26644b3001001810c4c966002003159800982700144cc0d000c8966002005159800981f98259baa0038992cc00400604b13259800800c4c9660020030278992cc0040062b300130540028cc00400e264b300130440018992cc00400605513259800800c56600260ae005132598009823800c4c96600200302d8992cc0040062b3001305a0028cc00400605902e40c902e415d02e81740ba05c82d8c160005056182a1baa0028acc004c12c006264b3001001816c4c96600200302e81740ba26644b300100181844c966002003031818c0c626644b3001001819c4c96600200303481a40d2264b30013061003819c0d505e1bad00181a20c2305e00141706eb4004c17400a06282f0c16c0050591bad001305a00281720b63058001415860a86ea800a058829105218291baa001815a0a8815c0ae05702b416060aa0028298c144dd50014566002609000315980098289baa002813c0a505240a504f209e304f375400302840b1028414502881440a205082a8c1480050501829001409a04d02681320a63050001413860986ea800e0488252264b30010018acc004c100c130dd5000c4c9660020030268992cc00400604f027899912cc00400605313259800800c0aa05502a899912cc00400605913259800800c0b605b02d8992cc004c16800e2b300100781744c96600200302f817c0be05f1332259800800c0c6264b300100181940ca0650328992cc004c17c00e2602060be02303341706eb800505f182e000a0b4375c00260b601082e0c16401d05740b90571bad001816a0b4305700141546eb4004c15800a05482b8c1500050521bac0013053002813c09d0541828800a09e304d3754003025412d025812c09604a8290c13c00904d408904b408a045022811209e304c00141286eb0004c12c00a03f01f413060920028238c114dd500ac07504340750204075020407502040750204075020407502040750204075020407502040750204075046407603b01d80ea09430470014114608e00501b80dc06e0368240c1140050431822801406603301980ca08c30430014104608600501780bc05e02e8220c10400503f1820801405602b01580aa084303f00140f4607e005013809c04e0268200c0f400503b181e8014046023011808a07c303b00140e4607600500f807c03e01e81e0c0e4005037181c801403601b00d806a074303700140d4606e00500b805c02e01681c0c0d400503318189baa005804a05e804a064804c02601300940d860660028188c0cc00a00f007803c01d0341818800a05e3031002802c01600b00540c8605e0028168c0acdd5001400d0290cc004cdc79bae3018302a3754602c60546ea800400e942945028400a005002801205e14a2602860506ea80090262264b300130183024375400313259800980c98129baa0018992cc004c068c098dd5000c4c96600266ebcc0acc0a0dd5000980b99815180b99815181598141baa0044bd701981526103d87a80004bd704660026eacc050c0a0dd5000cc050c0a0dd5180a18141baa0069119b89337020026eb4c0b4c0b8c0b8c0b8c0a8dd50100012444b30010028a508994c004c966002604060586ea800626eb4c0b4c0c0dd5981818169baa0018a40008158c0bc0066ebcc0bcc0c00066eac00d22259800800c566002600400d13300500348002294102d44c96600266ebcc0bc0053010140008acc004cc018010dd6981818199bab3030001898019ba630340028a5040b91598009980300224001130030078a5040b88170c0c80050300ca60020030049119818001198181ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0b80066eacc0bc00660660069112cc004cdc8a441000038acc004cdc7a4410000389980298109981a1ba60024bd70000c4cc015300103d87a800000640c119800803c006446600e0046606c66ec0dd48029ba6004001401c81806062004817a29422942294103022941026181518139baa0018b204a3298009800800cdd6981518139baa0029bac30153027375403a9112cc004cdc40012400114c103d87a800089980180080120501112cc00400a298103d87a80008acc004c0700062603066056605800497ae08cc00400e605a005337000029000a006409c81522c8120ca600200337586052604c6ea807290002002222598008014530103d87a80008acc004cdd7981580100344c05ccc0a8dd4000a5eb823300100398160014cdc0000a4004801902620528b2046302730243754604e60486ea80522c81122c8110c098c08cdd5181318119baa300f30233754002604a60446ea80062c8100cc008dd6181218109baa0170128b203e407c80f888cc0100088cdd7981298111baa001002223300400223300d30043756601c60446ea8c038c088dd5000801111919800800801912cc0040062980103d87a80008992cc004c010006260226604800297ae0899801801981300120403024001408860140143012004301230130044590090c028004c014dd5005c52689b2b20061", + Type.Tuple([PolicyId, ScriptHash]), + [proxyPolicyId, protocolScripthash], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolManagementProtocolManagementWithdraw { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594ebd010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a4912657870656374205b5d203d206c6973745f6200168a99801a491d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a4926657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a49d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f64617461001648888888888888966003300130133754033370e90034dc3a4001370e9002244446465300130183754003301c006980e0012444b300130060038cc004c07cc070dd50024dd2a4001230203021001911919800800801911980180098010014dc3a4005370e90044dc3a4015370e900648c080c084c0840066e9520024888888888a600244646600200200644b30010018a6103d87a80008992cc004c0100062601c6605a00297ae089980180198178012050302d00140ad222329800800c0120068008888c966002603000313259800800c01a264b3001001803c01e00f0078992cc004c0d000e00b00840c46eb80050341818800a05e302d37540071598009806800c4c9660020030068992cc00400600f0078992cc004c0d000e26602200244b3001002803c4c96600200319800805400626004606e006805201700b805c02d038181a801206680420623758003007803a068303100140bc605a6ea800e2b300130170018992cc00400600d13259800800c01e00f13259800981a001c4cc04400489660020050078992cc0040063300100a800c4c008c0dc00d00a402e01700b805a070303500240cd00840c46eb000600f00740d060620028178c0b4dd5001c566002603200313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b3001303700389980a000912cc00400a01513259800800c6600201b00189801181d001a01a807403a01d00e40ec607000481b201681a0dd6000c02a01481b8c0d00050321bad0013033002803a068303100140bc605a6ea800e2b3001300c0018992cc00400600d13259800800c01e00f0078992cc004c0d000e00b00840c46eb400600e81a0c0c400502f18169baa0038acc004c02c006264b300100180344c966002003007803c01e264b30013034003802c0210311bad001803a068303100140bc605a6ea800e2b3001300a0018992cc00400600d13259800800c01e00f007803c4c96600260680070058042062375c00281a0c0c400502f18169baa003802a05440a8815102a205440a88150c0acdd50014888c966002602a00313259800800c00e264b300100180240120090048992cc004c0c400e00d00540b86eb80050311817000a058302a37540091598009805000c56600260546ea801200700240ad002409c8138c0a0dd5001c888c966002602a00313259800800c00e264b300100180240120090048992cc004c0c400e00d00540b86eb80050311817000a058302a37540091598009805000c4c9660020030038992cc0040060090048024012264b30013031003803401502e1bae00140c4605c0028160c0a8dd50024009027204e3028375400691111919192cc0040063300122259800980d98179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b300130200018acc004c0d4dd5001401e00c81b22b300130150018992cc00400600f13259800800c02201100880444c966002607800700a804a072375c00281e0c0e4005037181a9baa0028acc004c07c006264b3001001803c4c96600260760050098042070303900140dc606a6ea800a00c8191032206430333754003005402900540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444b3001301b302f375400713259800800c00a264b30010018992cc00400600913259800800c4c966002606a00315980099b8948010c0d000600d13259800981d00244c9660026044003159800981b9baa006804c0210384566002602e00313259800800c026264b3001001805402a01513259800981f001c03201681d8dd6800c02903e181d800a0723037375400d1598009810800c566002606e6ea801a01300840e100840d081a1034181a9baa005803a06e3015303400140c900640d86ea800600b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4889660026036605e6ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981d001c02200e81b8dd6800c01903a181b800a06a375c002606c00481b8c0d000503218181baa003800a05a911192cc004c070006264b3001001801c4c9660020030048024012264b3001303800380340150351bad0018022070303500140cc60626ea80122b300130110018acc004c0c4dd5002400e0048192004817102e18179baa0039112cc004c06cc0bcdd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b3001001803c01e00f0078992cc004c0ec00e2b300130223036375400d13259800800c026264b3001001805402a01500a899912cc00400601913259800800c03601b00d806c4c966002608200719800805403e01c80aa01c81f0dd7000a082303e00140f06eb8004c0f400903e181d800a0723037375400d00840d100840e06eb800503b181c000a06c3038002802c01600b00540e4606c00281a0c0d800a007003801c00d037181a000a0643030375400700140b5302c37540029111114c004889660026042606a6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c10400a330010068cc0040060130084039008404100840f900880440220108210c0fc00503d1bad001303e002802a07e303c00140e86078005003801c00e00681e8c0e8005038181b1baa003800a0669112cc004c084c0d4dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b132598009823801c6600201919800802403e01c80a201c80b201c8220dd6800c0350471822000a0843044002805c02e01700b411460840028200dd680098208014021042181f800a07a375a002607c00500540fc607800281d0c0f000a007003801c00d03d181d000a0703036375400700140cd222598009810981a9baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002609400719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c966002609e00701780b2098375c0028278c13000504a1bae001304b00241306092002823a02280ba02280ca0228238dd6000c0420208250c11c0050451823801403a01d00e80720903045001410c6eb4004c11000a0168228c1080050401bad00130410028042084303f00140f46eb4004c0f800a00a81f8c0f000503a181e001400e007003801a07a303a00140e0606c6ea800e002819a444b300130213035375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c11c00e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c13000e02901341246eb800504c1824800a08e375c00260900048248c1180050444039014403901640390441bac001806c0350471822000a0843044002805c02e01700b411460840028200dd680098208014021042181f800a07a375a002607c00500540fc607800281d0c0f000a007003801c00d03d181d000a0703036375400700140cd22232598009811000c4c9660020030038992cc0040062b3001303d0028cc00400600b004402900440e9004802401200881f0c0ec005039181b9baa0048acc004c05c006264b3001001801c4c966002003159800981e8014566002604860706ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c10400a330010038cc004006013008403d008403d00840f900880440220108210c0fc00503d181f801401a00d0068032080303d00140ec60726ea800600881b200881d2009004802401103e181d800a0723037375400900240d081a0c0d4dd5001c566002603c60646ea801e3300130363033375400f2225980080145300103d87a80008acc004c0840062603266070607200497ae08cc00400e6074005337000029000a00640cc81ba4602860666ea8c0dcc8cc004004008896600200314bd708103d87a80008101800044c8cc8966003300130193038375460780074a14a281b226607730014a14c103d87a8000a60103d879800040d8660766e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0f800400e2946266004004607e00281c103c44cc0ee600294298103d87a8000a60103d879800040d8660766e9c0092f5c113303b9800a51a60103d87a8000a60103d879800040d8660766e9ccc0ecdd400080125eb81036206c3758607460760026eb4c0e8008cc008008c0e8005037488c8cc00400400c896600200314bd7044cc896600266ebcc0f0c0e4dd5181e181c9baa301b303937540046028660766ea40152f5c113303b00233004004001899802002000a06c303a001303b00140e1230373038303830383038001912cc0040062900044cdc02400466004004607200281b24464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e00510018032070899802802981f8022070375c60700026eacc0e4004c0ec0050390a5eb7bdb182444b300130213035375400713259800800c00a264b3001001801c00e00713259800981e801c01600881d0dd6800c00d03d181d000a0703036375400700140cd230373038303830380019b814800244646600200200644b30010018a5eb822660726e9cc00cc0e8004cc008008c0ec0050384888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd7181e800cdd6981f000ccc00c00cc1080090091820000a07c375660760066eb8c0e0004cc00c00cc0f4008c0ec005039488c8cc00400400c896600200314a115980099baf303a001374e00714a3133002002303b00140d081c2444b300130213035375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c966002608400519800803c6600200b132598009815000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c13000e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c14400e03301841386eb80050511827000a098375c002609a0048270c12c005049404d0491bac001809404904c1824800a08e375a002609000500f4124608c0028220dd6800982280140310461821800a082303f3754009159800980f800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c13000e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c14400e03301841386eb80050511827000a098375c002609a0048270c12c005049404d0491bac001809404904c1824800a08e375a002609000500f4124608c0028220dd6800982280140310461821800a082303f37540091598009814800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc00400602501280944cc89660020030148992cc00400602b0158992cc004c13c00e2b300100180b44c96600200301780bc05e02f1332259800800c066264b300100180d406a03501a8992cc004c15000e03901b41446eb80050541828800a09e375c00260a00048288c13800504c405904c1bac00180ac05504f1826000a094375a0026096005012413060920028238dd68009824001403d0491823000a088375a002608a00500c411860860028208c0fcdd50024566002605600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b300130490038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001304e00380b405504b1bae001413860960028248dd7000982500120963048001411901041186eb000601f00f4124608c0028220dd6800982280140310461821800a082303f3754009159800980f000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4c9660026092007011808208c375a00300f4124608c0028220dd6800982280140310461821800a082303f3754009159800980e800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc00400602501280944c9660026098007014809a092375a003012413060920028238dd68009824001403d0491823000a088375a002608a00500c411860860028208c0fcdd50024566002603800313259800800c02e264b30010018064032019132598009823001c03a01a8218dd6800c0310461821800a082303f375400915980099b8748038006264b3001001805c4c96600200300c8064032264b3001304600380740350431bad001806208c30430014104607e6ea801201481e103c207840f081e103c207840f0607a6ea800e012808a01280ba01281f8c10000503e1820001401e00f007803a082303e00140f0607c005005802c01600a81f8c0f000503a181e001400e007003801a07a303a00140e0606c6ea800e002819a4606e60706070607060706070003222329800800c01200680088896600200510018cc00400e607a00533004303c002001400c81d26e21200048888888888888888a6002608e60886ea8046608e60886ea8c098c110dd5008cc040042444b300130120028994c004006009003a400080088889660020071598008014400608a82622b3001002822466002009304f00398278014cc8966002600e0051337000066eb4c0bcc134dd5001454cc12d2411a6578706563742076616c69646174696f6e28726571756573742900164128609c0066eb4c13800900420984131153304549012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900164111300c00c91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c825226600a00a60a20088250dd718250009bad304b001304d001412c6601e0080062900024444446530012232330010010022259800800c52f5c11330513259800981d98279baa0018982998281baa0018a998272493965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641346600a0086eb4c148004cc008008c14c00505048888c9660026076609e6ea8006264b30013375e60a860a26ea8c150c144dd5181998289baa001302c33053375200a97ae08acc004c0c660026eacc0ccc144dd5181998289baa001802d22108747265617375727900402113259800981e18289baa0018992cc004006330010018992cc004c0fcc14cdd5000c4c96600266ebcc160c154dd5182c182a9baa001303033057375201297ae08acc004c0d660026eacc0dcc154dd5000c0269101087472656173757279004031132598009820182a9baa0018992cc004006330010018acc004cdd7980e182b9baa0034c103d87a800089982c8029982c8009982c9ba6329800800cdd5981d182c1baa00499198008009bab303b30593754607660b26ea8024896600200314bd6f7b63044c8cc174cdd8182d0009ba63233001001375660b800444b30010018a5eb7bdb182264660c066ec0c174004dd418111bad305e001330030033062002306000141786600600660be00460ba00282d90011112cc00400a2003132332298008034c184016646600200200a44b300100189983099bb037520086e9800d2f5bded8c113298009bae305f0019bab306000198320012444b300133720010007133065337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820ca880144cc198cdd81ba9009374c0020048308ca6002003008801a0022225980080144006264664530010069836802cc8cc004004014896600200313306d337606ea4010dd4001a5eb7bdb1822653001375c60d6003375a60d8003307000248896600266e4002000e2660e266ec0dd48041ba80070058acc004cdc7804001c4c96600260b6003100289983919bb037520126ea000400906d19b8000700289983899bb037520066ea0008cc01801800506c20d81837000a0d840186eb8c198004dd69833800983480120ce89983299bb037520066e98008cc01801800506020c01831000a0c040186eb8c168004dd5982d800982e80120b64bd704135054413101d413209904c82620b8305930563754003153305449012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016414c606260aa6ea80062a660a6920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164149153305349143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016414860ae60a86ea80062a660a492013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f6964782900164144660126eb0c0bcc14cdd5004002c11d019411e08f047823a0b0305530523754003153305049013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016413c605a60a26ea8c0ccc144dd5000c54cc13d2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164139153304f4914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016413860a660a06ea80062a6609c92013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641346600a6eb0c148c13cdd50020014c128dd50032444b3001303a0018cc004c138dd5004c8c148c14cc14cc14cc14cc14cc14cc14c006444b3001303c3050375400713259800800c00a264b3001001801c00e0071332259800800c016264b3001001803401a00d1332259800800c022264b3001001804c0260131332259800800c02e264b30010018064032019132598009830801c03a01a82f0dd6800c031061182f000a0b8375a00260ba005009417860b600282c8dd6800982d001401905b182c000a0ac375a00260ae005003416060aa0028298c144dd5001c00504e488c8ca60026eb4c1540066eb4c154c1580066eb4c15400922259800acc004cdc4800a400114a313371200400c829229000456600266e2401800e20031323370666e00cdc019b820023370200600e002900080099b810020034148829060aa00260a860a06ea800a444466e24004ca60020030058025200040044444b30010038acc00400a2003050415d159800801413e33001004982d001cc16800a646644b300130433058375400513259800800c6600200315980099baf3023305a375400460ba60b46ea80122b30013375e607860b46ea8004c174c168dd500144c966002608a60b46ea80062646464b30013370e6eb4c18400cdd69820182f1baa0068acc004cdc39bad3061002375a607460bc6ea801a2b30013370e6eb4c184004dd69811982f1baa0068acc004cdd798309831000980e982f1baa006899b8000998009bab3040305e3754608060bc6ea80226eb8c18403a6eb8c184c188039015454cc17124012d65787065637420726573657276655f6173736574203d3d20726571756573742e726573657276655f61737365740016416d153305c4912d65787065637420646966667573696f6e5f656e64203d3d20726571756573742e646966667573696f6e5f656e640016416d153305c4911d657870656374207969656c64203d3d20726571756573742e7969656c640016416d153305c49122657870656374207072696e636970616c203d3d20726571756573742e616d6f756e740016416c60c200260c000260b66ea80062a660b29201184578706563746564204f4465706f73697420616374696f6e00164160606c60b46ea80062a660b092012f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e0016415d15330584912f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e63650016415d0524069052829414a0a482f8c170c164dd500141410561819982b9baa30393057375400260b400660b2006802105720ae91111119192cc004cdc380080244c8c8c96600266e1ccdc09bad305c3059375460b80046eb4c170c164dd5182e00180244c9660033001002a5191112cc0040062b30013371e008911008a5189980f802998301ba900433060375200697ae0416d14a082d901c44cdc4803cc004dd6182e982d1baa3036305a375401948002446464b300198009824800d28528a0b68acc004c06c006266e0000ccdc199b82001375a608060bc6ea8010dd6981d182f1baa0048a9982e249176578706563742061637475616c5f64656c7461203e20300016416d1003416d30010059bae30600019bae3060306100140506eb0c17cc170dd5001203082620ae3301c375860b860b26ea8c0d4c164dd500591bac305d305a375400304c41586eacc16cc170004c16c006600200f375c60b260ac6ea8c0e0c158dd5004401a00a80522a660a892123657870656374206d696e745f616d6f756e74203d3d2065787065637465645f6d696e740016414cb30013040300d0018a4001159800800c116264b3001305a0028992cc004cdc79bae305600248810455534472008800c1210541bad305600182320ae305800141588290cc06cdd5980e982a1baa005375c606c60a86ea8c0d8c150dd50034c0c0c138dd5011cdc4a40009111111119194c0066002003375860b660b06ea8052460086eb4c0ecc164dd5000a022cc0040069000488cdc00009bad3036305a375400480b2464b300130453059375400313322598009823982d9baa0018acc004cdc499b81375a60be60b86ea80040092080bab7038801454cc169240129657870656374206869202d206c6f203c3d206d61785f646966667573696f6e5f726174655f7370616e00164165153305a4912865787065637420536f6d6528686929203d206765745f74785f75707065725f626f756e6428747829001641646eb4c174c168dd5000992cc004c0ecc168dd5000c4c0f8cc174c178c16cdd5000a5eb822980103d87a8000416060ba60b46ea8c0f0c168dd51805982d1baa0028a9982c2492865787065637420536f6d65286c6f29203d206765745f74785f6c6f7765725f626f756e64287478290016415c64b3001303a305937540031303d3305c305d305a375400297ae08a6103d87a8000415c60b860b26ea8c170c164dd51805182c9baa001982d982e00524444b300159800980c8024528c66002608e0074a14a282c905944c966002609060b86ea8006330013298009980a0009bad3061305e3754005375c608060bc6ea8c100c178dd50054dd71811982f1baa3040305e37540149112cc004c130c180dd5001c4c96600266ebcc194c188dd5183298311baa304430623754002607a660c86ea40092f5c115980098214c004dd5982218311baa304430623754003002a4410d7374616b696e675f7661756c7400406513259800982698311baa0018992cc004006330010018998331ba898009bab304630643754608c60c86ea800e00b489045553447200406c660cc002660cc00697ae082fa02882fc17e0bf05f41a460cc60c66ea80060b48300c0f8c188dd5182218311baa0018a998302481566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d15330604914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea800e2a660be92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f6964782900164178375860c060ba6ea810f30010439bae3060305d3754607e60ba6ea80266eb4c0e4c174dd500ccdd69811182e9baa019404559800980d1bad303f305d375400515980098041bad3060305d375400515980099b89375a60c060ba6ea8008dd6981f982e9baa002899198301ba800133060375066e040140052f5c066e10cdc10021bad3060305d37540046eb4c0fcc174dd5001454cc16d24012b65787065637420616c7068612e6e756d657261746f72203c3d20616c7068612e64656e6f6d696e61746f7200164169153305b4911b65787065637420616c7068612e6e756d657261746f72203e3d203000164169153305b4911c65787065637420616c7068612e64656e6f6d696e61746f72203e203000164169301c305d375403291114c004c190c1940126eb4c19000a6eb4c190c19400922259800982798319baa00489919912cc004cdc399b81002375a60d401400b15980099b87375a60d460ce6ea8004dd6983518339baa0068acc004c966002602601f132325980099b87375a609860d46ea8010dd69836801456600266e1cdd6982318351baa004375a60da00313370e6eb4c0bcc1a8dd50021bad306d306e0018a50419d14a08338c1b400566002b3001337126eb4c128c1a0dd5003a40011337120029000452820ca8a5eb841010000810100008101000044c96600266e2000400a2660d66ea0cdc01980c004000803998359ba80013306b375000497ae08a5eb85010000810100008101000020cc300e04e419515980099b87375a609460d06ea8008dd6982518341baa0078acc004cdc39bad3044306837540046eb4c110c1a0dd5003c56600266e1cdd6981698341baa002375a605a60d06ea801e2b30013025375a609460d06ea801e2602666e0400ccc05c01cc03813a2945065454cc199240138657870656374207661756c745f6f75742e646966667573696f6e5f656e64203d3d207661756c745f696e2e646966667573696f6e5f656e640016419515330664913c657870656374207661756c745f6f75742e646966667573696f6e5f7374617274203d3d207661756c745f696e2e646966667573696f6e5f737461727400164195153306649138657870656374207661756c745f6f75742e70656e64696e675f7969656c64203d3d207661756c745f696e2e70656e64696e675f7969656c6400164194832a60020214800244b3001337100026eb4c0b8c1a4dd500144dd6981718349baa0028800a0cc409515980098090074566003300133031375860d460ce6ea8134dd7182198339baa30493067375402701099834982498339baa304930673754026660d2981054455534472004bd7052000405515980099b8900432330010013758608860d06ea8138896600200314800226644b30013375e60dc60d66ea8008c134c1acdd5182398359baa017899b8000198009bab304d306b3754005375c609a60d66ea8c134c1acdd500bd22010455534472004089100141a060d80026600400460da002835233001013826cdd6982198339baa0239bad302c3067375404700e807a0288a99832a4812b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001641911533065491536578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473286f726465725f696e707574732c206465706f7369745f72657175657374732c20757364725f61737365742c20302900164191159800cc004cc0c4dd6183518339baa04d375c608660ce6ea8c124c19cdd5009c042660d2609260ce6ea8c124c19cdd500999834a601054455534472004bd704c0ac01101546600202704d9bad304330673754047375a605860ce6ea808e01d00f40511533065491906578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a202020202020290016419083222a660ca921b76578706563740a2020202076616c69646174655f6465706f7369745f646966667573696f6e280a2020202020207661756c745f646174756d5f696e2c0a2020202020207661756c745f646174756d5f6f75742c0a2020202020207661756c745f757364725f61667465722c0a2020202020207374616b65645f7969656c645f73686172652c0a202020202020746f74616c5f7969656c642c0a2020202020206d61785f656e642c0a20202020202074782c0a202020202900164191153306549144657870656374207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f72650016419115330654913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001641906eb4c1a0004c1a0c1a4004ca6002660360026eb4c1a0c194dd5002cdd7182398329baa304730653754023375c605460ca6ea8c11cc194dd5008a444b30013053306737540071325980099baf306c3069375460d860d26ea8004c110cc1acdd480125eb822b3001304998009bab304b30693754003002a4410d7374616b696e675f7661756c7400408113259800982a18349baa0018992cc004006330010018acc004cdd7981818359baa0034c103d87a80008998369ba898009bab304d306b3754007005a4410455534472004088660da002660da00697ae0830a0d08332036833419a0cd06641c060da60d46ea80062a660d092012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d0016419c608a60d26ea80062a660ce92014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d203100164199153306749141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016419860d660d06ea800e2a660cc92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641943758608060c86ea812a2a660c492013565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f69647800164184454cc16d24013365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f69647800164168604a60b86ea80622a660b492012e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001641643300c0013758607260ae6ea804cdd6182c80422b300130380018cc0048966002003148002266e0120023300200230540014145222329800800c012006800888966002005159800800c528c52820aa8acc00400629422b3001330043057002375a60ae00319800801cc16000a60b0002801a294105120aa4155223370666e08008dd6981618281baa001375a606460a06ea8006660066eb0c144c138dd50049bac3030304e37540153030304e375404691111192cc004cc8a6002646600200200644b30010018a508acc004cdd7982d982c1baa305b30583754607460b06ea8c16c004c0cccc168dd4801a5eb82294626600400460b800282a9059528528a0a6375860ae60a86ea80e8dd7180c982a1baa30363054375400515980099912cc004cdc398018011801802c56600260420031980080140064464b300130443058375400313232598009823982d1baa0018992cc004cdc39bad305f001375a607c60b86ea800e266ebcc17cc180004c06cc170dd5001c52820b2305b375400314a082c0c0d8c168dd5192cc004c114c168dd5000c4c96600200319800800c56600266ebcc094c170dd5001982f982e1baa0068acc004cdd7981f182e1baa001305f305c375400710018a9982d24813865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00164165153305a49138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500164165054407105482a41520a88308c178c16cdd5000c149058181b182d1baa303c305a375400860b860b26ea80062a660ae92013e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f69647829001641586601c00e002803a2a660a89201376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f7265717565737473290016414d153305449139657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e677468287265717565737473290016414c6603c6eb0c15cc150dd501d1bae303030543754606c60a86ea8008dd6181b182a1baa0108acc00660026eb0c0c0c150dd501d4dd6182b982a1baa0109bac305730543754606060a86ea80092229800803400a4464b300130453059375400319800982e982d1baa0019bac3019305a3754007323303500523375e60be60b86ea8004dd38011bac3019305a37540069112cc004c120c170dd5000c56600266ebcc180c174dd50019830182e9baa3060305d375400d15980099baf3039305d3754006607e60ba6ea8c180c174dd500344cdc3cc004dd5981f982e9baa0039bae30600029bae3060306100240506601a64b300133710002900044c088006200282d8dd6981f982e9baa0063060305d375400314a082d2294105a454cc16d24015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001641688a9982c2493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f696478290016415c6601e00a00280411303f9800cc00400e6eb0c15cc150dd5008496600260246eb4c0dcc154dd5000c4c100dd69818982a9baa0018a504148806a660366eacc074c150dd501d1bae303630543754606c60a86ea800b300103a9bae305730543754606c60a86ea800a6eb4c0c0c150dd50084dd6980c982a1baa010402133017375860ae60a86ea8c0c0c150dd500111bac3058305537540029111194c004c1700066eacc170c17400660b800759800982218088024520008acc00401209313259800982f002c4c96600266e3cdd7182d0012450455534472008800c1310581bad305a00182520b6305c004416882b1222259800cc00400e9464444b30010018acc004cdc78022441008a51899811005198319ba900433063375200697ae0417914a082f101f456600266e1ccdc09bad3060305d37540086eb4c180c174dd5001000c4c96600266e1e60026eb0c184c178dd5181d182f1baa00ca400122332259800cc004c13400694294505f44c96600266e24cc04c0040166002013375c60cc007375c60cc60ce00680d2266e000100062a660c29212d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c74610016418066e08004016200682f8dd6183198301baa00232980080852000912cc004cdd7981118319baa002374e0071337000026eb4c114c18cdd500144005060203e375860c660c06ea800901c19b8100200a8801454cc1712413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c74610016416cb3001301a0098a400314800905a414105a413d05a0c17000915330524901a96578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a2020202029001641451533052491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202900164145153305249142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900164144600a00a8a50412c825844b300133710002900045300103d87a8000899803001000a09222a6606292013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640c09111112cc004c09001e264b300100181444c966002003159800981f8014566002604c60746ea8006264b300100181544c96600200313259800800c0b2264b30010018992cc00400605d13259800800c0be05f132598009823001c566002605a60826ea801a264b3001001818c4c96600200303281944cc89660020030348992cc00400606b035899912cc00400606f13259800800c0e2071038899912cc00400607513259800800c0ee07703b899912cc00400607b13259800800c4c96600200303f8992cc0040062b30013056002899819807112cc00400a26606a01a44b30010028cc00401e330010058acc004c104c154dd500c44c9660020030458992cc004006264b3001001823c4c966002003159800982f00144cc8966002608e00313259800800c12e264b30010018264132264b30013063003899820000912cc00400a00f13259800800c66002003130023066003828205882841420a1050419c60c8004831209a8300dd6000c1320988318c18000505e182e1baa0058acc004c0f0006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040b105082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b1598009823000c4c96600200304b8992cc00400609904c8992cc004c18c00e26608000244b3001002803c4c96600200319800800c4c008c19800e0a0816a0a10508284141067183200120c4826a0c0375800304c82620c63060001417860b86ea80162b300130480018992cc00400609713259800800c1320991332259800800c13a264b30010018acc004c19400a26608400644b30010028acc004c138c188dd5001c4c9660020030528992cc0040060a7053829c4cc89660020030558992cc0040060ad05682b44c96600260da00700f82ba0d4375a00305641b460d40028340dd68009834801414d06a1833800a0ca30633754007051418113259800800c66002003130023068003829205e829414a0a505241a460cc004832209e831209f04f827c13d0661831800a0c2375800260c400504c82620c63060001417860b86ea80162b3001303b0018992cc00400609713259800800c132099132598009831801c4cc10000489660020050078992cc00400633001001898011833001c14102e41420a105082820ce3064002418904d41806eb000609904c418c60c000282f0c170dd5002c566002607400313259800800c12e264b30010018264132264b30013063003899820000912cc00400a00f13259800800c66002003130023066003828205c82841420a1050419c60c8004831209a8300dd6000c1320988318c18000505e182e1baa0058acc004c0e4006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040bd05082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b15980099b8748038006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040bd05082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b15980099b87480400062b3001305c375400b00282520ba82520b2416482c905920b2416482c905920b219800800c4cc0ec06489660020050248992cc00400609704b8992cc00400609913259800800c13609b04d826c4cc896600200304f8992cc0040062b300130660028cc0040062600e60cc01105040c5050418d05082841420a08338c1900050621bae0013063002419060c200282f8dd6000c12e0968310c17c00905d4121023182c9baa00382420b68244122091048417c60b800282d0c17000a08d046823411905d182d000a0b030563754031044414d0444099044409913259800800c11608b0458991801982e0021bad001822a0b83059002415d13259800800c10e0870438991801982d0021bad001821a0b430570024155040414d040820410208082b8c150005052182a00140fa07d03e81f20aa305200141406eb4004c14400a0768290c13c00504d1bad001304e00281c209e304c00141286eb0004c12c00a06b035413060920028238dd6000982400140ca0648248c11800504418211baa006818207e8182086375800302f817a08c30430014104608600502d816c0b605a8220c10400503f182080140ae05702b815a084303f00140f460766ea800605281c205281e2053029814c0a5040181e800a0763039375401b159800980c803c4c9660020030288992cc0040062b3001303f0028acc004c098c0e8dd5000c4c96600200302a8992cc004006264b300100181644c96600200302d816c4c96600260880071598009815981f9baa0048992cc00400605f13259800800c4c9660020030318992cc0040062b300130480028acc004c0bcc10cdd5001c4c9660020030338992cc004006264b300100181ac4c96600200303681b44cc89660020030388992cc004006073039899912cc00400607713259800800c0f207903c899912cc00400607d13259800800c0fe07f03f899912cc00400608313259800800c10a0850428992cc004c16400e2b300130403054375402113259800800c112264b3001001822c11608b1332259800800c11e264b3001001824412209113259800982f801c5660020270498992cc00400609504a82544cc896600200304c8992cc00400609b04d826c4c96600260c800715980080ac13a264b3001001827c13e09f1332259800800c146264b3001001829414a0a5132598009834801c66002045133046026225980080140be264b300100182b415a264b300100182bc4c96600200305882c41620b11332259800800c16a264b30010018acc004c1c400a33001001898039838804416d03c416d06e416e0b705b82da0e4306f00141b46eb8004c1b800906f1836000a0d4375800305682b20da306a00241a105340b905341986eb40060a48348c1980050641bad0013065016827a0cc3063015418504e41846eb400609a8320c18400505f1bad001306001482520c2305e013417104941706eb400609082f8c17000505a1bad001305b002822a0b83059001415c60aa6ea8042086829208682b0dd6800c109059182b000a0a8375a00260aa00503f415860a60028288dd6800982900140f10531828000a09c3758002609e00503981ca0a0304d001412c6eb0004c13000a06d036413460940028240c12800a06903481a40d104b1824000a08c304437540070324105032411503281940ca0648248c118005044182300140c2061030818208e3044001410860806ea801205c81ea05c8208dd6000c0b605a8220c10400503f182080140ae05702b815a084303f00140f460766ea800605281c205281e2053029814c0a5040181e800a0763039375401b02740d881b080dc06e03701b40c8664464b3001301a302e37540031302f32337606066002606660680026eb0c0c8c0bcdd5000c54cc0b524018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc030cc0ccdd480225eb812f5c11301433033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756605e60606060606060606060606060606060606060586ea8048dd7181798161baa00132323259800800c5660026032605a6ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0dc00a2b3001301e3032375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc0040062b3001303d0028acc004c090c0e0dd5002c4c9660020030298992cc004006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c4c9660020030318992cc004006264b3001001819c4c96600200313259800800c0d6264b30010018992cc00400606f13259800800c4c9660020030398992cc004006264b300100181dc4c966002003159800982880146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607060986ea805e264b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc00400608f047823c11e26644b3001001824c4c96600200304a825412a0951332259800800c132264b30010018acc004c18800a330010018acc004c124c174dd501344c96600200304e8992cc00400609f04f899912cc0040060a313259800800c56600260ce0051330440032259800801466002007103882a20768992cc0040062b300130513065375400313259800800c15a264b300100182bc15e26644b300100182cc4c96600200305a82d416a26644b300100182e44c96600200305d82ec176264b300130730038acc00401e0bd13259800800c17e0bf05f82fc4cc89660020030618992cc0040060c5062831418a264b3001307800389808183c008c18d0751bae00141e060ea0028398dd7000983a00420ea307200741c105e41c06eb40060ba8398c1c000506e1bad001306f00282d20e0306d00141ac6eb0004c1b000a0af05741b460d40028340c198dd5000c15506341560ab05582aa0d6306800241990524191052829414a0a48340c1940050631bac0013064002827c13d0651831000a0c0305e375404d04d416d04d40d904d417d04d826c13609a8318c18000505e1bae001305f002418060ba00282d8dd7000982e00120ba305a00141606eb8004c16400905a182b800a0aa375c00260ac00482b8c1500050521bae0013053002415060a20028278c134dd500bc0f104a40f102640f102640f102640f102640f102640f102640f102640f102640f102640f102640f104e40f207903c81e20a4304f0014134609e00503a81d40ea0748280c13400504b182680140e207103881c209c304b0014124609600503681b40da06c8260c124005047182480140d206903481a209430470014114608e00503281940ca0648240c114005043182280140c2061030818208c30430014104608600502e81740ba05c8220c10400503f182080140b205902c8162084303f00140f4607e00502a81540aa0548200c0f400503b181c9baa005814206c814207481440a205102840f8607600281c8c0ec00a04d026813409903c181c800a06e3039002812409204902440e8606e00281a8c0ccdd5000c0890304089034408a0450228112070303500140cc6eb8004c0d00090351819000a060302e375400301d40ad01d80ec07603a8198c9660026032605a6ea8006264b30013019302e375400313032302f3754003153302d49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06014605c6ea8c040c0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac6600e6eb0c03cc0b4dd50099191980080098019bab3011302f37546022605e6ea8008896600200314a115980099b8f375c606600205914a3133002002303400140b48188c004004896600200314bd7044cc0bcc0b0c0c0004cc008008c0c400502e1112cc004c060c0b0dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981a80146600200713259800980e800c4c9660020030078992cc0040062b300130380028992cc004c080006264b300100180544c966002003159800981d80146600200300c805a01c805a070805c02e01700b40f0607200281b8c0d4dd50014566002602a00313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c046023132598009821001c04e02481f8dd6800c045042181f800a07a375a002607c00500e40fc607800281d0dd6800981d801402d03c181c800a06e3035375400500940c88190c0ccdd5000c02103540220110088042072303600140d060646ea800a2b300130120018acc004c0c8dd5001401e00c819a00c817902f18181baa001802a010802a064802c01600b00540d860660028188c0cc00a007003801c00d0341818800a05e302d375400700140a84566002601000713232598009804980e9baa302130220028a518a50406c6eb4c080004c070dd50024590192032180d980e000980d8022293454cc04524011856616c696461746f722072657475726e65642066616c7365001365640401" + : "592896010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd50024dd2a4001230113012001911919800800801911980180098010014dc3a4005370e90044dc3a4015370e900648c044c048c0480066e952002912cc004c024c038dd500144c8c8cc8966002602e0070058b2028375a60280026eb8c050008c050004c03cdd500145900d24444444444530012232330010010032259800800c530103d87a80008992cc004c0100062601e6603e00297ae089980180198108012036301f00140752223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300b0018992cc004c08400626601a6eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc034dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998079bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b3001300a001899192cc004c08800a00916407c6eb4c080004c070dd5001c56600260120031323259800981100140122c80f8dd69810000980e1baa0038acc004c02000626464b3001302200280245901f1bae3020001301c375400716406880d101a2034406880d101a180d1baa00291192cc004c05400626464b3001302100280245901e1bae301f001301b37540071598009805000c56600260366ea800e00516407116406480c8c064dd5001488c966002602a0031323259800981080140122c80f0dd7180f800980d9baa0038acc004c02800626464b3001302100280245901e1bae301f001301b375400716406480c8c064dd500148966002602860326ea800a2646464b30013021002899192cc004c0640062b3001301f37540050068b20408acc004c03800626464b300130250028044590221bad3023001301f3754005159800980c000c566002603e6ea800a00d16408116407480e901d180e9baa00130200038b203c3259800980e800c56600266e252004301c0018b44c030c07000501b45901e1baa301f001301f001301a3754005164061223259800980a800c4c8c96600260420050048b203c375a603e00260366ea800e2b3001300a0018acc004c06cdd5001c00a2c80e22c80c9019180c9baa002488888a6002600a00b2259800980d180f9baa00289919192cc004c09c00a266010604c006264b3001301e0018992cc004c0a400626464b300130210018992cc004c0b000626601a60560020131640a4604e6ea800a2b3001301600189919194c004dd69816800cdd69816801cdd698168012444b3001303100480745902e0c0b4004c0b0004c09cdd5001459025204a30253754002605000316409860486ea800a2b300130130018acc004c090dd500140162c812a2c811102218111baa0018b20483025001302500130203754005164079223259800980d800c4c966002604c00313300b30250010038b2046302137540071598009808000c4c966002604c00313259800980e98111baa00189919192cc004c0a800a266014605200626601400200f16409c6050002605000260466ea80062c8108c0940062c8118c084dd5001c5901f203e301f37540052259800980d180f9baa0028991919192cc004c0a000a264b3001301f30243754003132323322598009816801c4cc03cc0b002002a2c8150dd718150009bae302a002302a0013025375400316408c604e0091640946eb8c098004c098004c094004c080dd500145901e244446645300133223259800981098131baa001898139919bb0302b001302b302c00137586054604e6ea80062c8128c8cc00400400c896600200314c0103d87a80008992cc004cdd7981400099ba548010cc0acc04ccc0acdd480225eb812f5c11301b3302b374e66056605000266056605200297ae04bd7044cc00c00cc0b40090271815800a0523756604e60506050605060506050605060506050605060486ea8064dd7181398121baa002912cc004c080c094dd500144c8c8c8cc8966002605e007133008302e0051330140020068b2058302c001375a605800460580026056002604c6ea800a2c812244b30013020302537540051323232323298009bad302e0019bad302e0049bad302e003981700124444b30013033005899806181900489980c0008054590300c0b8004c0b4004c0b0004c0ac004c098dd5001459024489660026040604a6ea800a264646464646530013758605e003375a605e00b375a605e009375a605e007302f00248888966002606a00d13300e303400b13301a001132332259800981c001c03e2c81a8dd7181a8009bae303500630350058b20641817800981700098168009816000981580098131baa0028b2048912cc004c080c094dd500144c8c8c8c8ca60026eb0c0b80066eb4c0b80126eb4c0b800e605c00491112cc004c0cc01626601860640122660300022646644b30013036003806c590331bae3033001375c606600a60660091640c0302e001302d001302c001302b001302637540051640909111119912cc004c094006264b300130300018992cc004c09cc0b0dd5000c4c8c8c8cc8966002606c00713259800981698191baa00189919191919194c004c0f00066eb0c0f00166eb4c0f00126eb4c0f000e6078004911112cc004c10801a26605c6eb0c10402c8966002005133030006225980080144cc0940144cc094024566002607860826ea80462646464b3001304900289919912cc004c10800a264b3001304d00189981c9bac304c00122598008014012266046609c00426002609e00482622c8250c120dd5001c566002606e005132598009826800c4cc0e4dd61826000912cc00400a009133023304e00213001304f002413116412860906ea800e2b300130410028992cc004c1340062660726eb0c1300048966002005004899812182700109800982780120988b209430483754007159800982180144c8c8c966002609e00513303b3758609c00644b30010028acc004c11cc130dd5001c4c8c8cc896600260aa00700a8b20a4375a60a40026eb4c148008c148004c134dd5001c5904b44cc098c1400084c004c14400904e45904c1826800982680098241baa0038acc004c0d800a264b3001304d00189981c9bac304c0012259800801401226604a609c00426002609e00482622c8250c120dd5001c566002606a005132598009826800c4cc0e4dd61826000912cc00400a009133025304e00213001304f002413116412860906ea800e2b300130340028992cc004c1340062660726eb0c1300048966002005004899813182700109800982780120988b20943048375400715980099b874803800a264b3001304d00189981c9bac304c0012259800801401226604c609c00426002609e00482622c8250c120dd5001c56600266e1d20100028acc004c120dd5001c0062c824a2c8231046208c41188231046208c41188230c114dd500089981300109981b00b112cc00400a03f1323322598009827800c4cc0a8c1380044c010c13c0162c8260dd7182600098268009bac304b00241246090007164118608e002608e00260846ea80462c82022646004608e0066eb4c11400904344c8c008c11400cdd6982180120828b207e181e000981d800981d000981c800981c00098199baa0018b206230350058b206637586066002606600460660026064002605a6ea80062c8158c0bc0062c8168c0acdd5003c5660026034003132598009818000c4c966002604e60586ea80062646464b300130340028992cc004c0acc0c0dd5000c4c8c966002606e00313259800981718199baa00189919191919194c004dd6981e800cdd6181e802cdd6181e8024dd6981e801cdd6981e801244444b300130430068992cc004c0e8c0fcdd5000c4c8c8cc896600260900071323322598009825801c4c8cc8966002609c00713302a304d01813303a01b2259800801408e2646644b300130530018998171829000898021829802c590501bae305000130510013758609e004826a2c8258dd698258009bad304b00c304b00b8b2090375a60900026eb4c120028c1200262c8228dd698228009bad30450023045001304037540031640f86084017164100303d001303c001303b001303a0013039001303437540031640c8606c0051640d0606c00260626ea80062c8178c0cc00e2c8188dd61819000981900098169baa0018b2056302f0018b205a302b375400f1640a48148566002604660506ea801633001302c3029375400b222598008014530103d87a80008acc004c0980062603c6605c605e00497ae08cc00400e6060005337000029000a00640a8816a4603260526ea8c0b4c8cc004004008896600200314bd708103d87a80008101800044c8cc89660033001301e302e375460640074a14a2816a26606330014a14c103d87a8000a60103d879800040b4660626e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0d000400e2946266004004606a002817903244cc0c6600294298103d87a8000a60103d879800040b4660626e9c0092f5c11330319800a51a60103d87a8000a60103d879800040b4660626e9ccc0c4dd400080125eb8102d205a3758606060620026eb4c0c0008cc008008c0c000502d488c8cc00400400c896600200314bd7044cc896600266ebcc0c8c0bcdd5181918179baa3020302f37540046032660626ea40152f5c113303100233004004001899802002000a05a3030001303100140b92302d302e302e302e302e001912cc0040062900044cdc02400466004004605e00281624464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803205e899802802981a802205e375c605c0026eacc0bc004c0c400502f0a5eb7bdb18244b30013025302a375400513232598009818801400e2c8170dd6981780098159baa0028b205291816981718171817000cdc0a40012232330010010032259800800c52f5c113302f374e600660600026600400460620028172444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c0cc0066eb4c0d00066600600660700048048c0d80050341bab3031003375c605c0026600600660660046062002817a44646600200200644b30010018a508acc004cdd798180009ba70038a518998010011818800a05640b92259800981298151baa0028991919194c004c0c800660640073032002488966002606c009133014303500713300f002132598009816800c4c8ca60026eb4c0e00066072003375a60700049112cc004c0f000a264646644b3001304000380945903d1bae303d001375c607a004607a0026eb0c0ec00a2c81c8607000260666ea800a2b30013022001899194c004dd6981c000cc0e40066eb4c0e000922259800981e00144c8c8cc896600260800070128b207a375c607a0026eb8c0f4008c0f4004dd6181d8014590390c0e0004c0ccdd500145660026058003132323298009bad3039001981d000cdd6981c801cdd6981c80124444b3001303e0038991919912cc004c10800e0291640fc6eb8c0fc004dd7181f801181f8009bac303d0038b2076181c800981c00098199baa0028acc004c0b80062646644b3001303a0018991919912cc004c0f800e0211640ec6eb8c0ec004dd7181d801181d8009bac30390018b206e375a606e002607000260666ea800a2b300130210018991919912cc004c0ec00e01b1640e06eb4c0e0004dd6981c001181c00098199baa0028acc004c08000626464653001375a6072003375a6072007375a60720049112cc004c0f401201f1640e83039001303800130333754005159800980f800c4c8c966002607200500b8b206c375a606e00260666ea800a2b30013370e9007000c4c8c966002607200500b8b206c375a606e00260666ea800a2c8189031206240c48189031206240c460626ea80062c819860640026062002606000260566ea800a2c814a4605a605c605c605c605c605c003222329800800c01200680088896600200510018cc00400e6066005330043032002001400c81826e21200048888888888888888a6002607a60746ea8046607a60746ea8c0acc0e8dd5008cc040042444b300130120028994c004006009003a40008008888966002007159800801440062c8212330010049822801cc11400a6644b30013007002899b80003375a606860866ea800a2c8208c11000cdd69822001200841091640ed300c00c91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c820a26600a00a608e0088208dd718200009bad3041001304300141046601e0080062900024444446530012232330010010022259800800c52f5c11330473259800982018229baa0018982498231baa0018b208833005004375a60900026600400460920028232444464b30013040304537540031325980099baf304a304737546094608e6ea8c0e0c11cdd50009818998249ba90054bd704566002606d300137566070608e6ea8c0e0c11cdd5000c01691108747265617375727900402113259800982098239baa0018991980c8008992cc004c110c124dd5000c4c96600266ebcc138c12cdd5182718259baa00130353304d375201297ae08acc004c0ea60026eacc0f0c12cdd5000c02691108747265617375727900403113259800982298259baa0018991980e8008acc004cdd7980e18269baa0034c0103d87a800089982780299827800998279ba6329800800cdd5981f98271baa00499198008009bab3040304f37546080609e6ea8024896600200314bd6f7b63044c8cc14ccdd818280009ba63233001001375660a400444b30010018a5eb7bdb182264660ac66ec0c14c004dd418111bad3054001330030033058002305600141506600600660aa00460a600282890011112cc00400a2003132332298008034c15c016646600200200a44b300100189982b99bb037520086e9800d2f5bded8c113298009bae30550019bab3056001982d0012444b30013372001000713305b337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820b6880144cc170cdd81ba9009374c00200482c0ca6002003008801a0022225980080144006264664530010069831802cc8cc0040040148966002003133063337606ea4010dd4001a5eb7bdb1822653001375c60c2003375a60c4003306600248896600266e4002000e2660ce66ec0dd48041ba80070058acc004cdc7804001c4c96600260c0003100289983419bb037520126ea000400906419b8000700289983399bb037520066ea0008cc01801800506320c61832000a0c440186eb8c170004dd6982e800982f80120ba89982d99bb037520066e98008cc01801800505720ae182c000a0ac40186eb8c140004dd59828800982980120a24bd7045904b182798261baa0018b20943036304b3754003164125164124609a60946ea80062c8240cc024dd6181a18249baa008005304b304837540031641186064608e6ea8c0e0c11cdd5000c59045459045182498231baa0018b20883300537586090608a6ea801000a60806ea801922259800981f800c6600260886ea80264609060926092609260926092609260920032259800982018229baa0028991919194c004dd69826800cdd698268024dd69826801cdd6982680124444b30013052005804c5904f0c134004c130004c12c004c118dd5001459044488c8ca60026eb4c12c0066eb4c12cc1300066eb4c12c00922259800acc004cdc4800a400114a313371200400c824a29000456600266e2401800e20031323370666e00cdc019b820023370200600e002900080099b810020034124824860960026094608c6ea800a444466e24004ca60020030058025200040044444b30010038acc00400a2003164135198008024c14000e60a000532332259800982418271baa0028991980d0008acc004cdd7981198281baa00230533050375400915980099baf30413050375400260a660a06ea800a264b3001304a3050375400313232325980099b87375a60ae0066eb4c114c150dd5003456600266e1cdd6982b8011bad303f3054375400d15980099b87375a60ae0026eb4c08cc150dd5003456600266ebcc15cc160004c074c150dd500344cdc0004cc004dd59822982a1baa304530543754011375c60ae01d375c60ae60b001c80aa2c82922c82922c82922c8290c15c004c158004c144dd5000c5904f181d98281baa0018b209c8b209c3052304f37540051641346070609a6ea8c0f8c134dd500098280019827801a008413522222232325980099b8700100489919192cc004cdc399b81375a60a4609e6ea8c148008dd6982918279baa30520030048992cc00660020054a3222259800800c56600266e3c0112201008a5189980f8029982b1ba900433056375200697ae0414914a0829101c44cdc4803cc004dd6182998281baa303b3050375401948002446464b300198009827000d28528a0a48acc004c06c006266e0000ccdc199b82001375a608a60a86ea8010dd6981f982a1baa0048b20a48801a0a49800802cdd7182b000cdd7182b182b800a028375860aa60a46ea800901845904e1980e1bac3052304f37546074609e6ea802c8dd6182998281baa0018b209a375660a260a400260a200330010079bae304f304c3754607a60986ea802200d0054029164128b30013045300d0018a40011598009827800c4c96600266e3cdd71825800a4504555344720089bad304c0018b2094304e0018b20984124660366eacc074c128dd50029bae303b304a3754607660946ea801a606a60886ea808a6e252000488888888c8ca600330010019bac3051304e375402923004375a6080609e6ea800501166002003480024466e00004dd6981d98281baa002405923259800982518279baa001899912cc004c130c144dd5000c56600266e24cdc09bad30553052375400200490405d5b81c400a2c82822c8280dd6982998281baa0013259800982018281baa0018982199829982a18289baa0014bd7045300103d87a8000413c60a660a06ea8c104c140dd5180598281baa0028b209c3259800981f98279baa0018982119829182998281baa0014bd7045300103d87a8000413860a4609e6ea8c148c13cdd5180518279baa0019828982900524444b300159800980c8024528c6600260980074a14a2828105044c966002609a60a46ea8006330013298009980a0009bad305730543754005375c608a60a86ea8c114c150dd50054dd71811982a1baa3045305437540149112cc004c144c158dd5001c4c96600266ebcc16cc160dd5182d982c1baa3049305837540026084660b46ea40092f5c11598009823cc004dd59824982c1baa304930583754003002a4410d7374616b696e675f7661756c74004065132598009829182c1baa0018991980a00089982e1ba898009bab304b305a3754609660b46ea800e00b4881045553447200406c660b8002660b800697ae0305c3059375400316415c608660b06ea8c124c160dd5000c59056459056182d182b9baa0038b20aa1bac30563053375409198008244dd7182b18299baa304430533754013375a607c60a66ea80666eb4c088c14cdd500ca022acc004c068dd6982218299baa0028acc004c020dd6982b18299baa0028acc004cdc49bad3056305337540046eb4c110c14cdd500144c8cc158dd40009982b1ba83370200a00297ae03370866e08010dd6982b18299baa002375a608860a66ea800a2c828a2c828a2c828a603860a66ea806522229800982d182d8024dd6982d0014dd6982d182d8012444b300130543059375400913233225980099b87337020046eb4c1800280162b30013370e6eb4c180c174dd50009bad3060305d375400d159800992cc004c04c03e26464b30013370e6eb4c144c180dd50021bad30630028acc004cdc39bad304b306037540086eb4c18c006266e1cdd6981798301baa004375a60c660c800314a082f2294105e1831800acc0056600266e24dd69827982f1baa00748002266e2400520008a50417114bd7081010000810100008101000044c96600266e2000400a2660c26ea0cdc01980c004000803998309ba800133061375000497ae08a5eb85010000810100008101000020ba300e053417115980099b87375a609e60bc6ea8008dd69827982f1baa0078acc004cdc39bad3049305e37540046eb4c124c178dd5003c56600266e1cdd69816982f1baa002375a605a60bc6ea801e2b30013025375a609e60bc6ea801e2602666e0400ccc05c01cc03814e294505c45905c45905c45905c20b8980080852000912cc004cdc40009bad302e305f37540051375a605c60be6ea800a200282e90254566002602401d159800cc004cc0c4dd61830182e9baa052375c609060ba6ea8c138c174dd5009c042660be609c60ba6ea8c138c174dd50099982fa61054455534472004bd7052000405515980099b8900432330010013758609260bc6ea814c896600200314800226644b30013375e60c860c26ea8008c148c184dd5182618309baa017899b8000198009bab305230613754005375c60a460c26ea8c148c184dd500bd220104555344720040891001417c60c40026600400460c60028302330010138294dd69824182e9baa0239bad302c305d375404700e807a0288b20b68b20b68acc0066002660626eb0c180c174dd50291bae3048305d3754609c60ba6ea804e0213305f304e305d3754609c60ba6ea804ccc17d3001054455534472004bd704c0ac0110154660020270529bad3048305d3754047375a605860ba6ea808e01d00f405116416c82da2c82da2c82da2c82d8dd6982f000982f182f800994c004cc06c004dd6982f182d9baa0059bae304c305b3754609860b66ea80466eb8c0a8c16cdd51826182d9baa01148896600260b060ba6ea800e264b30013375e60c460be6ea8c188c17cdd50009824998309ba90024bd704566002609d3001375660a060be6ea800600548810d7374616b696e675f7661756c7400408113259800982c982f9baa0018991980d8008acc004cdd7981818309baa0034c0103d87a80008998319ba898009bab305230613754007005a4410455534472004088660c6002660c600697ae08b20be306330603754003164178609460be6ea80062c82ea2c82e8c184c178dd5001c5905c0dd61822982d1baa04f8b20b022c8288c094c148dd500c4590500cc030004dd6181f18269baa0133758609e0108acc004c0f4006330012259800800c52000899b8048008cc008008c1280050474888ca6002003004801a00222259800801456600200314a314a0825a2b30010018a508acc004cc010c134008dd69826800c66002007304e0029827000a0068a504120825904b488cdc199b82002375a6062608c6ea8004dd6981b98231baa001998019bac3047304437540126eb0c0d4c110dd50054c0d4c110dd501124444464b3001332298009919800800801912cc00400629422b30013375e60a2609c6ea8c144c138dd5181f98271baa3051001303833050375200697ae08a518998010011829000a098413d4a14a28250dd6182698251baa03f375c603260946ea8c0ecc128dd500145660026644b30013370e6006004600600b1598009810800c6600200500191192cc004c124c138dd5000c4c8c966002609860a06ea8006264b30013370e6eb4c154004dd6982198291baa003899baf30553056001301b3052375400714a08280c144dd5000c528209e303b3050375464b3001304a305037540031323301c00115980099baf30253052375400660aa60a46ea801a2b30013375e608660a46ea8004c154c148dd5001c40062c82822c8280c150c144dd5000c5904f181d98281baa30413050375400860a4609e6ea80062c8268cc03801c00500745904a45904a1980f1bac304d304a375407e6eb8c0d4c128dd5181d98251baa0023758607660946ea80422b300198009bac3035304a375407f3758609a60946ea80426eb0c134c128dd5181a98251baa002488a600200d00291192cc004c128c13cdd5000c6600260a660a06ea80066eb0c064c140dd5001cc8cc0e40148cdd7982a98291baa001374e0046eb0c064c140dd5001a444b3001304d3052375400315980099baf30563053375400660ac60a66ea8c158c14cdd5003456600266ebcc0f8c14cdd5001982218299baa30563053375400d13370f30013756608860a66ea800e6eb8c15800a6eb8c158c15c00901419806992cc004cdc4000a4001130220018800a0a4375a608860a66ea8018c158c14cdd5000c52820a28a5041451641448b209c3300f0050014020898224c00660020073758609a60946ea80424b30013012375a607860966ea80062608a6eb4c0d8c12cdd5000c528209240353301b3756603a60946ea80fcdd7181d98251baa303b304a3754005980081fcdd7182698251baa303b304a3754005375a606a60946ea80426eb4c064c128dd500820109980b9bac304d304a3754606a60946ea80088dd6182718259baa00148888c8cc89660033001002a5191112cc0040062b30013371e008911008a518998100041982b9ba900433057375200697ae0414d14a0829901d456600266e1ccdc09bad30543051375460a80066eb4c150c144dd5182a002800c4c96600266e1e60026eb0c154c148dd5181e98291baa00aa400122332259800cc004c14000694294505444c96600266e24cc0440040166002011375c60b4007375c60b460b600680c2266e000100062c82a8cdc1000802c400d0541bac30573054375400465300100ea4001225980099baf3020305737540046e9c00e266e00004dd69824182b9baa0028800a0aa40746eb0c15cc150dd500120343370200401110028b20a059800980c003c520018a4004827a2c827a2c8278dd598291829800acc004c124c04401229000456600260a60091325980099b8f375c609e00291104555344720089bad30500018b209c30520048b20a0413460a40048b20908b20908b20903005005452820844108225980099b88001480022980103d87a8000899803001000a08022c8138c0a0dd50028c8c8c966002603e60486ea80062646644b3001302c0018992cc004c08cc0a0dd5000c4c8c8c8cc8966002606400713259800981498171baa0018991919191919191919194c004c0f00066078013303c008981e003cc0f001a607800b303c004981e001cc0f000922222222259800982300544cc090c11404c4cc0900204cc09001c4cc0900184cc0900144cc0900104cc09000c4cc0900084cc0900044cc090024566002607860826ea8056264646464653001375c6094003304b0019bae304a0059bae304a0049bae304a0039bae304a00248888896600260a200b1330333050005159800982398261baa02189919192cc004c15000a2660806eb0c14c00c8966002005133033003102e8992cc004c134c148dd5000c4c8c8c8cc896600260b8007132323322598009830001c4c02cc1800322c82e8dd7182e8009bae305d002305d001375860b600b1641646eb4c164004dd6982c801182c800982c00098299baa0018b20a23055002414d16414460a400260a4002609a6ea80862c825a2c8270609400260920026090002608e00260846ea80562c82022c821860780026076002607400260720026070002606e002606c002606a0026068002605e6ea80062c8168c0c40162c8178c0bc004c0bc008c0bc004c0b8004c0a4dd5000c590271815800c590291bae3029001302a0013025375400316408c64b3001301f3024375400313259800980f98129baa0018981498131baa0018b2048301030253754602c604a6ea8c0a0c094dd5000c59023198061bac3015302437540324646600200260066eacc05cc098dd5180b98131baa0022259800800c528456600266e3cdd718150008124528c4cc008008c0ac005025205030010012259800800c52f5c113302630233027001330020023028001409444b3001301e30233754005132323259800981580144cc020c0a800c4c966002604400315980098141baa002802c590294566002602e00313232598009817001401e2c8158dd7181600098141baa0028acc004c08400626464b3001302e002803c5902b181600098141baa0028b204c40988130c098dd5000c590281814800981480098121baa0028b204411598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d1365640081", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolManagementProtocolManagementPublish { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594ebd010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a4912657870656374205b5d203d206c6973745f6200168a99801a491d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a4926657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a49d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f64617461001648888888888888966003300130133754033370e90034dc3a4001370e9002244446465300130183754003301c006980e0012444b300130060038cc004c07cc070dd50024dd2a4001230203021001911919800800801911980180098010014dc3a4005370e90044dc3a4015370e900648c080c084c0840066e9520024888888888a600244646600200200644b30010018a6103d87a80008992cc004c0100062601c6605a00297ae089980180198178012050302d00140ad222329800800c0120068008888c966002603000313259800800c01a264b3001001803c01e00f0078992cc004c0d000e00b00840c46eb80050341818800a05e302d37540071598009806800c4c9660020030068992cc00400600f0078992cc004c0d000e26602200244b3001002803c4c96600200319800805400626004606e006805201700b805c02d038181a801206680420623758003007803a068303100140bc605a6ea800e2b300130170018992cc00400600d13259800800c01e00f13259800981a001c4cc04400489660020050078992cc0040063300100a800c4c008c0dc00d00a402e01700b805a070303500240cd00840c46eb000600f00740d060620028178c0b4dd5001c566002603200313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b3001303700389980a000912cc00400a01513259800800c6600201b00189801181d001a01a807403a01d00e40ec607000481b201681a0dd6000c02a01481b8c0d00050321bad0013033002803a068303100140bc605a6ea800e2b3001300c0018992cc00400600d13259800800c01e00f0078992cc004c0d000e00b00840c46eb400600e81a0c0c400502f18169baa0038acc004c02c006264b300100180344c966002003007803c01e264b30013034003802c0210311bad001803a068303100140bc605a6ea800e2b3001300a0018992cc00400600d13259800800c01e00f007803c4c96600260680070058042062375c00281a0c0c400502f18169baa003802a05440a8815102a205440a88150c0acdd50014888c966002602a00313259800800c00e264b300100180240120090048992cc004c0c400e00d00540b86eb80050311817000a058302a37540091598009805000c56600260546ea801200700240ad002409c8138c0a0dd5001c888c966002602a00313259800800c00e264b300100180240120090048992cc004c0c400e00d00540b86eb80050311817000a058302a37540091598009805000c4c9660020030038992cc0040060090048024012264b30013031003803401502e1bae00140c4605c0028160c0a8dd50024009027204e3028375400691111919192cc0040063300122259800980d98179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b300130200018acc004c0d4dd5001401e00c81b22b300130150018992cc00400600f13259800800c02201100880444c966002607800700a804a072375c00281e0c0e4005037181a9baa0028acc004c07c006264b3001001803c4c96600260760050098042070303900140dc606a6ea800a00c8191032206430333754003005402900540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444b3001301b302f375400713259800800c00a264b30010018992cc00400600913259800800c4c966002606a00315980099b8948010c0d000600d13259800981d00244c9660026044003159800981b9baa006804c0210384566002602e00313259800800c026264b3001001805402a01513259800981f001c03201681d8dd6800c02903e181d800a0723037375400d1598009810800c566002606e6ea801a01300840e100840d081a1034181a9baa005803a06e3015303400140c900640d86ea800600b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4889660026036605e6ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981d001c02200e81b8dd6800c01903a181b800a06a375c002606c00481b8c0d000503218181baa003800a05a911192cc004c070006264b3001001801c4c9660020030048024012264b3001303800380340150351bad0018022070303500140cc60626ea80122b300130110018acc004c0c4dd5002400e0048192004817102e18179baa0039112cc004c06cc0bcdd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b3001001803c01e00f0078992cc004c0ec00e2b300130223036375400d13259800800c026264b3001001805402a01500a899912cc00400601913259800800c03601b00d806c4c966002608200719800805403e01c80aa01c81f0dd7000a082303e00140f06eb8004c0f400903e181d800a0723037375400d00840d100840e06eb800503b181c000a06c3038002802c01600b00540e4606c00281a0c0d800a007003801c00d037181a000a0643030375400700140b5302c37540029111114c004889660026042606a6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c10400a330010068cc0040060130084039008404100840f900880440220108210c0fc00503d1bad001303e002802a07e303c00140e86078005003801c00e00681e8c0e8005038181b1baa003800a0669112cc004c084c0d4dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b132598009823801c6600201919800802403e01c80a201c80b201c8220dd6800c0350471822000a0843044002805c02e01700b411460840028200dd680098208014021042181f800a07a375a002607c00500540fc607800281d0c0f000a007003801c00d03d181d000a0703036375400700140cd222598009810981a9baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002609400719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c966002609e00701780b2098375c0028278c13000504a1bae001304b00241306092002823a02280ba02280ca0228238dd6000c0420208250c11c0050451823801403a01d00e80720903045001410c6eb4004c11000a0168228c1080050401bad00130410028042084303f00140f46eb4004c0f800a00a81f8c0f000503a181e001400e007003801a07a303a00140e0606c6ea800e002819a444b300130213035375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c11c00e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c13000e02901341246eb800504c1824800a08e375c00260900048248c1180050444039014403901640390441bac001806c0350471822000a0843044002805c02e01700b411460840028200dd680098208014021042181f800a07a375a002607c00500540fc607800281d0c0f000a007003801c00d03d181d000a0703036375400700140cd22232598009811000c4c9660020030038992cc0040062b3001303d0028cc00400600b004402900440e9004802401200881f0c0ec005039181b9baa0048acc004c05c006264b3001001801c4c966002003159800981e8014566002604860706ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c10400a330010038cc004006013008403d008403d00840f900880440220108210c0fc00503d181f801401a00d0068032080303d00140ec60726ea800600881b200881d2009004802401103e181d800a0723037375400900240d081a0c0d4dd5001c566002603c60646ea801e3300130363033375400f2225980080145300103d87a80008acc004c0840062603266070607200497ae08cc00400e6074005337000029000a00640cc81ba4602860666ea8c0dcc8cc004004008896600200314bd708103d87a80008101800044c8cc8966003300130193038375460780074a14a281b226607730014a14c103d87a8000a60103d879800040d8660766e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0f800400e2946266004004607e00281c103c44cc0ee600294298103d87a8000a60103d879800040d8660766e9c0092f5c113303b9800a51a60103d87a8000a60103d879800040d8660766e9ccc0ecdd400080125eb81036206c3758607460760026eb4c0e8008cc008008c0e8005037488c8cc00400400c896600200314bd7044cc896600266ebcc0f0c0e4dd5181e181c9baa301b303937540046028660766ea40152f5c113303b00233004004001899802002000a06c303a001303b00140e1230373038303830383038001912cc0040062900044cdc02400466004004607200281b24464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e00510018032070899802802981f8022070375c60700026eacc0e4004c0ec0050390a5eb7bdb182444b300130213035375400713259800800c00a264b3001001801c00e00713259800981e801c01600881d0dd6800c00d03d181d000a0703036375400700140cd230373038303830380019b814800244646600200200644b30010018a5eb822660726e9cc00cc0e8004cc008008c0ec0050384888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd7181e800cdd6981f000ccc00c00cc1080090091820000a07c375660760066eb8c0e0004cc00c00cc0f4008c0ec005039488c8cc00400400c896600200314a115980099baf303a001374e00714a3133002002303b00140d081c2444b300130213035375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c966002608400519800803c6600200b132598009815000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c13000e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c14400e03301841386eb80050511827000a098375c002609a0048270c12c005049404d0491bac001809404904c1824800a08e375a002609000500f4124608c0028220dd6800982280140310461821800a082303f3754009159800980f800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c13000e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c14400e03301841386eb80050511827000a098375c002609a0048270c12c005049404d0491bac001809404904c1824800a08e375a002609000500f4124608c0028220dd6800982280140310461821800a082303f37540091598009814800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc00400602501280944cc89660020030148992cc00400602b0158992cc004c13c00e2b300100180b44c96600200301780bc05e02f1332259800800c066264b300100180d406a03501a8992cc004c15000e03901b41446eb80050541828800a09e375c00260a00048288c13800504c405904c1bac00180ac05504f1826000a094375a0026096005012413060920028238dd68009824001403d0491823000a088375a002608a00500c411860860028208c0fcdd50024566002605600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b300130490038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001304e00380b405504b1bae001413860960028248dd7000982500120963048001411901041186eb000601f00f4124608c0028220dd6800982280140310461821800a082303f3754009159800980f000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4c9660026092007011808208c375a00300f4124608c0028220dd6800982280140310461821800a082303f3754009159800980e800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc00400602501280944c9660026098007014809a092375a003012413060920028238dd68009824001403d0491823000a088375a002608a00500c411860860028208c0fcdd50024566002603800313259800800c02e264b30010018064032019132598009823001c03a01a8218dd6800c0310461821800a082303f375400915980099b8748038006264b3001001805c4c96600200300c8064032264b3001304600380740350431bad001806208c30430014104607e6ea801201481e103c207840f081e103c207840f0607a6ea800e012808a01280ba01281f8c10000503e1820001401e00f007803a082303e00140f0607c005005802c01600a81f8c0f000503a181e001400e007003801a07a303a00140e0606c6ea800e002819a4606e60706070607060706070003222329800800c01200680088896600200510018cc00400e607a00533004303c002001400c81d26e21200048888888888888888a6002608e60886ea8046608e60886ea8c098c110dd5008cc040042444b300130120028994c004006009003a400080088889660020071598008014400608a82622b3001002822466002009304f00398278014cc8966002600e0051337000066eb4c0bcc134dd5001454cc12d2411a6578706563742076616c69646174696f6e28726571756573742900164128609c0066eb4c13800900420984131153304549012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900164111300c00c91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c825226600a00a60a20088250dd718250009bad304b001304d001412c6601e0080062900024444446530012232330010010022259800800c52f5c11330513259800981d98279baa0018982998281baa0018a998272493965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641346600a0086eb4c148004cc008008c14c00505048888c9660026076609e6ea8006264b30013375e60a860a26ea8c150c144dd5181998289baa001302c33053375200a97ae08acc004c0c660026eacc0ccc144dd5181998289baa001802d22108747265617375727900402113259800981e18289baa0018992cc004006330010018992cc004c0fcc14cdd5000c4c96600266ebcc160c154dd5182c182a9baa001303033057375201297ae08acc004c0d660026eacc0dcc154dd5000c0269101087472656173757279004031132598009820182a9baa0018992cc004006330010018acc004cdd7980e182b9baa0034c103d87a800089982c8029982c8009982c9ba6329800800cdd5981d182c1baa00499198008009bab303b30593754607660b26ea8024896600200314bd6f7b63044c8cc174cdd8182d0009ba63233001001375660b800444b30010018a5eb7bdb182264660c066ec0c174004dd418111bad305e001330030033062002306000141786600600660be00460ba00282d90011112cc00400a2003132332298008034c184016646600200200a44b300100189983099bb037520086e9800d2f5bded8c113298009bae305f0019bab306000198320012444b300133720010007133065337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820ca880144cc198cdd81ba9009374c0020048308ca6002003008801a0022225980080144006264664530010069836802cc8cc004004014896600200313306d337606ea4010dd4001a5eb7bdb1822653001375c60d6003375a60d8003307000248896600266e4002000e2660e266ec0dd48041ba80070058acc004cdc7804001c4c96600260b6003100289983919bb037520126ea000400906d19b8000700289983899bb037520066ea0008cc01801800506c20d81837000a0d840186eb8c198004dd69833800983480120ce89983299bb037520066e98008cc01801800506020c01831000a0c040186eb8c168004dd5982d800982e80120b64bd704135054413101d413209904c82620b8305930563754003153305449012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016414c606260aa6ea80062a660a6920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164149153305349143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016414860ae60a86ea80062a660a492013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f6964782900164144660126eb0c0bcc14cdd5004002c11d019411e08f047823a0b0305530523754003153305049013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016413c605a60a26ea8c0ccc144dd5000c54cc13d2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164139153304f4914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016413860a660a06ea80062a6609c92013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641346600a6eb0c148c13cdd50020014c128dd50032444b3001303a0018cc004c138dd5004c8c148c14cc14cc14cc14cc14cc14cc14c006444b3001303c3050375400713259800800c00a264b3001001801c00e0071332259800800c016264b3001001803401a00d1332259800800c022264b3001001804c0260131332259800800c02e264b30010018064032019132598009830801c03a01a82f0dd6800c031061182f000a0b8375a00260ba005009417860b600282c8dd6800982d001401905b182c000a0ac375a00260ae005003416060aa0028298c144dd5001c00504e488c8ca60026eb4c1540066eb4c154c1580066eb4c15400922259800acc004cdc4800a400114a313371200400c829229000456600266e2401800e20031323370666e00cdc019b820023370200600e002900080099b810020034148829060aa00260a860a06ea800a444466e24004ca60020030058025200040044444b30010038acc00400a2003050415d159800801413e33001004982d001cc16800a646644b300130433058375400513259800800c6600200315980099baf3023305a375400460ba60b46ea80122b30013375e607860b46ea8004c174c168dd500144c966002608a60b46ea80062646464b30013370e6eb4c18400cdd69820182f1baa0068acc004cdc39bad3061002375a607460bc6ea801a2b30013370e6eb4c184004dd69811982f1baa0068acc004cdd798309831000980e982f1baa006899b8000998009bab3040305e3754608060bc6ea80226eb8c18403a6eb8c184c188039015454cc17124012d65787065637420726573657276655f6173736574203d3d20726571756573742e726573657276655f61737365740016416d153305c4912d65787065637420646966667573696f6e5f656e64203d3d20726571756573742e646966667573696f6e5f656e640016416d153305c4911d657870656374207969656c64203d3d20726571756573742e7969656c640016416d153305c49122657870656374207072696e636970616c203d3d20726571756573742e616d6f756e740016416c60c200260c000260b66ea80062a660b29201184578706563746564204f4465706f73697420616374696f6e00164160606c60b46ea80062a660b092012f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e0016415d15330584912f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e63650016415d0524069052829414a0a482f8c170c164dd500141410561819982b9baa30393057375400260b400660b2006802105720ae91111119192cc004cdc380080244c8c8c96600266e1ccdc09bad305c3059375460b80046eb4c170c164dd5182e00180244c9660033001002a5191112cc0040062b30013371e008911008a5189980f802998301ba900433060375200697ae0416d14a082d901c44cdc4803cc004dd6182e982d1baa3036305a375401948002446464b300198009824800d28528a0b68acc004c06c006266e0000ccdc199b82001375a608060bc6ea8010dd6981d182f1baa0048a9982e249176578706563742061637475616c5f64656c7461203e20300016416d1003416d30010059bae30600019bae3060306100140506eb0c17cc170dd5001203082620ae3301c375860b860b26ea8c0d4c164dd500591bac305d305a375400304c41586eacc16cc170004c16c006600200f375c60b260ac6ea8c0e0c158dd5004401a00a80522a660a892123657870656374206d696e745f616d6f756e74203d3d2065787065637465645f6d696e740016414cb30013040300d0018a4001159800800c116264b3001305a0028992cc004cdc79bae305600248810455534472008800c1210541bad305600182320ae305800141588290cc06cdd5980e982a1baa005375c606c60a86ea8c0d8c150dd50034c0c0c138dd5011cdc4a40009111111119194c0066002003375860b660b06ea8052460086eb4c0ecc164dd5000a022cc0040069000488cdc00009bad3036305a375400480b2464b300130453059375400313322598009823982d9baa0018acc004cdc499b81375a60be60b86ea80040092080bab7038801454cc169240129657870656374206869202d206c6f203c3d206d61785f646966667573696f6e5f726174655f7370616e00164165153305a4912865787065637420536f6d6528686929203d206765745f74785f75707065725f626f756e6428747829001641646eb4c174c168dd5000992cc004c0ecc168dd5000c4c0f8cc174c178c16cdd5000a5eb822980103d87a8000416060ba60b46ea8c0f0c168dd51805982d1baa0028a9982c2492865787065637420536f6d65286c6f29203d206765745f74785f6c6f7765725f626f756e64287478290016415c64b3001303a305937540031303d3305c305d305a375400297ae08a6103d87a8000415c60b860b26ea8c170c164dd51805182c9baa001982d982e00524444b300159800980c8024528c66002608e0074a14a282c905944c966002609060b86ea8006330013298009980a0009bad3061305e3754005375c608060bc6ea8c100c178dd50054dd71811982f1baa3040305e37540149112cc004c130c180dd5001c4c96600266ebcc194c188dd5183298311baa304430623754002607a660c86ea40092f5c115980098214c004dd5982218311baa304430623754003002a4410d7374616b696e675f7661756c7400406513259800982698311baa0018992cc004006330010018998331ba898009bab304630643754608c60c86ea800e00b489045553447200406c660cc002660cc00697ae082fa02882fc17e0bf05f41a460cc60c66ea80060b48300c0f8c188dd5182218311baa0018a998302481566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d15330604914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea800e2a660be92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f6964782900164178375860c060ba6ea810f30010439bae3060305d3754607e60ba6ea80266eb4c0e4c174dd500ccdd69811182e9baa019404559800980d1bad303f305d375400515980098041bad3060305d375400515980099b89375a60c060ba6ea8008dd6981f982e9baa002899198301ba800133060375066e040140052f5c066e10cdc10021bad3060305d37540046eb4c0fcc174dd5001454cc16d24012b65787065637420616c7068612e6e756d657261746f72203c3d20616c7068612e64656e6f6d696e61746f7200164169153305b4911b65787065637420616c7068612e6e756d657261746f72203e3d203000164169153305b4911c65787065637420616c7068612e64656e6f6d696e61746f72203e203000164169301c305d375403291114c004c190c1940126eb4c19000a6eb4c190c19400922259800982798319baa00489919912cc004cdc399b81002375a60d401400b15980099b87375a60d460ce6ea8004dd6983518339baa0068acc004c966002602601f132325980099b87375a609860d46ea8010dd69836801456600266e1cdd6982318351baa004375a60da00313370e6eb4c0bcc1a8dd50021bad306d306e0018a50419d14a08338c1b400566002b3001337126eb4c128c1a0dd5003a40011337120029000452820ca8a5eb841010000810100008101000044c96600266e2000400a2660d66ea0cdc01980c004000803998359ba80013306b375000497ae08a5eb85010000810100008101000020cc300e04e419515980099b87375a609460d06ea8008dd6982518341baa0078acc004cdc39bad3044306837540046eb4c110c1a0dd5003c56600266e1cdd6981698341baa002375a605a60d06ea801e2b30013025375a609460d06ea801e2602666e0400ccc05c01cc03813a2945065454cc199240138657870656374207661756c745f6f75742e646966667573696f6e5f656e64203d3d207661756c745f696e2e646966667573696f6e5f656e640016419515330664913c657870656374207661756c745f6f75742e646966667573696f6e5f7374617274203d3d207661756c745f696e2e646966667573696f6e5f737461727400164195153306649138657870656374207661756c745f6f75742e70656e64696e675f7969656c64203d3d207661756c745f696e2e70656e64696e675f7969656c6400164194832a60020214800244b3001337100026eb4c0b8c1a4dd500144dd6981718349baa0028800a0cc409515980098090074566003300133031375860d460ce6ea8134dd7182198339baa30493067375402701099834982498339baa304930673754026660d2981054455534472004bd7052000405515980099b8900432330010013758608860d06ea8138896600200314800226644b30013375e60dc60d66ea8008c134c1acdd5182398359baa017899b8000198009bab304d306b3754005375c609a60d66ea8c134c1acdd500bd22010455534472004089100141a060d80026600400460da002835233001013826cdd6982198339baa0239bad302c3067375404700e807a0288a99832a4812b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001641911533065491536578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473286f726465725f696e707574732c206465706f7369745f72657175657374732c20757364725f61737365742c20302900164191159800cc004cc0c4dd6183518339baa04d375c608660ce6ea8c124c19cdd5009c042660d2609260ce6ea8c124c19cdd500999834a601054455534472004bd704c0ac01101546600202704d9bad304330673754047375a605860ce6ea808e01d00f40511533065491906578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a202020202020290016419083222a660ca921b76578706563740a2020202076616c69646174655f6465706f7369745f646966667573696f6e280a2020202020207661756c745f646174756d5f696e2c0a2020202020207661756c745f646174756d5f6f75742c0a2020202020207661756c745f757364725f61667465722c0a2020202020207374616b65645f7969656c645f73686172652c0a202020202020746f74616c5f7969656c642c0a2020202020206d61785f656e642c0a20202020202074782c0a202020202900164191153306549144657870656374207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f72650016419115330654913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001641906eb4c1a0004c1a0c1a4004ca6002660360026eb4c1a0c194dd5002cdd7182398329baa304730653754023375c605460ca6ea8c11cc194dd5008a444b30013053306737540071325980099baf306c3069375460d860d26ea8004c110cc1acdd480125eb822b3001304998009bab304b30693754003002a4410d7374616b696e675f7661756c7400408113259800982a18349baa0018992cc004006330010018acc004cdd7981818359baa0034c103d87a80008998369ba898009bab304d306b3754007005a4410455534472004088660da002660da00697ae0830a0d08332036833419a0cd06641c060da60d46ea80062a660d092012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d0016419c608a60d26ea80062a660ce92014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d203100164199153306749141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016419860d660d06ea800e2a660cc92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641943758608060c86ea812a2a660c492013565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f69647800164184454cc16d24013365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f69647800164168604a60b86ea80622a660b492012e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001641643300c0013758607260ae6ea804cdd6182c80422b300130380018cc0048966002003148002266e0120023300200230540014145222329800800c012006800888966002005159800800c528c52820aa8acc00400629422b3001330043057002375a60ae00319800801cc16000a60b0002801a294105120aa4155223370666e08008dd6981618281baa001375a606460a06ea8006660066eb0c144c138dd50049bac3030304e37540153030304e375404691111192cc004cc8a6002646600200200644b30010018a508acc004cdd7982d982c1baa305b30583754607460b06ea8c16c004c0cccc168dd4801a5eb82294626600400460b800282a9059528528a0a6375860ae60a86ea80e8dd7180c982a1baa30363054375400515980099912cc004cdc398018011801802c56600260420031980080140064464b300130443058375400313232598009823982d1baa0018992cc004cdc39bad305f001375a607c60b86ea800e266ebcc17cc180004c06cc170dd5001c52820b2305b375400314a082c0c0d8c168dd5192cc004c114c168dd5000c4c96600200319800800c56600266ebcc094c170dd5001982f982e1baa0068acc004cdd7981f182e1baa001305f305c375400710018a9982d24813865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00164165153305a49138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500164165054407105482a41520a88308c178c16cdd5000c149058181b182d1baa303c305a375400860b860b26ea80062a660ae92013e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f69647829001641586601c00e002803a2a660a89201376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f7265717565737473290016414d153305449139657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e677468287265717565737473290016414c6603c6eb0c15cc150dd501d1bae303030543754606c60a86ea8008dd6181b182a1baa0108acc00660026eb0c0c0c150dd501d4dd6182b982a1baa0109bac305730543754606060a86ea80092229800803400a4464b300130453059375400319800982e982d1baa0019bac3019305a3754007323303500523375e60be60b86ea8004dd38011bac3019305a37540069112cc004c120c170dd5000c56600266ebcc180c174dd50019830182e9baa3060305d375400d15980099baf3039305d3754006607e60ba6ea8c180c174dd500344cdc3cc004dd5981f982e9baa0039bae30600029bae3060306100240506601a64b300133710002900044c088006200282d8dd6981f982e9baa0063060305d375400314a082d2294105a454cc16d24015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001641688a9982c2493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f696478290016415c6601e00a00280411303f9800cc00400e6eb0c15cc150dd5008496600260246eb4c0dcc154dd5000c4c100dd69818982a9baa0018a504148806a660366eacc074c150dd501d1bae303630543754606c60a86ea800b300103a9bae305730543754606c60a86ea800a6eb4c0c0c150dd50084dd6980c982a1baa010402133017375860ae60a86ea8c0c0c150dd500111bac3058305537540029111194c004c1700066eacc170c17400660b800759800982218088024520008acc00401209313259800982f002c4c96600266e3cdd7182d0012450455534472008800c1310581bad305a00182520b6305c004416882b1222259800cc00400e9464444b30010018acc004cdc78022441008a51899811005198319ba900433063375200697ae0417914a082f101f456600266e1ccdc09bad3060305d37540086eb4c180c174dd5001000c4c96600266e1e60026eb0c184c178dd5181d182f1baa00ca400122332259800cc004c13400694294505f44c96600266e24cc04c0040166002013375c60cc007375c60cc60ce00680d2266e000100062a660c29212d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c74610016418066e08004016200682f8dd6183198301baa00232980080852000912cc004cdd7981118319baa002374e0071337000026eb4c114c18cdd500144005060203e375860c660c06ea800901c19b8100200a8801454cc1712413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c74610016416cb3001301a0098a400314800905a414105a413d05a0c17000915330524901a96578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a2020202029001641451533052491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202900164145153305249142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900164144600a00a8a50412c825844b300133710002900045300103d87a8000899803001000a09222a6606292013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640c09111112cc004c09001e264b300100181444c966002003159800981f8014566002604c60746ea8006264b300100181544c96600200313259800800c0b2264b30010018992cc00400605d13259800800c0be05f132598009823001c566002605a60826ea801a264b3001001818c4c96600200303281944cc89660020030348992cc00400606b035899912cc00400606f13259800800c0e2071038899912cc00400607513259800800c0ee07703b899912cc00400607b13259800800c4c96600200303f8992cc0040062b30013056002899819807112cc00400a26606a01a44b30010028cc00401e330010058acc004c104c154dd500c44c9660020030458992cc004006264b3001001823c4c966002003159800982f00144cc8966002608e00313259800800c12e264b30010018264132264b30013063003899820000912cc00400a00f13259800800c66002003130023066003828205882841420a1050419c60c8004831209a8300dd6000c1320988318c18000505e182e1baa0058acc004c0f0006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040b105082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b1598009823000c4c96600200304b8992cc00400609904c8992cc004c18c00e26608000244b3001002803c4c96600200319800800c4c008c19800e0a0816a0a10508284141067183200120c4826a0c0375800304c82620c63060001417860b86ea80162b300130480018992cc00400609713259800800c1320991332259800800c13a264b30010018acc004c19400a26608400644b30010028acc004c138c188dd5001c4c9660020030528992cc0040060a7053829c4cc89660020030558992cc0040060ad05682b44c96600260da00700f82ba0d4375a00305641b460d40028340dd68009834801414d06a1833800a0ca30633754007051418113259800800c66002003130023068003829205e829414a0a505241a460cc004832209e831209f04f827c13d0661831800a0c2375800260c400504c82620c63060001417860b86ea80162b3001303b0018992cc00400609713259800800c132099132598009831801c4cc10000489660020050078992cc00400633001001898011833001c14102e41420a105082820ce3064002418904d41806eb000609904c418c60c000282f0c170dd5002c566002607400313259800800c12e264b30010018264132264b30013063003899820000912cc00400a00f13259800800c66002003130023066003828205c82841420a1050419c60c8004831209a8300dd6000c1320988318c18000505e182e1baa0058acc004c0e4006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040bd05082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b15980099b8748038006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040bd05082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b15980099b87480400062b3001305c375400b00282520ba82520b2416482c905920b2416482c905920b219800800c4cc0ec06489660020050248992cc00400609704b8992cc00400609913259800800c13609b04d826c4cc896600200304f8992cc0040062b300130660028cc0040062600e60cc01105040c5050418d05082841420a08338c1900050621bae0013063002419060c200282f8dd6000c12e0968310c17c00905d4121023182c9baa00382420b68244122091048417c60b800282d0c17000a08d046823411905d182d000a0b030563754031044414d0444099044409913259800800c11608b0458991801982e0021bad001822a0b83059002415d13259800800c10e0870438991801982d0021bad001821a0b430570024155040414d040820410208082b8c150005052182a00140fa07d03e81f20aa305200141406eb4004c14400a0768290c13c00504d1bad001304e00281c209e304c00141286eb0004c12c00a06b035413060920028238dd6000982400140ca0648248c11800504418211baa006818207e8182086375800302f817a08c30430014104608600502d816c0b605a8220c10400503f182080140ae05702b815a084303f00140f460766ea800605281c205281e2053029814c0a5040181e800a0763039375401b159800980c803c4c9660020030288992cc0040062b3001303f0028acc004c098c0e8dd5000c4c96600200302a8992cc004006264b300100181644c96600200302d816c4c96600260880071598009815981f9baa0048992cc00400605f13259800800c4c9660020030318992cc0040062b300130480028acc004c0bcc10cdd5001c4c9660020030338992cc004006264b300100181ac4c96600200303681b44cc89660020030388992cc004006073039899912cc00400607713259800800c0f207903c899912cc00400607d13259800800c0fe07f03f899912cc00400608313259800800c10a0850428992cc004c16400e2b300130403054375402113259800800c112264b3001001822c11608b1332259800800c11e264b3001001824412209113259800982f801c5660020270498992cc00400609504a82544cc896600200304c8992cc00400609b04d826c4c96600260c800715980080ac13a264b3001001827c13e09f1332259800800c146264b3001001829414a0a5132598009834801c66002045133046026225980080140be264b300100182b415a264b300100182bc4c96600200305882c41620b11332259800800c16a264b30010018acc004c1c400a33001001898039838804416d03c416d06e416e0b705b82da0e4306f00141b46eb8004c1b800906f1836000a0d4375800305682b20da306a00241a105340b905341986eb40060a48348c1980050641bad0013065016827a0cc3063015418504e41846eb400609a8320c18400505f1bad001306001482520c2305e013417104941706eb400609082f8c17000505a1bad001305b002822a0b83059001415c60aa6ea8042086829208682b0dd6800c109059182b000a0a8375a00260aa00503f415860a60028288dd6800982900140f10531828000a09c3758002609e00503981ca0a0304d001412c6eb0004c13000a06d036413460940028240c12800a06903481a40d104b1824000a08c304437540070324105032411503281940ca0648248c118005044182300140c2061030818208e3044001410860806ea801205c81ea05c8208dd6000c0b605a8220c10400503f182080140ae05702b815a084303f00140f460766ea800605281c205281e2053029814c0a5040181e800a0763039375401b02740d881b080dc06e03701b40c8664464b3001301a302e37540031302f32337606066002606660680026eb0c0c8c0bcdd5000c54cc0b524018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc030cc0ccdd480225eb812f5c11301433033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756605e60606060606060606060606060606060606060586ea8048dd7181798161baa00132323259800800c5660026032605a6ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0dc00a2b3001301e3032375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc0040062b3001303d0028acc004c090c0e0dd5002c4c9660020030298992cc004006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c4c9660020030318992cc004006264b3001001819c4c96600200313259800800c0d6264b30010018992cc00400606f13259800800c4c9660020030398992cc004006264b300100181dc4c966002003159800982880146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607060986ea805e264b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc00400608f047823c11e26644b3001001824c4c96600200304a825412a0951332259800800c132264b30010018acc004c18800a330010018acc004c124c174dd501344c96600200304e8992cc00400609f04f899912cc0040060a313259800800c56600260ce0051330440032259800801466002007103882a20768992cc0040062b300130513065375400313259800800c15a264b300100182bc15e26644b300100182cc4c96600200305a82d416a26644b300100182e44c96600200305d82ec176264b300130730038acc00401e0bd13259800800c17e0bf05f82fc4cc89660020030618992cc0040060c5062831418a264b3001307800389808183c008c18d0751bae00141e060ea0028398dd7000983a00420ea307200741c105e41c06eb40060ba8398c1c000506e1bad001306f00282d20e0306d00141ac6eb0004c1b000a0af05741b460d40028340c198dd5000c15506341560ab05582aa0d6306800241990524191052829414a0a48340c1940050631bac0013064002827c13d0651831000a0c0305e375404d04d416d04d40d904d417d04d826c13609a8318c18000505e1bae001305f002418060ba00282d8dd7000982e00120ba305a00141606eb8004c16400905a182b800a0aa375c00260ac00482b8c1500050521bae0013053002415060a20028278c134dd500bc0f104a40f102640f102640f102640f102640f102640f102640f102640f102640f102640f102640f104e40f207903c81e20a4304f0014134609e00503a81d40ea0748280c13400504b182680140e207103881c209c304b0014124609600503681b40da06c8260c124005047182480140d206903481a209430470014114608e00503281940ca0648240c114005043182280140c2061030818208c30430014104608600502e81740ba05c8220c10400503f182080140b205902c8162084303f00140f4607e00502a81540aa0548200c0f400503b181c9baa005814206c814207481440a205102840f8607600281c8c0ec00a04d026813409903c181c800a06e3039002812409204902440e8606e00281a8c0ccdd5000c0890304089034408a0450228112070303500140cc6eb8004c0d00090351819000a060302e375400301d40ad01d80ec07603a8198c9660026032605a6ea8006264b30013019302e375400313032302f3754003153302d49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06014605c6ea8c040c0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac6600e6eb0c03cc0b4dd50099191980080098019bab3011302f37546022605e6ea8008896600200314a115980099b8f375c606600205914a3133002002303400140b48188c004004896600200314bd7044cc0bcc0b0c0c0004cc008008c0c400502e1112cc004c060c0b0dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981a80146600200713259800980e800c4c9660020030078992cc0040062b300130380028992cc004c080006264b300100180544c966002003159800981d80146600200300c805a01c805a070805c02e01700b40f0607200281b8c0d4dd50014566002602a00313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c046023132598009821001c04e02481f8dd6800c045042181f800a07a375a002607c00500e40fc607800281d0dd6800981d801402d03c181c800a06e3035375400500940c88190c0ccdd5000c02103540220110088042072303600140d060646ea800a2b300130120018acc004c0c8dd5001401e00c819a00c817902f18181baa001802a010802a064802c01600b00540d860660028188c0cc00a007003801c00d0341818800a05e302d375400700140a84566002601000713232598009804980e9baa302130220028a518a50406c6eb4c080004c070dd50024590192032180d980e000980d8022293454cc04524011856616c696461746f722072657475726e65642066616c7365001365640401" + : "592896010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd50024dd2a4001230113012001911919800800801911980180098010014dc3a4005370e90044dc3a4015370e900648c044c048c0480066e952002912cc004c024c038dd500144c8c8cc8966002602e0070058b2028375a60280026eb8c050008c050004c03cdd500145900d24444444444530012232330010010032259800800c530103d87a80008992cc004c0100062601e6603e00297ae089980180198108012036301f00140752223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300b0018992cc004c08400626601a6eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc034dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998079bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b3001300a001899192cc004c08800a00916407c6eb4c080004c070dd5001c56600260120031323259800981100140122c80f8dd69810000980e1baa0038acc004c02000626464b3001302200280245901f1bae3020001301c375400716406880d101a2034406880d101a180d1baa00291192cc004c05400626464b3001302100280245901e1bae301f001301b37540071598009805000c56600260366ea800e00516407116406480c8c064dd5001488c966002602a0031323259800981080140122c80f0dd7180f800980d9baa0038acc004c02800626464b3001302100280245901e1bae301f001301b375400716406480c8c064dd500148966002602860326ea800a2646464b30013021002899192cc004c0640062b3001301f37540050068b20408acc004c03800626464b300130250028044590221bad3023001301f3754005159800980c000c566002603e6ea800a00d16408116407480e901d180e9baa00130200038b203c3259800980e800c56600266e252004301c0018b44c030c07000501b45901e1baa301f001301f001301a3754005164061223259800980a800c4c8c96600260420050048b203c375a603e00260366ea800e2b3001300a0018acc004c06cdd5001c00a2c80e22c80c9019180c9baa002488888a6002600a00b2259800980d180f9baa00289919192cc004c09c00a266010604c006264b3001301e0018992cc004c0a400626464b300130210018992cc004c0b000626601a60560020131640a4604e6ea800a2b3001301600189919194c004dd69816800cdd69816801cdd698168012444b3001303100480745902e0c0b4004c0b0004c09cdd5001459025204a30253754002605000316409860486ea800a2b300130130018acc004c090dd500140162c812a2c811102218111baa0018b20483025001302500130203754005164079223259800980d800c4c966002604c00313300b30250010038b2046302137540071598009808000c4c966002604c00313259800980e98111baa00189919192cc004c0a800a266014605200626601400200f16409c6050002605000260466ea80062c8108c0940062c8118c084dd5001c5901f203e301f37540052259800980d180f9baa0028991919192cc004c0a000a264b3001301f30243754003132323322598009816801c4cc03cc0b002002a2c8150dd718150009bae302a002302a0013025375400316408c604e0091640946eb8c098004c098004c094004c080dd500145901e244446645300133223259800981098131baa001898139919bb0302b001302b302c00137586054604e6ea80062c8128c8cc00400400c896600200314c0103d87a80008992cc004cdd7981400099ba548010cc0acc04ccc0acdd480225eb812f5c11301b3302b374e66056605000266056605200297ae04bd7044cc00c00cc0b40090271815800a0523756604e60506050605060506050605060506050605060486ea8064dd7181398121baa002912cc004c080c094dd500144c8c8c8cc8966002605e007133008302e0051330140020068b2058302c001375a605800460580026056002604c6ea800a2c812244b30013020302537540051323232323298009bad302e0019bad302e0049bad302e003981700124444b30013033005899806181900489980c0008054590300c0b8004c0b4004c0b0004c0ac004c098dd5001459024489660026040604a6ea800a264646464646530013758605e003375a605e00b375a605e009375a605e007302f00248888966002606a00d13300e303400b13301a001132332259800981c001c03e2c81a8dd7181a8009bae303500630350058b20641817800981700098168009816000981580098131baa0028b2048912cc004c080c094dd500144c8c8c8c8ca60026eb0c0b80066eb4c0b80126eb4c0b800e605c00491112cc004c0cc01626601860640122660300022646644b30013036003806c590331bae3033001375c606600a60660091640c0302e001302d001302c001302b001302637540051640909111119912cc004c094006264b300130300018992cc004c09cc0b0dd5000c4c8c8c8cc8966002606c00713259800981698191baa00189919191919194c004c0f00066eb0c0f00166eb4c0f00126eb4c0f000e6078004911112cc004c10801a26605c6eb0c10402c8966002005133030006225980080144cc0940144cc094024566002607860826ea80462646464b3001304900289919912cc004c10800a264b3001304d00189981c9bac304c00122598008014012266046609c00426002609e00482622c8250c120dd5001c566002606e005132598009826800c4cc0e4dd61826000912cc00400a009133023304e00213001304f002413116412860906ea800e2b300130410028992cc004c1340062660726eb0c1300048966002005004899812182700109800982780120988b209430483754007159800982180144c8c8c966002609e00513303b3758609c00644b30010028acc004c11cc130dd5001c4c8c8cc896600260aa00700a8b20a4375a60a40026eb4c148008c148004c134dd5001c5904b44cc098c1400084c004c14400904e45904c1826800982680098241baa0038acc004c0d800a264b3001304d00189981c9bac304c0012259800801401226604a609c00426002609e00482622c8250c120dd5001c566002606a005132598009826800c4cc0e4dd61826000912cc00400a009133025304e00213001304f002413116412860906ea800e2b300130340028992cc004c1340062660726eb0c1300048966002005004899813182700109800982780120988b20943048375400715980099b874803800a264b3001304d00189981c9bac304c0012259800801401226604c609c00426002609e00482622c8250c120dd5001c56600266e1d20100028acc004c120dd5001c0062c824a2c8231046208c41188231046208c41188230c114dd500089981300109981b00b112cc00400a03f1323322598009827800c4cc0a8c1380044c010c13c0162c8260dd7182600098268009bac304b00241246090007164118608e002608e00260846ea80462c82022646004608e0066eb4c11400904344c8c008c11400cdd6982180120828b207e181e000981d800981d000981c800981c00098199baa0018b206230350058b206637586066002606600460660026064002605a6ea80062c8158c0bc0062c8168c0acdd5003c5660026034003132598009818000c4c966002604e60586ea80062646464b300130340028992cc004c0acc0c0dd5000c4c8c966002606e00313259800981718199baa00189919191919194c004dd6981e800cdd6181e802cdd6181e8024dd6981e801cdd6981e801244444b300130430068992cc004c0e8c0fcdd5000c4c8c8cc896600260900071323322598009825801c4c8cc8966002609c00713302a304d01813303a01b2259800801408e2646644b300130530018998171829000898021829802c590501bae305000130510013758609e004826a2c8258dd698258009bad304b00c304b00b8b2090375a60900026eb4c120028c1200262c8228dd698228009bad30450023045001304037540031640f86084017164100303d001303c001303b001303a0013039001303437540031640c8606c0051640d0606c00260626ea80062c8178c0cc00e2c8188dd61819000981900098169baa0018b2056302f0018b205a302b375400f1640a48148566002604660506ea801633001302c3029375400b222598008014530103d87a80008acc004c0980062603c6605c605e00497ae08cc00400e6060005337000029000a00640a8816a4603260526ea8c0b4c8cc004004008896600200314bd708103d87a80008101800044c8cc89660033001301e302e375460640074a14a2816a26606330014a14c103d87a8000a60103d879800040b4660626e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0d000400e2946266004004606a002817903244cc0c6600294298103d87a8000a60103d879800040b4660626e9c0092f5c11330319800a51a60103d87a8000a60103d879800040b4660626e9ccc0c4dd400080125eb8102d205a3758606060620026eb4c0c0008cc008008c0c000502d488c8cc00400400c896600200314bd7044cc896600266ebcc0c8c0bcdd5181918179baa3020302f37540046032660626ea40152f5c113303100233004004001899802002000a05a3030001303100140b92302d302e302e302e302e001912cc0040062900044cdc02400466004004605e00281624464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803205e899802802981a802205e375c605c0026eacc0bc004c0c400502f0a5eb7bdb18244b30013025302a375400513232598009818801400e2c8170dd6981780098159baa0028b205291816981718171817000cdc0a40012232330010010032259800800c52f5c113302f374e600660600026600400460620028172444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c0cc0066eb4c0d00066600600660700048048c0d80050341bab3031003375c605c0026600600660660046062002817a44646600200200644b30010018a508acc004cdd798180009ba70038a518998010011818800a05640b92259800981298151baa0028991919194c004c0c800660640073032002488966002606c009133014303500713300f002132598009816800c4c8ca60026eb4c0e00066072003375a60700049112cc004c0f000a264646644b3001304000380945903d1bae303d001375c607a004607a0026eb0c0ec00a2c81c8607000260666ea800a2b30013022001899194c004dd6981c000cc0e40066eb4c0e000922259800981e00144c8c8cc896600260800070128b207a375c607a0026eb8c0f4008c0f4004dd6181d8014590390c0e0004c0ccdd500145660026058003132323298009bad3039001981d000cdd6981c801cdd6981c80124444b3001303e0038991919912cc004c10800e0291640fc6eb8c0fc004dd7181f801181f8009bac303d0038b2076181c800981c00098199baa0028acc004c0b80062646644b3001303a0018991919912cc004c0f800e0211640ec6eb8c0ec004dd7181d801181d8009bac30390018b206e375a606e002607000260666ea800a2b300130210018991919912cc004c0ec00e01b1640e06eb4c0e0004dd6981c001181c00098199baa0028acc004c08000626464653001375a6072003375a6072007375a60720049112cc004c0f401201f1640e83039001303800130333754005159800980f800c4c8c966002607200500b8b206c375a606e00260666ea800a2b30013370e9007000c4c8c966002607200500b8b206c375a606e00260666ea800a2c8189031206240c48189031206240c460626ea80062c819860640026062002606000260566ea800a2c814a4605a605c605c605c605c605c003222329800800c01200680088896600200510018cc00400e6066005330043032002001400c81826e21200048888888888888888a6002607a60746ea8046607a60746ea8c0acc0e8dd5008cc040042444b300130120028994c004006009003a40008008888966002007159800801440062c8212330010049822801cc11400a6644b30013007002899b80003375a606860866ea800a2c8208c11000cdd69822001200841091640ed300c00c91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c820a26600a00a608e0088208dd718200009bad3041001304300141046601e0080062900024444446530012232330010010022259800800c52f5c11330473259800982018229baa0018982498231baa0018b208833005004375a60900026600400460920028232444464b30013040304537540031325980099baf304a304737546094608e6ea8c0e0c11cdd50009818998249ba90054bd704566002606d300137566070608e6ea8c0e0c11cdd5000c01691108747265617375727900402113259800982098239baa0018991980c8008992cc004c110c124dd5000c4c96600266ebcc138c12cdd5182718259baa00130353304d375201297ae08acc004c0ea60026eacc0f0c12cdd5000c02691108747265617375727900403113259800982298259baa0018991980e8008acc004cdd7980e18269baa0034c0103d87a800089982780299827800998279ba6329800800cdd5981f98271baa00499198008009bab3040304f37546080609e6ea8024896600200314bd6f7b63044c8cc14ccdd818280009ba63233001001375660a400444b30010018a5eb7bdb182264660ac66ec0c14c004dd418111bad3054001330030033058002305600141506600600660aa00460a600282890011112cc00400a2003132332298008034c15c016646600200200a44b300100189982b99bb037520086e9800d2f5bded8c113298009bae30550019bab3056001982d0012444b30013372001000713305b337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820b6880144cc170cdd81ba9009374c00200482c0ca6002003008801a0022225980080144006264664530010069831802cc8cc0040040148966002003133063337606ea4010dd4001a5eb7bdb1822653001375c60c2003375a60c4003306600248896600266e4002000e2660ce66ec0dd48041ba80070058acc004cdc7804001c4c96600260c0003100289983419bb037520126ea000400906419b8000700289983399bb037520066ea0008cc01801800506320c61832000a0c440186eb8c170004dd6982e800982f80120ba89982d99bb037520066e98008cc01801800505720ae182c000a0ac40186eb8c140004dd59828800982980120a24bd7045904b182798261baa0018b20943036304b3754003164125164124609a60946ea80062c8240cc024dd6181a18249baa008005304b304837540031641186064608e6ea8c0e0c11cdd5000c59045459045182498231baa0018b20883300537586090608a6ea801000a60806ea801922259800981f800c6600260886ea80264609060926092609260926092609260920032259800982018229baa0028991919194c004dd69826800cdd698268024dd69826801cdd6982680124444b30013052005804c5904f0c134004c130004c12c004c118dd5001459044488c8ca60026eb4c12c0066eb4c12cc1300066eb4c12c00922259800acc004cdc4800a400114a313371200400c824a29000456600266e2401800e20031323370666e00cdc019b820023370200600e002900080099b810020034124824860960026094608c6ea800a444466e24004ca60020030058025200040044444b30010038acc00400a2003164135198008024c14000e60a000532332259800982418271baa0028991980d0008acc004cdd7981198281baa00230533050375400915980099baf30413050375400260a660a06ea800a264b3001304a3050375400313232325980099b87375a60ae0066eb4c114c150dd5003456600266e1cdd6982b8011bad303f3054375400d15980099b87375a60ae0026eb4c08cc150dd5003456600266ebcc15cc160004c074c150dd500344cdc0004cc004dd59822982a1baa304530543754011375c60ae01d375c60ae60b001c80aa2c82922c82922c82922c8290c15c004c158004c144dd5000c5904f181d98281baa0018b209c8b209c3052304f37540051641346070609a6ea8c0f8c134dd500098280019827801a008413522222232325980099b8700100489919192cc004cdc399b81375a60a4609e6ea8c148008dd6982918279baa30520030048992cc00660020054a3222259800800c56600266e3c0112201008a5189980f8029982b1ba900433056375200697ae0414914a0829101c44cdc4803cc004dd6182998281baa303b3050375401948002446464b300198009827000d28528a0a48acc004c06c006266e0000ccdc199b82001375a608a60a86ea8010dd6981f982a1baa0048b20a48801a0a49800802cdd7182b000cdd7182b182b800a028375860aa60a46ea800901845904e1980e1bac3052304f37546074609e6ea802c8dd6182998281baa0018b209a375660a260a400260a200330010079bae304f304c3754607a60986ea802200d0054029164128b30013045300d0018a40011598009827800c4c96600266e3cdd71825800a4504555344720089bad304c0018b2094304e0018b20984124660366eacc074c128dd50029bae303b304a3754607660946ea801a606a60886ea808a6e252000488888888c8ca600330010019bac3051304e375402923004375a6080609e6ea800501166002003480024466e00004dd6981d98281baa002405923259800982518279baa001899912cc004c130c144dd5000c56600266e24cdc09bad30553052375400200490405d5b81c400a2c82822c8280dd6982998281baa0013259800982018281baa0018982199829982a18289baa0014bd7045300103d87a8000413c60a660a06ea8c104c140dd5180598281baa0028b209c3259800981f98279baa0018982119829182998281baa0014bd7045300103d87a8000413860a4609e6ea8c148c13cdd5180518279baa0019828982900524444b300159800980c8024528c6600260980074a14a2828105044c966002609a60a46ea8006330013298009980a0009bad305730543754005375c608a60a86ea8c114c150dd50054dd71811982a1baa3045305437540149112cc004c144c158dd5001c4c96600266ebcc16cc160dd5182d982c1baa3049305837540026084660b46ea40092f5c11598009823cc004dd59824982c1baa304930583754003002a4410d7374616b696e675f7661756c74004065132598009829182c1baa0018991980a00089982e1ba898009bab304b305a3754609660b46ea800e00b4881045553447200406c660b8002660b800697ae0305c3059375400316415c608660b06ea8c124c160dd5000c59056459056182d182b9baa0038b20aa1bac30563053375409198008244dd7182b18299baa304430533754013375a607c60a66ea80666eb4c088c14cdd500ca022acc004c068dd6982218299baa0028acc004c020dd6982b18299baa0028acc004cdc49bad3056305337540046eb4c110c14cdd500144c8cc158dd40009982b1ba83370200a00297ae03370866e08010dd6982b18299baa002375a608860a66ea800a2c828a2c828a2c828a603860a66ea806522229800982d182d8024dd6982d0014dd6982d182d8012444b300130543059375400913233225980099b87337020046eb4c1800280162b30013370e6eb4c180c174dd50009bad3060305d375400d159800992cc004c04c03e26464b30013370e6eb4c144c180dd50021bad30630028acc004cdc39bad304b306037540086eb4c18c006266e1cdd6981798301baa004375a60c660c800314a082f2294105e1831800acc0056600266e24dd69827982f1baa00748002266e2400520008a50417114bd7081010000810100008101000044c96600266e2000400a2660c26ea0cdc01980c004000803998309ba800133061375000497ae08a5eb85010000810100008101000020ba300e053417115980099b87375a609e60bc6ea8008dd69827982f1baa0078acc004cdc39bad3049305e37540046eb4c124c178dd5003c56600266e1cdd69816982f1baa002375a605a60bc6ea801e2b30013025375a609e60bc6ea801e2602666e0400ccc05c01cc03814e294505c45905c45905c45905c20b8980080852000912cc004cdc40009bad302e305f37540051375a605c60be6ea800a200282e90254566002602401d159800cc004cc0c4dd61830182e9baa052375c609060ba6ea8c138c174dd5009c042660be609c60ba6ea8c138c174dd50099982fa61054455534472004bd7052000405515980099b8900432330010013758609260bc6ea814c896600200314800226644b30013375e60c860c26ea8008c148c184dd5182618309baa017899b8000198009bab305230613754005375c60a460c26ea8c148c184dd500bd220104555344720040891001417c60c40026600400460c60028302330010138294dd69824182e9baa0239bad302c305d375404700e807a0288b20b68b20b68acc0066002660626eb0c180c174dd50291bae3048305d3754609c60ba6ea804e0213305f304e305d3754609c60ba6ea804ccc17d3001054455534472004bd704c0ac0110154660020270529bad3048305d3754047375a605860ba6ea808e01d00f405116416c82da2c82da2c82da2c82d8dd6982f000982f182f800994c004cc06c004dd6982f182d9baa0059bae304c305b3754609860b66ea80466eb8c0a8c16cdd51826182d9baa01148896600260b060ba6ea800e264b30013375e60c460be6ea8c188c17cdd50009824998309ba90024bd704566002609d3001375660a060be6ea800600548810d7374616b696e675f7661756c7400408113259800982c982f9baa0018991980d8008acc004cdd7981818309baa0034c0103d87a80008998319ba898009bab305230613754007005a4410455534472004088660c6002660c600697ae08b20be306330603754003164178609460be6ea80062c82ea2c82e8c184c178dd5001c5905c0dd61822982d1baa04f8b20b022c8288c094c148dd500c4590500cc030004dd6181f18269baa0133758609e0108acc004c0f4006330012259800800c52000899b8048008cc008008c1280050474888ca6002003004801a00222259800801456600200314a314a0825a2b30010018a508acc004cc010c134008dd69826800c66002007304e0029827000a0068a504120825904b488cdc199b82002375a6062608c6ea8004dd6981b98231baa001998019bac3047304437540126eb0c0d4c110dd50054c0d4c110dd501124444464b3001332298009919800800801912cc00400629422b30013375e60a2609c6ea8c144c138dd5181f98271baa3051001303833050375200697ae08a518998010011829000a098413d4a14a28250dd6182698251baa03f375c603260946ea8c0ecc128dd500145660026644b30013370e6006004600600b1598009810800c6600200500191192cc004c124c138dd5000c4c8c966002609860a06ea8006264b30013370e6eb4c154004dd6982198291baa003899baf30553056001301b3052375400714a08280c144dd5000c528209e303b3050375464b3001304a305037540031323301c00115980099baf30253052375400660aa60a46ea801a2b30013375e608660a46ea8004c154c148dd5001c40062c82822c8280c150c144dd5000c5904f181d98281baa30413050375400860a4609e6ea80062c8268cc03801c00500745904a45904a1980f1bac304d304a375407e6eb8c0d4c128dd5181d98251baa0023758607660946ea80422b300198009bac3035304a375407f3758609a60946ea80426eb0c134c128dd5181a98251baa002488a600200d00291192cc004c128c13cdd5000c6600260a660a06ea80066eb0c064c140dd5001cc8cc0e40148cdd7982a98291baa001374e0046eb0c064c140dd5001a444b3001304d3052375400315980099baf30563053375400660ac60a66ea8c158c14cdd5003456600266ebcc0f8c14cdd5001982218299baa30563053375400d13370f30013756608860a66ea800e6eb8c15800a6eb8c158c15c00901419806992cc004cdc4000a4001130220018800a0a4375a608860a66ea8018c158c14cdd5000c52820a28a5041451641448b209c3300f0050014020898224c00660020073758609a60946ea80424b30013012375a607860966ea80062608a6eb4c0d8c12cdd5000c528209240353301b3756603a60946ea80fcdd7181d98251baa303b304a3754005980081fcdd7182698251baa303b304a3754005375a606a60946ea80426eb4c064c128dd500820109980b9bac304d304a3754606a60946ea80088dd6182718259baa00148888c8cc89660033001002a5191112cc0040062b30013371e008911008a518998100041982b9ba900433057375200697ae0414d14a0829901d456600266e1ccdc09bad30543051375460a80066eb4c150c144dd5182a002800c4c96600266e1e60026eb0c154c148dd5181e98291baa00aa400122332259800cc004c14000694294505444c96600266e24cc0440040166002011375c60b4007375c60b460b600680c2266e000100062c82a8cdc1000802c400d0541bac30573054375400465300100ea4001225980099baf3020305737540046e9c00e266e00004dd69824182b9baa0028800a0aa40746eb0c15cc150dd500120343370200401110028b20a059800980c003c520018a4004827a2c827a2c8278dd598291829800acc004c124c04401229000456600260a60091325980099b8f375c609e00291104555344720089bad30500018b209c30520048b20a0413460a40048b20908b20908b20903005005452820844108225980099b88001480022980103d87a8000899803001000a08022c8138c0a0dd50028c8c8c966002603e60486ea80062646644b3001302c0018992cc004c08cc0a0dd5000c4c8c8c8cc8966002606400713259800981498171baa0018991919191919191919194c004c0f00066078013303c008981e003cc0f001a607800b303c004981e001cc0f000922222222259800982300544cc090c11404c4cc0900204cc09001c4cc0900184cc0900144cc0900104cc09000c4cc0900084cc0900044cc090024566002607860826ea8056264646464653001375c6094003304b0019bae304a0059bae304a0049bae304a0039bae304a00248888896600260a200b1330333050005159800982398261baa02189919192cc004c15000a2660806eb0c14c00c8966002005133033003102e8992cc004c134c148dd5000c4c8c8c8cc896600260b8007132323322598009830001c4c02cc1800322c82e8dd7182e8009bae305d002305d001375860b600b1641646eb4c164004dd6982c801182c800982c00098299baa0018b20a23055002414d16414460a400260a4002609a6ea80862c825a2c8270609400260920026090002608e00260846ea80562c82022c821860780026076002607400260720026070002606e002606c002606a0026068002605e6ea80062c8168c0c40162c8178c0bc004c0bc008c0bc004c0b8004c0a4dd5000c590271815800c590291bae3029001302a0013025375400316408c64b3001301f3024375400313259800980f98129baa0018981498131baa0018b2048301030253754602c604a6ea8c0a0c094dd5000c59023198061bac3015302437540324646600200260066eacc05cc098dd5180b98131baa0022259800800c528456600266e3cdd718150008124528c4cc008008c0ac005025205030010012259800800c52f5c113302630233027001330020023028001409444b3001301e30233754005132323259800981580144cc020c0a800c4c966002604400315980098141baa002802c590294566002602e00313232598009817001401e2c8158dd7181600098141baa0028acc004c08400626464b3001302e002803c5902b181600098141baa0028b204c40988130c098dd5000c590281814800981480098121baa0028b204411598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d1365640081", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolManagementProtocolManagementElse { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594ebd010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a4912657870656374205b5d203d206c6973745f6200168a99801a491d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a4926657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a49d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f64617461001648888888888888966003300130133754033370e90034dc3a4001370e9002244446465300130183754003301c006980e0012444b300130060038cc004c07cc070dd50024dd2a4001230203021001911919800800801911980180098010014dc3a4005370e90044dc3a4015370e900648c080c084c0840066e9520024888888888a600244646600200200644b30010018a6103d87a80008992cc004c0100062601c6605a00297ae089980180198178012050302d00140ad222329800800c0120068008888c966002603000313259800800c01a264b3001001803c01e00f0078992cc004c0d000e00b00840c46eb80050341818800a05e302d37540071598009806800c4c9660020030068992cc00400600f0078992cc004c0d000e26602200244b3001002803c4c96600200319800805400626004606e006805201700b805c02d038181a801206680420623758003007803a068303100140bc605a6ea800e2b300130170018992cc00400600d13259800800c01e00f13259800981a001c4cc04400489660020050078992cc0040063300100a800c4c008c0dc00d00a402e01700b805a070303500240cd00840c46eb000600f00740d060620028178c0b4dd5001c566002603200313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b3001303700389980a000912cc00400a01513259800800c6600201b00189801181d001a01a807403a01d00e40ec607000481b201681a0dd6000c02a01481b8c0d00050321bad0013033002803a068303100140bc605a6ea800e2b3001300c0018992cc00400600d13259800800c01e00f0078992cc004c0d000e00b00840c46eb400600e81a0c0c400502f18169baa0038acc004c02c006264b300100180344c966002003007803c01e264b30013034003802c0210311bad001803a068303100140bc605a6ea800e2b3001300a0018992cc00400600d13259800800c01e00f007803c4c96600260680070058042062375c00281a0c0c400502f18169baa003802a05440a8815102a205440a88150c0acdd50014888c966002602a00313259800800c00e264b300100180240120090048992cc004c0c400e00d00540b86eb80050311817000a058302a37540091598009805000c56600260546ea801200700240ad002409c8138c0a0dd5001c888c966002602a00313259800800c00e264b300100180240120090048992cc004c0c400e00d00540b86eb80050311817000a058302a37540091598009805000c4c9660020030038992cc0040060090048024012264b30013031003803401502e1bae00140c4605c0028160c0a8dd50024009027204e3028375400691111919192cc0040063300122259800980d98179baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130380028cc00400e264b300130200018acc004c0d4dd5001401e00c81b22b300130150018992cc00400600f13259800800c02201100880444c966002607800700a804a072375c00281e0c0e4005037181a9baa0028acc004c07c006264b3001001803c4c96600260760050098042070303900140dc606a6ea800a00c8191032206430333754003005402900540d5005802c01600a81c8c0d8005034181b001400e007003801a06e303400140c860606ea800e002816a444b3001301b302f375400713259800800c00a264b30010018992cc00400600913259800800c4c966002606a00315980099b8948010c0d000600d13259800981d00244c9660026044003159800981b9baa006804c0210384566002602e00313259800800c026264b3001001805402a01513259800981f001c03201681d8dd6800c02903e181d800a0723037375400d1598009810800c566002606e6ea801a01300840e100840d081a1034181a9baa005803a06e3015303400140c900640d86ea800600b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4889660026036605e6ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981d001c02200e81b8dd6800c01903a181b800a06a375c002606c00481b8c0d000503218181baa003800a05a911192cc004c070006264b3001001801c4c9660020030048024012264b3001303800380340150351bad0018022070303500140cc60626ea80122b300130110018acc004c0c4dd5002400e0048192004817102e18179baa0039112cc004c06cc0bcdd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b3001001803c01e00f0078992cc004c0ec00e2b300130223036375400d13259800800c026264b3001001805402a01500a899912cc00400601913259800800c03601b00d806c4c966002608200719800805403e01c80aa01c81f0dd7000a082303e00140f06eb8004c0f400903e181d800a0723037375400d00840d100840e06eb800503b181c000a06c3038002802c01600b00540e4606c00281a0c0d800a007003801c00d037181a000a0643030375400700140b5302c37540029111114c004889660026042606a6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c10400a330010068cc0040060130084039008404100840f900880440220108210c0fc00503d1bad001303e002802a07e303c00140e86078005003801c00e00681e8c0e8005038181b1baa003800a0669112cc004c084c0d4dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b132598009823801c6600201919800802403e01c80a201c80b201c8220dd6800c0350471822000a0843044002805c02e01700b411460840028200dd680098208014021042181f800a07a375a002607c00500540fc607800281d0c0f000a007003801c00d03d181d000a0703036375400700140cd222598009810981a9baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002609400719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c966002609e00701780b2098375c0028278c13000504a1bae001304b00241306092002823a02280ba02280ca0228238dd6000c0420208250c11c0050451823801403a01d00e80720903045001410c6eb4004c11000a0168228c1080050401bad00130410028042084303f00140f46eb4004c0f800a00a81f8c0f000503a181e001400e007003801a07a303a00140e0606c6ea800e002819a444b300130213035375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c11c00e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c13000e02901341246eb800504c1824800a08e375c00260900048248c1180050444039014403901640390441bac001806c0350471822000a0843044002805c02e01700b411460840028200dd680098208014021042181f800a07a375a002607c00500540fc607800281d0c0f000a007003801c00d03d181d000a0703036375400700140cd22232598009811000c4c9660020030038992cc0040062b3001303d0028cc00400600b004402900440e9004802401200881f0c0ec005039181b9baa0048acc004c05c006264b3001001801c4c966002003159800981e8014566002604860706ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c10400a330010038cc004006013008403d008403d00840f900880440220108210c0fc00503d181f801401a00d0068032080303d00140ec60726ea800600881b200881d2009004802401103e181d800a0723037375400900240d081a0c0d4dd5001c566002603c60646ea801e3300130363033375400f2225980080145300103d87a80008acc004c0840062603266070607200497ae08cc00400e6074005337000029000a00640cc81ba4602860666ea8c0dcc8cc004004008896600200314bd708103d87a80008101800044c8cc8966003300130193038375460780074a14a281b226607730014a14c103d87a8000a60103d879800040d8660766e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0f800400e2946266004004607e00281c103c44cc0ee600294298103d87a8000a60103d879800040d8660766e9c0092f5c113303b9800a51a60103d87a8000a60103d879800040d8660766e9ccc0ecdd400080125eb81036206c3758607460760026eb4c0e8008cc008008c0e8005037488c8cc00400400c896600200314bd7044cc896600266ebcc0f0c0e4dd5181e181c9baa301b303937540046028660766ea40152f5c113303b00233004004001899802002000a06c303a001303b00140e1230373038303830383038001912cc0040062900044cdc02400466004004607200281b24464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e00510018032070899802802981f8022070375c60700026eacc0e4004c0ec0050390a5eb7bdb182444b300130213035375400713259800800c00a264b3001001801c00e00713259800981e801c01600881d0dd6800c00d03d181d000a0703036375400700140cd230373038303830380019b814800244646600200200644b30010018a5eb822660726e9cc00cc0e8004cc008008c0ec0050384888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd7181e800cdd6981f000ccc00c00cc1080090091820000a07c375660760066eb8c0e0004cc00c00cc0f4008c0ec005039488c8cc00400400c896600200314a115980099baf303a001374e00714a3133002002303b00140d081c2444b300130213035375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc004006264b300100180444c966002608400519800803c6600200b132598009815000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c13000e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c14400e03301841386eb80050511827000a098375c002609a0048270c12c005049404d0491bac001809404904c1824800a08e375a002609000500f4124608c0028220dd6800982280140310461821800a082303f3754009159800980f800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc0040060250128992cc004c13000e2b3001001809c4c96600200301480a40520291332259800800c05a264b300100180bc05e02f0178992cc004c14400e03301841386eb80050511827000a098375c002609a0048270c12c005049404d0491bac001809404904c1824800a08e375a002609000500f4124608c0028220dd6800982280140310461821800a082303f37540091598009814800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc00400602501280944cc89660020030148992cc00400602b0158992cc004c13c00e2b300100180b44c96600200301780bc05e02f1332259800800c066264b300100180d406a03501a8992cc004c15000e03901b41446eb80050541828800a09e375c00260a00048288c13800504c405904c1bac00180ac05504f1826000a094375a0026096005012413060920028238dd68009824001403d0491823000a088375a002608a00500c411860860028208c0fcdd50024566002605600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e264b300130490038acc00400602113259800800c046023011808c4cc89660020030138992cc00400602901480a4052264b3001304e00380b405504b1bae001413860960028248dd7000982500120963048001411901041186eb000601f00f4124608c0028220dd6800982280140310461821800a082303f3754009159800980f000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4c9660026092007011808208c375a00300f4124608c0028220dd6800982280140310461821800a082303f3754009159800980e800c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f807c4cc89660020030118992cc00400602501280944c9660026098007014809a092375a003012413060920028238dd68009824001403d0491823000a088375a002608a00500c411860860028208c0fcdd50024566002603800313259800800c02e264b30010018064032019132598009823001c03a01a8218dd6800c0310461821800a082303f375400915980099b8748038006264b3001001805c4c96600200300c8064032264b3001304600380740350431bad001806208c30430014104607e6ea801201481e103c207840f081e103c207840f0607a6ea800e012808a01280ba01281f8c10000503e1820001401e00f007803a082303e00140f0607c005005802c01600a81f8c0f000503a181e001400e007003801a07a303a00140e0606c6ea800e002819a4606e60706070607060706070003222329800800c01200680088896600200510018cc00400e607a00533004303c002001400c81d26e21200048888888888888888a6002608e60886ea8046608e60886ea8c098c110dd5008cc040042444b300130120028994c004006009003a400080088889660020071598008014400608a82622b3001002822466002009304f00398278014cc8966002600e0051337000066eb4c0bcc134dd5001454cc12d2411a6578706563742076616c69646174696f6e28726571756573742900164128609c0066eb4c13800900420984131153304549012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900164111300c00c91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c825226600a00a60a20088250dd718250009bad304b001304d001412c6601e0080062900024444446530012232330010010022259800800c52f5c11330513259800981d98279baa0018982998281baa0018a998272493965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641346600a0086eb4c148004cc008008c14c00505048888c9660026076609e6ea8006264b30013375e60a860a26ea8c150c144dd5181998289baa001302c33053375200a97ae08acc004c0c660026eacc0ccc144dd5181998289baa001802d22108747265617375727900402113259800981e18289baa0018992cc004006330010018992cc004c0fcc14cdd5000c4c96600266ebcc160c154dd5182c182a9baa001303033057375201297ae08acc004c0d660026eacc0dcc154dd5000c0269101087472656173757279004031132598009820182a9baa0018992cc004006330010018acc004cdd7980e182b9baa0034c103d87a800089982c8029982c8009982c9ba6329800800cdd5981d182c1baa00499198008009bab303b30593754607660b26ea8024896600200314bd6f7b63044c8cc174cdd8182d0009ba63233001001375660b800444b30010018a5eb7bdb182264660c066ec0c174004dd418111bad305e001330030033062002306000141786600600660be00460ba00282d90011112cc00400a2003132332298008034c184016646600200200a44b300100189983099bb037520086e9800d2f5bded8c113298009bae305f0019bab306000198320012444b300133720010007133065337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820ca880144cc198cdd81ba9009374c0020048308ca6002003008801a0022225980080144006264664530010069836802cc8cc004004014896600200313306d337606ea4010dd4001a5eb7bdb1822653001375c60d6003375a60d8003307000248896600266e4002000e2660e266ec0dd48041ba80070058acc004cdc7804001c4c96600260b6003100289983919bb037520126ea000400906d19b8000700289983899bb037520066ea0008cc01801800506c20d81837000a0d840186eb8c198004dd69833800983480120ce89983299bb037520066e98008cc01801800506020c01831000a0c040186eb8c168004dd5982d800982e80120b64bd704135054413101d413209904c82620b8305930563754003153305449012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016414c606260aa6ea80062a660a6920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164149153305349143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016414860ae60a86ea80062a660a492013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f6964782900164144660126eb0c0bcc14cdd5004002c11d019411e08f047823a0b0305530523754003153305049013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016413c605a60a26ea8c0ccc144dd5000c54cc13d2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164139153304f4914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016413860a660a06ea80062a6609c92013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641346600a6eb0c148c13cdd50020014c128dd50032444b3001303a0018cc004c138dd5004c8c148c14cc14cc14cc14cc14cc14cc14c006444b3001303c3050375400713259800800c00a264b3001001801c00e0071332259800800c016264b3001001803401a00d1332259800800c022264b3001001804c0260131332259800800c02e264b30010018064032019132598009830801c03a01a82f0dd6800c031061182f000a0b8375a00260ba005009417860b600282c8dd6800982d001401905b182c000a0ac375a00260ae005003416060aa0028298c144dd5001c00504e488c8ca60026eb4c1540066eb4c154c1580066eb4c15400922259800acc004cdc4800a400114a313371200400c829229000456600266e2401800e20031323370666e00cdc019b820023370200600e002900080099b810020034148829060aa00260a860a06ea800a444466e24004ca60020030058025200040044444b30010038acc00400a2003050415d159800801413e33001004982d001cc16800a646644b300130433058375400513259800800c6600200315980099baf3023305a375400460ba60b46ea80122b30013375e607860b46ea8004c174c168dd500144c966002608a60b46ea80062646464b30013370e6eb4c18400cdd69820182f1baa0068acc004cdc39bad3061002375a607460bc6ea801a2b30013370e6eb4c184004dd69811982f1baa0068acc004cdd798309831000980e982f1baa006899b8000998009bab3040305e3754608060bc6ea80226eb8c18403a6eb8c184c188039015454cc17124012d65787065637420726573657276655f6173736574203d3d20726571756573742e726573657276655f61737365740016416d153305c4912d65787065637420646966667573696f6e5f656e64203d3d20726571756573742e646966667573696f6e5f656e640016416d153305c4911d657870656374207969656c64203d3d20726571756573742e7969656c640016416d153305c49122657870656374207072696e636970616c203d3d20726571756573742e616d6f756e740016416c60c200260c000260b66ea80062a660b29201184578706563746564204f4465706f73697420616374696f6e00164160606c60b46ea80062a660b092012f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e0016415d15330584912f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e63650016415d0524069052829414a0a482f8c170c164dd500141410561819982b9baa30393057375400260b400660b2006802105720ae91111119192cc004cdc380080244c8c8c96600266e1ccdc09bad305c3059375460b80046eb4c170c164dd5182e00180244c9660033001002a5191112cc0040062b30013371e008911008a5189980f802998301ba900433060375200697ae0416d14a082d901c44cdc4803cc004dd6182e982d1baa3036305a375401948002446464b300198009824800d28528a0b68acc004c06c006266e0000ccdc199b82001375a608060bc6ea8010dd6981d182f1baa0048a9982e249176578706563742061637475616c5f64656c7461203e20300016416d1003416d30010059bae30600019bae3060306100140506eb0c17cc170dd5001203082620ae3301c375860b860b26ea8c0d4c164dd500591bac305d305a375400304c41586eacc16cc170004c16c006600200f375c60b260ac6ea8c0e0c158dd5004401a00a80522a660a892123657870656374206d696e745f616d6f756e74203d3d2065787065637465645f6d696e740016414cb30013040300d0018a4001159800800c116264b3001305a0028992cc004cdc79bae305600248810455534472008800c1210541bad305600182320ae305800141588290cc06cdd5980e982a1baa005375c606c60a86ea8c0d8c150dd50034c0c0c138dd5011cdc4a40009111111119194c0066002003375860b660b06ea8052460086eb4c0ecc164dd5000a022cc0040069000488cdc00009bad3036305a375400480b2464b300130453059375400313322598009823982d9baa0018acc004cdc499b81375a60be60b86ea80040092080bab7038801454cc169240129657870656374206869202d206c6f203c3d206d61785f646966667573696f6e5f726174655f7370616e00164165153305a4912865787065637420536f6d6528686929203d206765745f74785f75707065725f626f756e6428747829001641646eb4c174c168dd5000992cc004c0ecc168dd5000c4c0f8cc174c178c16cdd5000a5eb822980103d87a8000416060ba60b46ea8c0f0c168dd51805982d1baa0028a9982c2492865787065637420536f6d65286c6f29203d206765745f74785f6c6f7765725f626f756e64287478290016415c64b3001303a305937540031303d3305c305d305a375400297ae08a6103d87a8000415c60b860b26ea8c170c164dd51805182c9baa001982d982e00524444b300159800980c8024528c66002608e0074a14a282c905944c966002609060b86ea8006330013298009980a0009bad3061305e3754005375c608060bc6ea8c100c178dd50054dd71811982f1baa3040305e37540149112cc004c130c180dd5001c4c96600266ebcc194c188dd5183298311baa304430623754002607a660c86ea40092f5c115980098214c004dd5982218311baa304430623754003002a4410d7374616b696e675f7661756c7400406513259800982698311baa0018992cc004006330010018998331ba898009bab304630643754608c60c86ea800e00b489045553447200406c660cc002660cc00697ae082fa02882fc17e0bf05f41a460cc60c66ea80060b48300c0f8c188dd5182218311baa0018a998302481566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d15330604914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea800e2a660be92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f6964782900164178375860c060ba6ea810f30010439bae3060305d3754607e60ba6ea80266eb4c0e4c174dd500ccdd69811182e9baa019404559800980d1bad303f305d375400515980098041bad3060305d375400515980099b89375a60c060ba6ea8008dd6981f982e9baa002899198301ba800133060375066e040140052f5c066e10cdc10021bad3060305d37540046eb4c0fcc174dd5001454cc16d24012b65787065637420616c7068612e6e756d657261746f72203c3d20616c7068612e64656e6f6d696e61746f7200164169153305b4911b65787065637420616c7068612e6e756d657261746f72203e3d203000164169153305b4911c65787065637420616c7068612e64656e6f6d696e61746f72203e203000164169301c305d375403291114c004c190c1940126eb4c19000a6eb4c190c19400922259800982798319baa00489919912cc004cdc399b81002375a60d401400b15980099b87375a60d460ce6ea8004dd6983518339baa0068acc004c966002602601f132325980099b87375a609860d46ea8010dd69836801456600266e1cdd6982318351baa004375a60da00313370e6eb4c0bcc1a8dd50021bad306d306e0018a50419d14a08338c1b400566002b3001337126eb4c128c1a0dd5003a40011337120029000452820ca8a5eb841010000810100008101000044c96600266e2000400a2660d66ea0cdc01980c004000803998359ba80013306b375000497ae08a5eb85010000810100008101000020cc300e04e419515980099b87375a609460d06ea8008dd6982518341baa0078acc004cdc39bad3044306837540046eb4c110c1a0dd5003c56600266e1cdd6981698341baa002375a605a60d06ea801e2b30013025375a609460d06ea801e2602666e0400ccc05c01cc03813a2945065454cc199240138657870656374207661756c745f6f75742e646966667573696f6e5f656e64203d3d207661756c745f696e2e646966667573696f6e5f656e640016419515330664913c657870656374207661756c745f6f75742e646966667573696f6e5f7374617274203d3d207661756c745f696e2e646966667573696f6e5f737461727400164195153306649138657870656374207661756c745f6f75742e70656e64696e675f7969656c64203d3d207661756c745f696e2e70656e64696e675f7969656c6400164194832a60020214800244b3001337100026eb4c0b8c1a4dd500144dd6981718349baa0028800a0cc409515980098090074566003300133031375860d460ce6ea8134dd7182198339baa30493067375402701099834982498339baa304930673754026660d2981054455534472004bd7052000405515980099b8900432330010013758608860d06ea8138896600200314800226644b30013375e60dc60d66ea8008c134c1acdd5182398359baa017899b8000198009bab304d306b3754005375c609a60d66ea8c134c1acdd500bd22010455534472004089100141a060d80026600400460da002835233001013826cdd6982198339baa0239bad302c3067375404700e807a0288a99832a4812b65787065637420706f745f7265636569766564203e3d20756e7374616b65645f7969656c645f7368617265001641911533065491536578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473286f726465725f696e707574732c206465706f7369745f72657175657374732c20757364725f61737365742c20302900164191159800cc004cc0c4dd6183518339baa04d375c608660ce6ea8c124c19cdd5009c042660d2609260ce6ea8c124c19cdd500999834a601054455534472004bd704c0ac01101546600202704d9bad304330673754047375a605860ce6ea808e01d00f40511533065491906578706563740a20202020202076616c69646174655f6465706f7369745f696e70757473280a20202020202020206f726465725f696e707574732c0a20202020202020206465706f7369745f72657175657374732c0a2020202020202020757364725f61737365742c0a20202020202020202d756e7374616b65645f7969656c645f73686172652c0a202020202020290016419083222a660ca921b76578706563740a2020202076616c69646174655f6465706f7369745f646966667573696f6e280a2020202020207661756c745f646174756d5f696e2c0a2020202020207661756c745f646174756d5f6f75742c0a2020202020207661756c745f757364725f61667465722c0a2020202020207374616b65645f7969656c645f73686172652c0a202020202020746f74616c5f7969656c642c0a2020202020206d61785f656e642c0a20202020202074782c0a202020202900164191153306549144657870656374207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f72650016419115330654913a657870656374207661756c745f757364725f6166746572202d207661756c745f75736472203d3d207374616b65645f7969656c645f7368617265001641906eb4c1a0004c1a0c1a4004ca6002660360026eb4c1a0c194dd5002cdd7182398329baa304730653754023375c605460ca6ea8c11cc194dd5008a444b30013053306737540071325980099baf306c3069375460d860d26ea8004c110cc1acdd480125eb822b3001304998009bab304b30693754003002a4410d7374616b696e675f7661756c7400408113259800982a18349baa0018992cc004006330010018acc004cdd7981818359baa0034c103d87a80008998369ba898009bab304d306b3754007005a4410455534472004088660da002660da00697ae0830a0d08332036833419a0cd06641c060da60d46ea80062a660d092012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d0016419c608a60d26ea80062a660ce92014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d203100164199153306749141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016419860d660d06ea800e2a660cc92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641943758608060c86ea812a2a660c492013565787065637420536f6d65287661756c745f6f75745f69647829203d20696e64696365732e7661756c745f6f75747075745f69647800164184454cc16d24013365787065637420536f6d65287661756c745f696e5f69647829203d20696e64696365732e7661756c745f696e7075745f69647800164168604a60b86ea80622a660b492012e65787065637420746f74616c5f7072696e636970616c203e2030207c7c20746f74616c5f7969656c6420213d2030001641643300c0013758607260ae6ea804cdd6182c80422b300130380018cc0048966002003148002266e0120023300200230540014145222329800800c012006800888966002005159800800c528c52820aa8acc00400629422b3001330043057002375a60ae00319800801cc16000a60b0002801a294105120aa4155223370666e08008dd6981618281baa001375a606460a06ea8006660066eb0c144c138dd50049bac3030304e37540153030304e375404691111192cc004cc8a6002646600200200644b30010018a508acc004cdd7982d982c1baa305b30583754607460b06ea8c16c004c0cccc168dd4801a5eb82294626600400460b800282a9059528528a0a6375860ae60a86ea80e8dd7180c982a1baa30363054375400515980099912cc004cdc398018011801802c56600260420031980080140064464b300130443058375400313232598009823982d1baa0018992cc004cdc39bad305f001375a607c60b86ea800e266ebcc17cc180004c06cc170dd5001c52820b2305b375400314a082c0c0d8c168dd5192cc004c114c168dd5000c4c96600200319800800c56600266ebcc094c170dd5001982f982e1baa0068acc004cdd7981f182e1baa001305f305c375400710018a9982d24813865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00164165153305a49138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500164165054407105482a41520a88308c178c16cdd5000c149058181b182d1baa303c305a375400860b860b26ea80062a660ae92013e65787065637420536f6d65286d61746368696e675f7265717565737429203d206c6973742e61742872657175657374732c20726571756573745f69647829001641586601c00e002803a2a660a89201376578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e6728696e7075745f746f5f7265717565737473290016414d153305449139657870656374206c6973742e6c656e677468286f726465725f696e7075747329203d3d206c6973742e6c656e677468287265717565737473290016414c6603c6eb0c15cc150dd501d1bae303030543754606c60a86ea8008dd6181b182a1baa0108acc00660026eb0c0c0c150dd501d4dd6182b982a1baa0109bac305730543754606060a86ea80092229800803400a4464b300130453059375400319800982e982d1baa0019bac3019305a3754007323303500523375e60be60b86ea8004dd38011bac3019305a37540069112cc004c120c170dd5000c56600266ebcc180c174dd50019830182e9baa3060305d375400d15980099baf3039305d3754006607e60ba6ea8c180c174dd500344cdc3cc004dd5981f982e9baa0039bae30600029bae3060306100240506601a64b300133710002900044c088006200282d8dd6981f982e9baa0063060305d375400314a082d2294105a454cc16d24015365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f617373657429001641688a9982c2493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f696478290016415c6601e00a00280411303f9800cc00400e6eb0c15cc150dd5008496600260246eb4c0dcc154dd5000c4c100dd69818982a9baa0018a504148806a660366eacc074c150dd501d1bae303630543754606c60a86ea800b300103a9bae305730543754606c60a86ea800a6eb4c0c0c150dd50084dd6980c982a1baa010402133017375860ae60a86ea8c0c0c150dd500111bac3058305537540029111194c004c1700066eacc170c17400660b800759800982218088024520008acc00401209313259800982f002c4c96600266e3cdd7182d0012450455534472008800c1310581bad305a00182520b6305c004416882b1222259800cc00400e9464444b30010018acc004cdc78022441008a51899811005198319ba900433063375200697ae0417914a082f101f456600266e1ccdc09bad3060305d37540086eb4c180c174dd5001000c4c96600266e1e60026eb0c184c178dd5181d182f1baa00ca400122332259800cc004c13400694294505f44c96600266e24cc04c0040166002013375c60cc007375c60cc60ce00680d2266e000100062a660c29212d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c74610016418066e08004016200682f8dd6183198301baa00232980080852000912cc004cdd7981118319baa002374e0071337000026eb4c114c18cdd500144005060203e375860c660c06ea800901c19b8100200a8801454cc1712413265787065637420746f74616c5f76616c6964617465645f75736472203d3d2065787065637465645f757364725f64656c74610016416cb3001301a0098a400314800905a414105a413d05a0c17000915330524901a96578706563740a2020202076616c69646174655f726571756573745f6f7574707574735f7065725f72657365727665280a20202020202074782e6f7574707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e726571756573745f746f5f6f7574707574732c0a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a2020202029001641451533052491786578706563740a2020202076616c69646174655f77697468647261775f696e70757473280a2020202020206f726465725f696e707574732c0a20202020202077697468647261775f72657175657374732c0a202020202020696e64696365732e696e7075745f746f5f72657175657374732c0a202020202900164145153305249142657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900164144600a00a8a50412c825844b300133710002900045300103d87a8000899803001000a09222a6606292013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640c09111112cc004c09001e264b300100181444c966002003159800981f8014566002604c60746ea8006264b300100181544c96600200313259800800c0b2264b30010018992cc00400605d13259800800c0be05f132598009823001c566002605a60826ea801a264b3001001818c4c96600200303281944cc89660020030348992cc00400606b035899912cc00400606f13259800800c0e2071038899912cc00400607513259800800c0ee07703b899912cc00400607b13259800800c4c96600200303f8992cc0040062b30013056002899819807112cc00400a26606a01a44b30010028cc00401e330010058acc004c104c154dd500c44c9660020030458992cc004006264b3001001823c4c966002003159800982f00144cc8966002608e00313259800800c12e264b30010018264132264b30013063003899820000912cc00400a00f13259800800c66002003130023066003828205882841420a1050419c60c8004831209a8300dd6000c1320988318c18000505e182e1baa0058acc004c0f0006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040b105082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b1598009823000c4c96600200304b8992cc00400609904c8992cc004c18c00e26608000244b3001002803c4c96600200319800800c4c008c19800e0a0816a0a10508284141067183200120c4826a0c0375800304c82620c63060001417860b86ea80162b300130480018992cc00400609713259800800c1320991332259800800c13a264b30010018acc004c19400a26608400644b30010028acc004c138c188dd5001c4c9660020030528992cc0040060a7053829c4cc89660020030558992cc0040060ad05682b44c96600260da00700f82ba0d4375a00305641b460d40028340dd68009834801414d06a1833800a0ca30633754007051418113259800800c66002003130023068003829205e829414a0a505241a460cc004832209e831209f04f827c13d0661831800a0c2375800260c400504c82620c63060001417860b86ea80162b3001303b0018992cc00400609713259800800c132099132598009831801c4cc10000489660020050078992cc00400633001001898011833001c14102e41420a105082820ce3064002418904d41806eb000609904c418c60c000282f0c170dd5002c566002607400313259800800c12e264b30010018264132264b30013063003899820000912cc00400a00f13259800800c66002003130023066003828205c82841420a1050419c60c8004831209a8300dd6000c1320988318c18000505e182e1baa0058acc004c0e4006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040bd05082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b15980099b8748038006264b3001001825c4c96600200304c82644c96600260c60071330400012259800801401e264b30010018cc0040062600460cc00705040bd05082841420a08338c19000906241350601bac00182641310631830000a0bc305c375400b15980099b87480400062b3001305c375400b00282520ba82520b2416482c905920b2416482c905920b219800800c4cc0ec06489660020050248992cc00400609704b8992cc00400609913259800800c13609b04d826c4cc896600200304f8992cc0040062b300130660028cc0040062600e60cc01105040c5050418d05082841420a08338c1900050621bae0013063002419060c200282f8dd6000c12e0968310c17c00905d4121023182c9baa00382420b68244122091048417c60b800282d0c17000a08d046823411905d182d000a0b030563754031044414d0444099044409913259800800c11608b0458991801982e0021bad001822a0b83059002415d13259800800c10e0870438991801982d0021bad001821a0b430570024155040414d040820410208082b8c150005052182a00140fa07d03e81f20aa305200141406eb4004c14400a0768290c13c00504d1bad001304e00281c209e304c00141286eb0004c12c00a06b035413060920028238dd6000982400140ca0648248c11800504418211baa006818207e8182086375800302f817a08c30430014104608600502d816c0b605a8220c10400503f182080140ae05702b815a084303f00140f460766ea800605281c205281e2053029814c0a5040181e800a0763039375401b159800980c803c4c9660020030288992cc0040062b3001303f0028acc004c098c0e8dd5000c4c96600200302a8992cc004006264b300100181644c96600200302d816c4c96600260880071598009815981f9baa0048992cc00400605f13259800800c4c9660020030318992cc0040062b300130480028acc004c0bcc10cdd5001c4c9660020030338992cc004006264b300100181ac4c96600200303681b44cc89660020030388992cc004006073039899912cc00400607713259800800c0f207903c899912cc00400607d13259800800c0fe07f03f899912cc00400608313259800800c10a0850428992cc004c16400e2b300130403054375402113259800800c112264b3001001822c11608b1332259800800c11e264b3001001824412209113259800982f801c5660020270498992cc00400609504a82544cc896600200304c8992cc00400609b04d826c4c96600260c800715980080ac13a264b3001001827c13e09f1332259800800c146264b3001001829414a0a5132598009834801c66002045133046026225980080140be264b300100182b415a264b300100182bc4c96600200305882c41620b11332259800800c16a264b30010018acc004c1c400a33001001898039838804416d03c416d06e416e0b705b82da0e4306f00141b46eb8004c1b800906f1836000a0d4375800305682b20da306a00241a105340b905341986eb40060a48348c1980050641bad0013065016827a0cc3063015418504e41846eb400609a8320c18400505f1bad001306001482520c2305e013417104941706eb400609082f8c17000505a1bad001305b002822a0b83059001415c60aa6ea8042086829208682b0dd6800c109059182b000a0a8375a00260aa00503f415860a60028288dd6800982900140f10531828000a09c3758002609e00503981ca0a0304d001412c6eb0004c13000a06d036413460940028240c12800a06903481a40d104b1824000a08c304437540070324105032411503281940ca0648248c118005044182300140c2061030818208e3044001410860806ea801205c81ea05c8208dd6000c0b605a8220c10400503f182080140ae05702b815a084303f00140f460766ea800605281c205281e2053029814c0a5040181e800a0763039375401b02740d881b080dc06e03701b40c8664464b3001301a302e37540031302f32337606066002606660680026eb0c0c8c0bcdd5000c54cc0b524018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640b0646600200200644b30010018a60103d87a80008992cc004cdd7981800099ba548010cc0ccc030cc0ccdd480225eb812f5c11301433033374e66066606000266066606200297ae04bd7044cc00c00cc0d400902e1819800a0623756605e60606060606060606060606060606060606060586ea8048dd7181798161baa00132323259800800c5660026032605a6ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0dc00a2b3001301e3032375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc0040062b3001303d0028acc004c090c0e0dd5002c4c9660020030298992cc004006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c4c9660020030318992cc004006264b3001001819c4c96600200313259800800c0d6264b30010018992cc00400606f13259800800c4c9660020030398992cc004006264b300100181dc4c966002003159800982880146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607060986ea805e264b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc00400608f047823c11e26644b3001001824c4c96600200304a825412a0951332259800800c132264b30010018acc004c18800a330010018acc004c124c174dd501344c96600200304e8992cc00400609f04f899912cc0040060a313259800800c56600260ce0051330440032259800801466002007103882a20768992cc0040062b300130513065375400313259800800c15a264b300100182bc15e26644b300100182cc4c96600200305a82d416a26644b300100182e44c96600200305d82ec176264b300130730038acc00401e0bd13259800800c17e0bf05f82fc4cc89660020030618992cc0040060c5062831418a264b3001307800389808183c008c18d0751bae00141e060ea0028398dd7000983a00420ea307200741c105e41c06eb40060ba8398c1c000506e1bad001306f00282d20e0306d00141ac6eb0004c1b000a0af05741b460d40028340c198dd5000c15506341560ab05582aa0d6306800241990524191052829414a0a48340c1940050631bac0013064002827c13d0651831000a0c0305e375404d04d416d04d40d904d417d04d826c13609a8318c18000505e1bae001305f002418060ba00282d8dd7000982e00120ba305a00141606eb8004c16400905a182b800a0aa375c00260ac00482b8c1500050521bae0013053002415060a20028278c134dd500bc0f104a40f102640f102640f102640f102640f102640f102640f102640f102640f102640f102640f104e40f207903c81e20a4304f0014134609e00503a81d40ea0748280c13400504b182680140e207103881c209c304b0014124609600503681b40da06c8260c124005047182480140d206903481a209430470014114608e00503281940ca0648240c114005043182280140c2061030818208c30430014104608600502e81740ba05c8220c10400503f182080140b205902c8162084303f00140f4607e00502a81540aa0548200c0f400503b181c9baa005814206c814207481440a205102840f8607600281c8c0ec00a04d026813409903c181c800a06e3039002812409204902440e8606e00281a8c0ccdd5000c0890304089034408a0450228112070303500140cc6eb8004c0d00090351819000a060302e375400301d40ad01d80ec07603a8198c9660026032605a6ea8006264b30013019302e375400313032302f3754003153302d49013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640b06014605c6ea8c040c0b8dd5181898171baa0018a998162494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640ac6600e6eb0c03cc0b4dd50099191980080098019bab3011302f37546022605e6ea8008896600200314a115980099b8f375c606600205914a3133002002303400140b48188c004004896600200314bd7044cc0bcc0b0c0c0004cc008008c0c400502e1112cc004c060c0b0dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981a80146600200713259800980e800c4c9660020030078992cc0040062b300130380028992cc004c080006264b300100180544c966002003159800981d80146600200300c805a01c805a070805c02e01700b40f0607200281b8c0d4dd50014566002602a00313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c046023132598009821001c04e02481f8dd6800c045042181f800a07a375a002607c00500e40fc607800281d0dd6800981d801402d03c181c800a06e3035375400500940c88190c0ccdd5000c02103540220110088042072303600140d060646ea800a2b300130120018acc004c0c8dd5001401e00c819a00c817902f18181baa001802a010802a064802c01600b00540d860660028188c0cc00a007003801c00d0341818800a05e302d375400700140a84566002601000713232598009804980e9baa302130220028a518a50406c6eb4c080004c070dd50024590192032180d980e000980d8022293454cc04524011856616c696461746f722072657475726e65642066616c7365001365640401" + : "592896010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd50024dd2a4001230113012001911919800800801911980180098010014dc3a4005370e90044dc3a4015370e900648c044c048c0480066e952002912cc004c024c038dd500144c8c8cc8966002602e0070058b2028375a60280026eb8c050008c050004c03cdd500145900d24444444444530012232330010010032259800800c530103d87a80008992cc004c0100062601e6603e00297ae089980180198108012036301f00140752223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300b0018992cc004c08400626601a6eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc034dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998079bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b3001300a001899192cc004c08800a00916407c6eb4c080004c070dd5001c56600260120031323259800981100140122c80f8dd69810000980e1baa0038acc004c02000626464b3001302200280245901f1bae3020001301c375400716406880d101a2034406880d101a180d1baa00291192cc004c05400626464b3001302100280245901e1bae301f001301b37540071598009805000c56600260366ea800e00516407116406480c8c064dd5001488c966002602a0031323259800981080140122c80f0dd7180f800980d9baa0038acc004c02800626464b3001302100280245901e1bae301f001301b375400716406480c8c064dd500148966002602860326ea800a2646464b30013021002899192cc004c0640062b3001301f37540050068b20408acc004c03800626464b300130250028044590221bad3023001301f3754005159800980c000c566002603e6ea800a00d16408116407480e901d180e9baa00130200038b203c3259800980e800c56600266e252004301c0018b44c030c07000501b45901e1baa301f001301f001301a3754005164061223259800980a800c4c8c96600260420050048b203c375a603e00260366ea800e2b3001300a0018acc004c06cdd5001c00a2c80e22c80c9019180c9baa002488888a6002600a00b2259800980d180f9baa00289919192cc004c09c00a266010604c006264b3001301e0018992cc004c0a400626464b300130210018992cc004c0b000626601a60560020131640a4604e6ea800a2b3001301600189919194c004dd69816800cdd69816801cdd698168012444b3001303100480745902e0c0b4004c0b0004c09cdd5001459025204a30253754002605000316409860486ea800a2b300130130018acc004c090dd500140162c812a2c811102218111baa0018b20483025001302500130203754005164079223259800980d800c4c966002604c00313300b30250010038b2046302137540071598009808000c4c966002604c00313259800980e98111baa00189919192cc004c0a800a266014605200626601400200f16409c6050002605000260466ea80062c8108c0940062c8118c084dd5001c5901f203e301f37540052259800980d180f9baa0028991919192cc004c0a000a264b3001301f30243754003132323322598009816801c4cc03cc0b002002a2c8150dd718150009bae302a002302a0013025375400316408c604e0091640946eb8c098004c098004c094004c080dd500145901e244446645300133223259800981098131baa001898139919bb0302b001302b302c00137586054604e6ea80062c8128c8cc00400400c896600200314c0103d87a80008992cc004cdd7981400099ba548010cc0acc04ccc0acdd480225eb812f5c11301b3302b374e66056605000266056605200297ae04bd7044cc00c00cc0b40090271815800a0523756604e60506050605060506050605060506050605060486ea8064dd7181398121baa002912cc004c080c094dd500144c8c8c8cc8966002605e007133008302e0051330140020068b2058302c001375a605800460580026056002604c6ea800a2c812244b30013020302537540051323232323298009bad302e0019bad302e0049bad302e003981700124444b30013033005899806181900489980c0008054590300c0b8004c0b4004c0b0004c0ac004c098dd5001459024489660026040604a6ea800a264646464646530013758605e003375a605e00b375a605e009375a605e007302f00248888966002606a00d13300e303400b13301a001132332259800981c001c03e2c81a8dd7181a8009bae303500630350058b20641817800981700098168009816000981580098131baa0028b2048912cc004c080c094dd500144c8c8c8c8ca60026eb0c0b80066eb4c0b80126eb4c0b800e605c00491112cc004c0cc01626601860640122660300022646644b30013036003806c590331bae3033001375c606600a60660091640c0302e001302d001302c001302b001302637540051640909111119912cc004c094006264b300130300018992cc004c09cc0b0dd5000c4c8c8c8cc8966002606c00713259800981698191baa00189919191919194c004c0f00066eb0c0f00166eb4c0f00126eb4c0f000e6078004911112cc004c10801a26605c6eb0c10402c8966002005133030006225980080144cc0940144cc094024566002607860826ea80462646464b3001304900289919912cc004c10800a264b3001304d00189981c9bac304c00122598008014012266046609c00426002609e00482622c8250c120dd5001c566002606e005132598009826800c4cc0e4dd61826000912cc00400a009133023304e00213001304f002413116412860906ea800e2b300130410028992cc004c1340062660726eb0c1300048966002005004899812182700109800982780120988b209430483754007159800982180144c8c8c966002609e00513303b3758609c00644b30010028acc004c11cc130dd5001c4c8c8cc896600260aa00700a8b20a4375a60a40026eb4c148008c148004c134dd5001c5904b44cc098c1400084c004c14400904e45904c1826800982680098241baa0038acc004c0d800a264b3001304d00189981c9bac304c0012259800801401226604a609c00426002609e00482622c8250c120dd5001c566002606a005132598009826800c4cc0e4dd61826000912cc00400a009133025304e00213001304f002413116412860906ea800e2b300130340028992cc004c1340062660726eb0c1300048966002005004899813182700109800982780120988b20943048375400715980099b874803800a264b3001304d00189981c9bac304c0012259800801401226604c609c00426002609e00482622c8250c120dd5001c56600266e1d20100028acc004c120dd5001c0062c824a2c8231046208c41188231046208c41188230c114dd500089981300109981b00b112cc00400a03f1323322598009827800c4cc0a8c1380044c010c13c0162c8260dd7182600098268009bac304b00241246090007164118608e002608e00260846ea80462c82022646004608e0066eb4c11400904344c8c008c11400cdd6982180120828b207e181e000981d800981d000981c800981c00098199baa0018b206230350058b206637586066002606600460660026064002605a6ea80062c8158c0bc0062c8168c0acdd5003c5660026034003132598009818000c4c966002604e60586ea80062646464b300130340028992cc004c0acc0c0dd5000c4c8c966002606e00313259800981718199baa00189919191919194c004dd6981e800cdd6181e802cdd6181e8024dd6981e801cdd6981e801244444b300130430068992cc004c0e8c0fcdd5000c4c8c8cc896600260900071323322598009825801c4c8cc8966002609c00713302a304d01813303a01b2259800801408e2646644b300130530018998171829000898021829802c590501bae305000130510013758609e004826a2c8258dd698258009bad304b00c304b00b8b2090375a60900026eb4c120028c1200262c8228dd698228009bad30450023045001304037540031640f86084017164100303d001303c001303b001303a0013039001303437540031640c8606c0051640d0606c00260626ea80062c8178c0cc00e2c8188dd61819000981900098169baa0018b2056302f0018b205a302b375400f1640a48148566002604660506ea801633001302c3029375400b222598008014530103d87a80008acc004c0980062603c6605c605e00497ae08cc00400e6060005337000029000a00640a8816a4603260526ea8c0b4c8cc004004008896600200314bd708103d87a80008101800044c8cc89660033001301e302e375460640074a14a2816a26606330014a14c103d87a8000a60103d879800040b4660626e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0d000400e2946266004004606a002817903244cc0c6600294298103d87a8000a60103d879800040b4660626e9c0092f5c11330319800a51a60103d87a8000a60103d879800040b4660626e9ccc0c4dd400080125eb8102d205a3758606060620026eb4c0c0008cc008008c0c000502d488c8cc00400400c896600200314bd7044cc896600266ebcc0c8c0bcdd5181918179baa3020302f37540046032660626ea40152f5c113303100233004004001899802002000a05a3030001303100140b92302d302e302e302e302e001912cc0040062900044cdc02400466004004605e00281624464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803205e899802802981a802205e375c605c0026eacc0bc004c0c400502f0a5eb7bdb18244b30013025302a375400513232598009818801400e2c8170dd6981780098159baa0028b205291816981718171817000cdc0a40012232330010010032259800800c52f5c113302f374e600660600026600400460620028172444646600200200844b3001001880244c8cc88cc88cc008008004896600200310038994c0040166eb8c0cc0066eb4c0d00066600600660700048048c0d80050341bab3031003375c605c0026600600660660046062002817a44646600200200644b30010018a508acc004cdd798180009ba70038a518998010011818800a05640b92259800981298151baa0028991919194c004c0c800660640073032002488966002606c009133014303500713300f002132598009816800c4c8ca60026eb4c0e00066072003375a60700049112cc004c0f000a264646644b3001304000380945903d1bae303d001375c607a004607a0026eb0c0ec00a2c81c8607000260666ea800a2b30013022001899194c004dd6981c000cc0e40066eb4c0e000922259800981e00144c8c8cc896600260800070128b207a375c607a0026eb8c0f4008c0f4004dd6181d8014590390c0e0004c0ccdd500145660026058003132323298009bad3039001981d000cdd6981c801cdd6981c80124444b3001303e0038991919912cc004c10800e0291640fc6eb8c0fc004dd7181f801181f8009bac303d0038b2076181c800981c00098199baa0028acc004c0b80062646644b3001303a0018991919912cc004c0f800e0211640ec6eb8c0ec004dd7181d801181d8009bac30390018b206e375a606e002607000260666ea800a2b300130210018991919912cc004c0ec00e01b1640e06eb4c0e0004dd6981c001181c00098199baa0028acc004c08000626464653001375a6072003375a6072007375a60720049112cc004c0f401201f1640e83039001303800130333754005159800980f800c4c8c966002607200500b8b206c375a606e00260666ea800a2b30013370e9007000c4c8c966002607200500b8b206c375a606e00260666ea800a2c8189031206240c48189031206240c460626ea80062c819860640026062002606000260566ea800a2c814a4605a605c605c605c605c605c003222329800800c01200680088896600200510018cc00400e6066005330043032002001400c81826e21200048888888888888888a6002607a60746ea8046607a60746ea8c0acc0e8dd5008cc040042444b300130120028994c004006009003a40008008888966002007159800801440062c8212330010049822801cc11400a6644b30013007002899b80003375a606860866ea800a2c8208c11000cdd69822001200841091640ed300c00c91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c820a26600a00a608e0088208dd718200009bad3041001304300141046601e0080062900024444446530012232330010010022259800800c52f5c11330473259800982018229baa0018982498231baa0018b208833005004375a60900026600400460920028232444464b30013040304537540031325980099baf304a304737546094608e6ea8c0e0c11cdd50009818998249ba90054bd704566002606d300137566070608e6ea8c0e0c11cdd5000c01691108747265617375727900402113259800982098239baa0018991980c8008992cc004c110c124dd5000c4c96600266ebcc138c12cdd5182718259baa00130353304d375201297ae08acc004c0ea60026eacc0f0c12cdd5000c02691108747265617375727900403113259800982298259baa0018991980e8008acc004cdd7980e18269baa0034c0103d87a800089982780299827800998279ba6329800800cdd5981f98271baa00499198008009bab3040304f37546080609e6ea8024896600200314bd6f7b63044c8cc14ccdd818280009ba63233001001375660a400444b30010018a5eb7bdb182264660ac66ec0c14c004dd418111bad3054001330030033058002305600141506600600660aa00460a600282890011112cc00400a2003132332298008034c15c016646600200200a44b300100189982b99bb037520086e9800d2f5bded8c113298009bae30550019bab3056001982d0012444b30013372001000713305b337606ea4020dd3003802c56600266e3c02000e264b300159800800c528c52820b6880144cc170cdd81ba9009374c00200482c0ca6002003008801a0022225980080144006264664530010069831802cc8cc0040040148966002003133063337606ea4010dd4001a5eb7bdb1822653001375c60c2003375a60c4003306600248896600266e4002000e2660ce66ec0dd48041ba80070058acc004cdc7804001c4c96600260c0003100289983419bb037520126ea000400906419b8000700289983399bb037520066ea0008cc01801800506320c61832000a0c440186eb8c170004dd6982e800982f80120ba89982d99bb037520066e98008cc01801800505720ae182c000a0ac40186eb8c140004dd59828800982980120a24bd7045904b182798261baa0018b20943036304b3754003164125164124609a60946ea80062c8240cc024dd6181a18249baa008005304b304837540031641186064608e6ea8c0e0c11cdd5000c59045459045182498231baa0018b20883300537586090608a6ea801000a60806ea801922259800981f800c6600260886ea80264609060926092609260926092609260920032259800982018229baa0028991919194c004dd69826800cdd698268024dd69826801cdd6982680124444b30013052005804c5904f0c134004c130004c12c004c118dd5001459044488c8ca60026eb4c12c0066eb4c12cc1300066eb4c12c00922259800acc004cdc4800a400114a313371200400c824a29000456600266e2401800e20031323370666e00cdc019b820023370200600e002900080099b810020034124824860960026094608c6ea800a444466e24004ca60020030058025200040044444b30010038acc00400a2003164135198008024c14000e60a000532332259800982418271baa0028991980d0008acc004cdd7981198281baa00230533050375400915980099baf30413050375400260a660a06ea800a264b3001304a3050375400313232325980099b87375a60ae0066eb4c114c150dd5003456600266e1cdd6982b8011bad303f3054375400d15980099b87375a60ae0026eb4c08cc150dd5003456600266ebcc15cc160004c074c150dd500344cdc0004cc004dd59822982a1baa304530543754011375c60ae01d375c60ae60b001c80aa2c82922c82922c82922c8290c15c004c158004c144dd5000c5904f181d98281baa0018b209c8b209c3052304f37540051641346070609a6ea8c0f8c134dd500098280019827801a008413522222232325980099b8700100489919192cc004cdc399b81375a60a4609e6ea8c148008dd6982918279baa30520030048992cc00660020054a3222259800800c56600266e3c0112201008a5189980f8029982b1ba900433056375200697ae0414914a0829101c44cdc4803cc004dd6182998281baa303b3050375401948002446464b300198009827000d28528a0a48acc004c06c006266e0000ccdc199b82001375a608a60a86ea8010dd6981f982a1baa0048b20a48801a0a49800802cdd7182b000cdd7182b182b800a028375860aa60a46ea800901845904e1980e1bac3052304f37546074609e6ea802c8dd6182998281baa0018b209a375660a260a400260a200330010079bae304f304c3754607a60986ea802200d0054029164128b30013045300d0018a40011598009827800c4c96600266e3cdd71825800a4504555344720089bad304c0018b2094304e0018b20984124660366eacc074c128dd50029bae303b304a3754607660946ea801a606a60886ea808a6e252000488888888c8ca600330010019bac3051304e375402923004375a6080609e6ea800501166002003480024466e00004dd6981d98281baa002405923259800982518279baa001899912cc004c130c144dd5000c56600266e24cdc09bad30553052375400200490405d5b81c400a2c82822c8280dd6982998281baa0013259800982018281baa0018982199829982a18289baa0014bd7045300103d87a8000413c60a660a06ea8c104c140dd5180598281baa0028b209c3259800981f98279baa0018982119829182998281baa0014bd7045300103d87a8000413860a4609e6ea8c148c13cdd5180518279baa0019828982900524444b300159800980c8024528c6600260980074a14a2828105044c966002609a60a46ea8006330013298009980a0009bad305730543754005375c608a60a86ea8c114c150dd50054dd71811982a1baa3045305437540149112cc004c144c158dd5001c4c96600266ebcc16cc160dd5182d982c1baa3049305837540026084660b46ea40092f5c11598009823cc004dd59824982c1baa304930583754003002a4410d7374616b696e675f7661756c74004065132598009829182c1baa0018991980a00089982e1ba898009bab304b305a3754609660b46ea800e00b4881045553447200406c660b8002660b800697ae0305c3059375400316415c608660b06ea8c124c160dd5000c59056459056182d182b9baa0038b20aa1bac30563053375409198008244dd7182b18299baa304430533754013375a607c60a66ea80666eb4c088c14cdd500ca022acc004c068dd6982218299baa0028acc004c020dd6982b18299baa0028acc004cdc49bad3056305337540046eb4c110c14cdd500144c8cc158dd40009982b1ba83370200a00297ae03370866e08010dd6982b18299baa002375a608860a66ea800a2c828a2c828a2c828a603860a66ea806522229800982d182d8024dd6982d0014dd6982d182d8012444b300130543059375400913233225980099b87337020046eb4c1800280162b30013370e6eb4c180c174dd50009bad3060305d375400d159800992cc004c04c03e26464b30013370e6eb4c144c180dd50021bad30630028acc004cdc39bad304b306037540086eb4c18c006266e1cdd6981798301baa004375a60c660c800314a082f2294105e1831800acc0056600266e24dd69827982f1baa00748002266e2400520008a50417114bd7081010000810100008101000044c96600266e2000400a2660c26ea0cdc01980c004000803998309ba800133061375000497ae08a5eb85010000810100008101000020ba300e053417115980099b87375a609e60bc6ea8008dd69827982f1baa0078acc004cdc39bad3049305e37540046eb4c124c178dd5003c56600266e1cdd69816982f1baa002375a605a60bc6ea801e2b30013025375a609e60bc6ea801e2602666e0400ccc05c01cc03814e294505c45905c45905c45905c20b8980080852000912cc004cdc40009bad302e305f37540051375a605c60be6ea800a200282e90254566002602401d159800cc004cc0c4dd61830182e9baa052375c609060ba6ea8c138c174dd5009c042660be609c60ba6ea8c138c174dd50099982fa61054455534472004bd7052000405515980099b8900432330010013758609260bc6ea814c896600200314800226644b30013375e60c860c26ea8008c148c184dd5182618309baa017899b8000198009bab305230613754005375c60a460c26ea8c148c184dd500bd220104555344720040891001417c60c40026600400460c60028302330010138294dd69824182e9baa0239bad302c305d375404700e807a0288b20b68b20b68acc0066002660626eb0c180c174dd50291bae3048305d3754609c60ba6ea804e0213305f304e305d3754609c60ba6ea804ccc17d3001054455534472004bd704c0ac0110154660020270529bad3048305d3754047375a605860ba6ea808e01d00f405116416c82da2c82da2c82da2c82d8dd6982f000982f182f800994c004cc06c004dd6982f182d9baa0059bae304c305b3754609860b66ea80466eb8c0a8c16cdd51826182d9baa01148896600260b060ba6ea800e264b30013375e60c460be6ea8c188c17cdd50009824998309ba90024bd704566002609d3001375660a060be6ea800600548810d7374616b696e675f7661756c7400408113259800982c982f9baa0018991980d8008acc004cdd7981818309baa0034c0103d87a80008998319ba898009bab305230613754007005a4410455534472004088660c6002660c600697ae08b20be306330603754003164178609460be6ea80062c82ea2c82e8c184c178dd5001c5905c0dd61822982d1baa04f8b20b022c8288c094c148dd500c4590500cc030004dd6181f18269baa0133758609e0108acc004c0f4006330012259800800c52000899b8048008cc008008c1280050474888ca6002003004801a00222259800801456600200314a314a0825a2b30010018a508acc004cc010c134008dd69826800c66002007304e0029827000a0068a504120825904b488cdc199b82002375a6062608c6ea8004dd6981b98231baa001998019bac3047304437540126eb0c0d4c110dd50054c0d4c110dd501124444464b3001332298009919800800801912cc00400629422b30013375e60a2609c6ea8c144c138dd5181f98271baa3051001303833050375200697ae08a518998010011829000a098413d4a14a28250dd6182698251baa03f375c603260946ea8c0ecc128dd500145660026644b30013370e6006004600600b1598009810800c6600200500191192cc004c124c138dd5000c4c8c966002609860a06ea8006264b30013370e6eb4c154004dd6982198291baa003899baf30553056001301b3052375400714a08280c144dd5000c528209e303b3050375464b3001304a305037540031323301c00115980099baf30253052375400660aa60a46ea801a2b30013375e608660a46ea8004c154c148dd5001c40062c82822c8280c150c144dd5000c5904f181d98281baa30413050375400860a4609e6ea80062c8268cc03801c00500745904a45904a1980f1bac304d304a375407e6eb8c0d4c128dd5181d98251baa0023758607660946ea80422b300198009bac3035304a375407f3758609a60946ea80426eb0c134c128dd5181a98251baa002488a600200d00291192cc004c128c13cdd5000c6600260a660a06ea80066eb0c064c140dd5001cc8cc0e40148cdd7982a98291baa001374e0046eb0c064c140dd5001a444b3001304d3052375400315980099baf30563053375400660ac60a66ea8c158c14cdd5003456600266ebcc0f8c14cdd5001982218299baa30563053375400d13370f30013756608860a66ea800e6eb8c15800a6eb8c158c15c00901419806992cc004cdc4000a4001130220018800a0a4375a608860a66ea8018c158c14cdd5000c52820a28a5041451641448b209c3300f0050014020898224c00660020073758609a60946ea80424b30013012375a607860966ea80062608a6eb4c0d8c12cdd5000c528209240353301b3756603a60946ea80fcdd7181d98251baa303b304a3754005980081fcdd7182698251baa303b304a3754005375a606a60946ea80426eb4c064c128dd500820109980b9bac304d304a3754606a60946ea80088dd6182718259baa00148888c8cc89660033001002a5191112cc0040062b30013371e008911008a518998100041982b9ba900433057375200697ae0414d14a0829901d456600266e1ccdc09bad30543051375460a80066eb4c150c144dd5182a002800c4c96600266e1e60026eb0c154c148dd5181e98291baa00aa400122332259800cc004c14000694294505444c96600266e24cc0440040166002011375c60b4007375c60b460b600680c2266e000100062c82a8cdc1000802c400d0541bac30573054375400465300100ea4001225980099baf3020305737540046e9c00e266e00004dd69824182b9baa0028800a0aa40746eb0c15cc150dd500120343370200401110028b20a059800980c003c520018a4004827a2c827a2c8278dd598291829800acc004c124c04401229000456600260a60091325980099b8f375c609e00291104555344720089bad30500018b209c30520048b20a0413460a40048b20908b20908b20903005005452820844108225980099b88001480022980103d87a8000899803001000a08022c8138c0a0dd50028c8c8c966002603e60486ea80062646644b3001302c0018992cc004c08cc0a0dd5000c4c8c8c8cc8966002606400713259800981498171baa0018991919191919191919194c004c0f00066078013303c008981e003cc0f001a607800b303c004981e001cc0f000922222222259800982300544cc090c11404c4cc0900204cc09001c4cc0900184cc0900144cc0900104cc09000c4cc0900084cc0900044cc090024566002607860826ea8056264646464653001375c6094003304b0019bae304a0059bae304a0049bae304a0039bae304a00248888896600260a200b1330333050005159800982398261baa02189919192cc004c15000a2660806eb0c14c00c8966002005133033003102e8992cc004c134c148dd5000c4c8c8c8cc896600260b8007132323322598009830001c4c02cc1800322c82e8dd7182e8009bae305d002305d001375860b600b1641646eb4c164004dd6982c801182c800982c00098299baa0018b20a23055002414d16414460a400260a4002609a6ea80862c825a2c8270609400260920026090002608e00260846ea80562c82022c821860780026076002607400260720026070002606e002606c002606a0026068002605e6ea80062c8168c0c40162c8178c0bc004c0bc008c0bc004c0b8004c0a4dd5000c590271815800c590291bae3029001302a0013025375400316408c64b3001301f3024375400313259800980f98129baa0018981498131baa0018b2048301030253754602c604a6ea8c0a0c094dd5000c59023198061bac3015302437540324646600200260066eacc05cc098dd5180b98131baa0022259800800c528456600266e3cdd718150008124528c4cc008008c0ac005025205030010012259800800c52f5c113302630233027001330020023028001409444b3001301e30233754005132323259800981580144cc020c0a800c4c966002604400315980098141baa002802c590294566002602e00313232598009817001401e2c8158dd7181600098141baa0028acc004c08400626464b3001302e002803c5902b181600098141baa0028b204c40988130c098dd5000c590281814800981480098121baa0028b204411598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d1365640081", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolMigrationV1_0ToV1_1ProtocolMigrationV1_0ToV1_1Withdraw { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5927e2010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012f657870656374206f75747075745f646174756d3a205661756c74446174756d5631203d206f75747075745f6461746100168a99801a4953657870656374205b7661756c745f6f75747075745d203d0a2020202066696e645f7363726970745f6f7574707574732874782e6f7574707574732c2072656769737472792e7374616b696e675f7661756c742900168a99801a492f65787065637420696e7075745f646174756d3a205661756c74446174756d56315f30203d20696e7075745f6461746100168a99801a49df657870656374205b7661756c745f696e7075745d203d0a202020206c6973742e66696c746572280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a20202020202020207768656e20696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c206973207b0a20202020202020202020536372697074285f29202d3e20547275650a20202020202020202020566572696669636174696f6e4b6579285f29202d3e2046616c73650a20202020202020207d0a2020202020207d2c0a202020202900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f6461746100164888889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038cc004c05cc050dd500248c060c064c064006460306032003370e9001488c8cc00400400c88cc00c004c00800922222323322323259800800c66002444b300130143020375400713259800800c00a264b30010018992cc00400600913259800800c566002605200519800801c4c966002603200315980098131baa002803c0190274566002601e00313259800800c01e264b300100180440220110088992cc004c0b400e01500940a86eb800502d1815000a05030263754005159800980c000c4c9660020030078992cc004c0b000a01300840a460540028140c098dd500140190232046408c60486ea800600a805a00a813200b005802c01502a1813800a04a3027002801c00e00700340a0604a0028118c084dd5001c00501e488966002602860406ea800e264b300100180144c96600200313259800800c012264b30010018992cc004c0980062b30013371290021812800c01a264b3001302b0048992cc004c06c0062b30013028375400d00980420528acc004c044006264b3001001804c4c96600200300a805402a264b3001302f003806402d02c1bad001805205e302c00140a860506ea801a2b3001301a0018acc004c0a0dd50034026010814a0108129025204a3026375400b00740a0601e604a002811a00c8138dd5000c01600b005802a05430270014094604e005003801c00e0068140c09400502318109baa003800a03c9112cc004c050c080dd5001c4c9660020030028992cc004006007003801c00e26644b3001001802c4c966002003006803401a264b3001302b003804401d0281bad0018032056302800140986eb8004c09c0090281812800a0463021375400700140792223259800980a800c4c9660020030038992cc00400600900480244c9660026052007006802a04c375a00300440a4604c0028120c088dd50024566002601600315980098111baa004801c009023400901f203e3020375400722259800980a18101baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300100180344c966002003007803c01e00f132598009816001c5660026036604e6ea801a264b3001001804c4c96600200300a805402a0151332259800800c032264b3001001806c03601b00d8992cc004c0c800e3300100a807c039013403902f1bae00140c8605e0028168dd70009817001205e302c00140a860506ea801a010812a0108148dd7000a0583029001409c6052005005802c01600a8150c09c0050251813801400e007003801a0503025001408c60426ea800e00280f22b30013011301d375400315980099b8748040c074dd51810980f1baa3008301e37546042603c6ea800626530013300137586044603e6ea80349660026012603e6ea8c08cc080dd5181198101baa300a3020375400314a314a080ea6012603e6ea8c024c07cdd5001c8c08cc090c090c09000522259800801c06a264b300130270048acc004cdd7981318119baa302630233754601a60466ea8004cdd2a40046604a600460466ea800d2f5c115980099baf302630273027302730273023375402298101a0008acc004c03260026eacc034c08cdd5180698119baa0019bae3002302337540071480012223322330010010023232330010010052259800800c00e2646644b30013372201000515980099b8f0080028800c01902944cc014014c0c00110291bae3029001375660540026058002815052f5bded8c044b3001001801c4c8cc896600266e452210d7374616b696e675f7661756c74000028acc004cdc7a4410d7374616b696e675f7661756c74000028800c01902844cc014014c0bc0110281bae3028001375a60520026056002814913259800980b18119baa0018992cc0040062b300130183024375400313259800800c07e264b30010018104082041132598009816001c4c9660020030238992cc004c0b800a2b30013375e605a60546ea8004c0b4c0a8dd5180a18151baa0088acc004cdd7980a18151baa0013014302a3754602860546ea80222b30013375e601260546ea8005300103d87a80008992cc004c074c0a8dd5000c4c966002003159800980f98159baa0018992cc00400605113259800800c0a6053029899912cc00400605713259800800c0b205902c899912cc00400605d13259800800c0be05f02f899912cc00400606313259800800c0ca0650328992cc004c0f000e2b30013370e6eb4c0ecc0e0dd50069bad303b3038375402915980098159bad30223038375401b15980098159bad30233038375401b1302b375a602e60706ea803629410354528206a8a5040d503340e46eb400606481e0c0e40050371bad0013038002817a072303600140d06eb4004c0d400a05881b0c0cc0050311bad0013032002814a066303000140b860586ea800604e814a04f027813c09d031181718159baa0018a99814a493465787065637420496e6c696e65446174756d286f75747075745f6461746129203d207661756c745f6f75747075742e646174756d001640a0602a60546ea80062a6605092012c657870656374207661756c745f6f75747075742e7265666572656e63655f736372697074203d3d204e6f6e650016409d153302849135657870656374207661756c745f6f75747075742e76616c7565203d3d207661756c745f696e7075742e6f75747075742e76616c75650016409d153302849139657870656374207661756c745f6f75747075742e61646472657373203d3d207661756c745f696e7075742e6f75747075742e616464726573730016409d02440ac60580028150cc88cc0300088c966002602a60566ea8006266e3c00cdd7181798161baa0018a5040a4605c60566ea8c0b8c0acdd50009bac30133028375402c6eb8c01cc0a0dd500440850291bad00181020583029001409c604a6ea800603c811203d01e80f407902a181398121baa0018a998112493965787065637420496e6c696e65446174756d28696e7075745f6461746129203d207661756c745f696e7075742e6f75747075742e646174756d00164084601c60466ea8c034c08cdd5000c54cc08524017e6578706563740a202020206173736574732e7175616e746974795f6f66280a2020202020207661756c745f696e7075742e6f75747075742e76616c75652c0a20202020202072656769737472792e7374616b696e675f7661756c742c0a202020202020227374616b696e675f7661756c74222c0a2020202029203d3d20310016408115330214911d6578706563742074782e6d696e74203d3d206173736574732e7a65726f001640811533021491676578706563740a202020207661756c745f696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074280a20202020202072656769737472792e7374616b696e675f7661756c742c0a20202020290016408101b4090604a006811844646600200200644b30010018a5eb8226644b3001300500289981300119802002000c4cc01001000502118128009813000a0468a50406d153301c49013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d65720016406d301d375400291111114c004889660026036604e6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c0cc00a330010068cc004006013008403d008404500840c1008804402201081a0c0c400502f1bad0013030002802a062302e00140b0605c005003801c00e0068178c0b000502a18141baa003800a04a9112cc004c06cc09cdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b13259800981c801c6600201919800802403e01c80aa01c80ba01c81b0dd6800c035039181b000a0683036002805c02e01700b40dc60680028190dd6800981980140210341818800a05e375a002606000500540c4605c0028160c0b800a007003801c00d02f1816000a05430283754007001409522259800980d98139baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002607800719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c966002608200701780b207c375c0028208c0f800503c1bae001303d00240f8607600281ca02280c202280d202281c8dd6000c04202081e0c0e4005037181c801403a01d00e8072074303700140d46eb4004c0d800a01681b8c0d00050321bad00130330028042068303100140bc6eb4004c0c000a00a8188c0b800502c1817001400e007003801a05e302c00140a860506ea800e002812a444b3001301b3027375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c0e400e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c0f800e02901340ec6eb800503e181d800a072375c002607400481d8c0e00050364039015403901740390361bac001806c035039181b000a0683036002805c02e01700b40dc60680028190dd6800981980140210341818800a05e375a002606000500540c4605c0028160c0b800a007003801c00d02f1816000a0543028375400700140952223259800980e000c4c9660020030038992cc0040062b3001302f0028cc00400600b004402d00440b100480240120088180c0b400502b18149baa0048acc004c048006264b3001001801c4c96600200315980098178014566002603c60546ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c0cc00a330010038cc0040060130084041008404100840c1008804402201081a0c0c400502f1818801401a00d0068032064302f00140b460566ea80060088142008816200900480240110301816800a0563029375400900240988130c09cdd5001a44444b3001301d0068992cc00400604313259800800c5660026060005159800980f98159baa0018992cc00400604713259800800c4c9660020030258992cc004006264b3001001813c4c96600200302881444c966002606e007159800981318191baa0068992cc00400605513259800800c0ae0571332259800800c0b6264b300100181740ba26644b300100181844c966002003031818c0c626644b3001001819c4c96600200303481a40d226644b300100181b44c96600200313259800800c0e2264b30010018acc004c11c00a26605601c44b3001002899816806912cc00400a330010078cc0040162b3001303a3046375403113259800800c0fa264b30010018992cc00400608113259800800c566002609e00513322598009820000c4c9660020030448992cc00400608b0458992cc004c15000e26607000244b3001002803c4c96600200319800800c4c008c15c00e092815a093049824c125058182a80120a682320a23758003045822a0a83051001413c609a6ea80162b300130360018992cc00400608913259800800c11608b13259800982a001c4cc0e000489660020050078992cc0040063300100189801182b801c12502b4126093049824a0b03055002414d04641446eb000608b045415060a20028278c134dd5002c566002607e00313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a058824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004c104006264b300100182244c966002003045822c4cc89660020030478992cc0040062b3001305600289981d001912cc00400a2b300130473053375400713259800800c12e264b300100182641320991332259800800c13a264b3001001827c13e09f13259800982f001c03e0a082d8dd6800c13d05e182d800a0b2375a00260b400504c416c60b000282b0c150dd5001c12905144c96600200319800800c4c008c16400e096817209704b825c12d05a182b80120aa82420a68244122091048415c60a80028290dd60009829801411608a82a0c14400504f18269baa0058acc004cdc3a401000313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05a824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401400313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05a824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401800313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05c824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401c00313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05c824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a402000315980098269baa005801410d04e410d04a20944128825104a20944128825104a0cc00400626606603244b300100281544c96600200304482244c9660020030458992cc00400608d046823411a26644b300100182444c966002003159800982b801466002003130073057008824a062824a0a8824c126093049416060aa0028298dd7000982a00120aa305200141406eb0006089044414c60a000482720828110c128dd5001c10504c4106083041820a0a0304d001412c609a00503f81fc0fe07e8270c12c00504918239baa01881ea08881ea04c81ea04c8992cc00400607d03e81f44c8c00cc134010dd6800c0f904d182500120908992cc00400607903c81e44c8c00cc12c010dd6800c0f104b1824001208c81ca08881cc0e60730394120608a0028218c11400a06f03781bc0dd0461821800a082375a0026084005034410c608000281f0dd6800981f80140c5040181e800a0763758002607800502e817207a303a00140e06eb0004c0e400a05702b40e8606e00281a8c0ccdd500340a503040a50341bac00181440a1037181a000a0643034002813409a04d02640d460640028180c0c800a04902481240910331818000a05c302c375400302240a502240b5022811408a0448188c0b800502c18151baa00d8acc004c04c01a264b3001001810c4c96600200315980098180014566002603e60566ea8006264b3001001811c4c96600200313259800800c096264b3001001813409a264b300130350038acc004c090c0c0dd500244c9660020030288992cc004006264b300100181544c966002003159800981c8014566002605060686ea800e264b300100181644c96600200313259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281944cc89660020030348992cc00400606b03581ac4cc89660020030378992cc00400607103881c44cc896600200303a8992cc00400607703b81dc4c9660026094007159800981c98229baa0108992cc00400607b13259800800c0fa07d03e899912cc00400608113259800800c1060830418992cc004c14000e2b300101382144c966002003043821c10e26644b3001001822c4c966002003046823411a264b300130550038acc00405608f13259800800c122091048899912cc00400609513259800800c12e09704b8992cc004c16800e3300102289981f013112cc00400a06b13259800800c13e09f13259800800c142264b3001001828c1460a3051899912cc0040060a713259800800c56600260c400519800800c4c01cc1880220a881e20a882fa0a905482a41510631830000a0bc375c00260be0048300c17400505b1bac001827c13d05e182d80120b2826205a82620ae375a00304b416860ae00282a8dd6800982b00b4121057182a00aa0a4823a0a4375a003046415460a40028280dd6800982880a410d0521827809a09a821209a375a0030414140609a0028258dd6800982600140f904d1825000a0903046375402103c410d03c411c6eb40060768250c11c0050451bad001304600281c208e304400141086eb4004c10c00a06a8220c10400503f1bac001304000281940c9041181f000a0783758002607a00502f817a07c303b00140e4607600502d816c0b605a81e0c0e4005037181a9baa003815a064815a06c815c0ae05702b40e8606e00281a8c0dc00a053029814c0a5038181a800a0663031375400902740b902740c86eb000604d02640d460640028180c0c800a04902481240910331818000a05c302c375400302240a502240b5022811408a0448188c0b800502c18151baa00d810204e409c405202901480a2046332232598009809980f9baa001898101919bb03024001302430250013758604660406ea80062a6603c9218b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a202020202900164074646600200200644b30010018a60103d87a80008992cc004cdd7981080099ba548010cc090cdd2a4004660486ea40112f5c097ae0899ba548000cc090dd3998121810800998121811000a5eb812f5c11330030033026002407c60480028110dd59810181098109810981098109810981098109810980e9baa00b375c6040603a6ea8004c8c8cc89660020051598009809980f9baa0028992cc00400603113259800800c06603301980cc4cc896600200301b8992cc0040062b300130290028acc004c060c090dd5000c4c96600200301d8992cc004006264b300100180fc4c96600200313259800800c086264b30010018acc004c0bc00a2b3001301e302a375400b13259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c566002608600519800809c6600202319800807c6600201b19800805c6600201319800803c6600200b19800801c660020031598009819181f1baa0178992cc00400606f13259800800c0e207103881c44cc896600200303a8992cc00400607703b81dc0ee26644b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc0040062b300130540028cc0040062b30013043304f375404d13259800800c122264b3001001824c12626644b3001001825c4c966002003159800982c80144cc0f400c896600200519800801c40e609c81ea264b30010018acc004c12cc15cdd5000c4c9660020030508992cc0040060a3051899912cc0040060a713259800800c1520a9054899912cc0040060ad13259800800c15e0af0578992cc004c19400e2b300100782c44c96600200305982cc1660b31332259800800c16e264b300100182e41720b905c8992cc004c1a800e2602060d402305d419c6eb800506a1833800a0ca375c00260cc0108338c19001d06241610621bad00182ba0ca306200141806eb4004c18400a0a88310c17c00505d1bac001305e002828c14505f182e000a0b43058375400304f415504f827c13e09e82e8c1680090584131056413209904c82620b4305700141546eb0004c15800a093049415c60a80028290c140dd5013411d04d411d035411d051411e08f047823a0aa305200141406eb8004c1440090521827800a09a375c002609c0048278c13000504a1bae001304b002413060920028238dd700098240012092304600141106eb8004c1140090461821800a082303f375402f03640f10364081036408103640810364081036408103640810364081036408103640810364081036410103681b40da06c8220c10400503f182080140d206903481a2084303f00140f4607e00503281940ca0648200c0f400503b181e80140c2061030818207c303b00140e4607600502e81740ba05c81e0c0e4005037181c80140b205902c8162074303700140d4606e00502a81540aa05481c0c0d4005033181a80140a2051028814206c303300140c46066005026813409a04c81a0c0c400502f181880140920490248122064302f00140b460566ea80160448142044816204502281140890301816800a056302d002810408204102040b860560028148c0ac00a03d01e80f407902c1814800a04e3025375400301c408901c409901c80e40720388150c09c0050251bae0013026002409c60480028110c080dd5001405d01d405e02f01780ba04a32598009809180f1baa0018992cc004c048c07cdd5000c4c08cc080dd5000c54cc0792413365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640746014603e6ea8c024c07cdd51811180f9baa0018a9980ea494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016407064660020026eb0c024c07cdd5006912cc0040062980103d87a80008992cc004c8cc004004c014dd5980618111baa300c3022375400444b30010018a508acc004cdc79bae302600101f8a518998010011813800a040409113374a900019811800a5eb82266006006604a00480f0c08c005021111194c004006009003400444464b300130180018992cc00400600d13259800800c01e00f007803c4c96600260580070058042052375c0028160c0a400502718129baa0038acc004c038006264b300100180344c966002003007803c4c96600260580071330100012259800801401e264b30010018cc00402a00313002302f003402900b805c02e0168180c0b400902b40210291bac001803c01d02c1814800a04e30253754007159800980b800c4c9660020030068992cc00400600f0078992cc004c0b000e26602000244b3001002803c4c96600200319800805400626004605e006805201700b805c02d0301816801205680420523758003007803a0583029001409c604a6ea800e2b300130190018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009817801c4cc04c004896600200500a8992cc0040063300100d800c4c008c0c800d00d403a01d00e8072066303000240b900b40b06eb000601500a40bc60580028150dd68009815801401d02c1814800a04e3025375400715980099b8748020006264b300100180344c966002003007803c01e264b3001302c003802c0210291bad001803a0583029001409c604a6ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c96600260580070058042052375a00300740b060520028138c094dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260580070058042052375c0028160c0a400502718129baa003802a04440888111022204440888110c08cdd50011800800912cc004006297ae0899810180e9810800998010011811000a03e222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130250028cc00400e264b300130150018992cc00400600f13259800800c566002605000513259800980c000c4c96600200300a8992cc0040062b3001302b0028cc00400601900b403900b40a100b805c02e0168160c0a400502718129baa0028acc004c038006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013032003809c04902f1bad001808a064302f00140b46eb4004c0b800a01c8178c0b000502a1bad001302b002805a0583029001409c604a6ea800a012811102218119baa001804204a804402201100840a4604c0028120c088dd50014566002601600315980098111baa002803c019023401901f203e3020375400300540210054089005802c01600a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d0888c966002602200313259800800c00e264b300100180240120090048992cc004c09400e00d00540886eb80050251811000a040301e37540091598009803800c566002603c6ea8012007002407d002406c80d8c070dd5001911192cc004c040006264b3001001801c4c9660020030048024012009132598009812001c01a00a8108dd7000a0483021001407c603a6ea80122b300130060018992cc00400600713259800800c01200900480244c9660026048007006802a042375c0028120c08400501f180e9baa0048012034406860366ea800d1598009804001c4c8c9660026012602a6ea8c064c06800a294629410131bad30180013014375400916404480886026602800260260088a4d15330094911856616c696461746f722072657475726e65642066616c7365001365640201" + : "591316010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003370e9001488c8cc00400400c88cc00c004c00800a44b30013009300e375400513232332259800980b801c0162c80a0dd6980a0009bae30140023014001300f37540051640349111114c00488c96600260200031323259800980e00140122c80c8dd7180d000980b1baa0038acc004c0180062b3001301637540070028b202e8b2028405060286ea800a4464b30013010001899192cc004c07000a0091640646eb8c068004c058dd5001c566002600c0031323259800980e00140122c80c8dd7180d000980b1baa0038b2028405060286ea800a44b3001300f30143754005132323259800980e00144c8c9660026028003159800980d1baa00280345901b456600260140031323259800981000140222c80e8dd6980f000980d1baa0028acc004c04c0062b3001301a37540050068b20368b2030406080c0c060dd5000980d801c59019192cc004c0600062b3001337129002180b800c5a26010602e00280b22c80c8dd5180d000980d000980a9baa0028b202691192cc004c04000626464b3001301c0028024590191bad301a001301637540071598009803000c566002602c6ea800e00516405d16405080a0c050dd500124444646645300133223259800980b980e1baa0018980e9919bb030210013021302200137586040603a6ea80062c80d8c8cc00400400c896600200314c0103d87a80008992cc004cdd7980f00099ba548010cc084cdd2a4004660426ea40112f5c097ae0899ba548000cc084dd399810980f00099810980f800a5eb812f5c113300300330230024074604200280f8dd5980e980f180f180f180f180f180f180f180f180f180d1baa00f375c603a60346ea800a44b30013016301b375400513232323322598009812801c4cc020c0900144cc03c00801a2c8110c088004dd6981100118110009810800980e1baa0028b2034912cc004c058c06cdd500144c8c8c8c8ca60026eb4c0900066eb4c0900126eb4c09000e604800491112cc004c0a401626601860500122660260020151640983024001302300130220013021001301c37540051640692259800980b180d9baa00289919191919194c004dd61812800cdd69812802cdd698128024dd69812801cc0940092222259800981580344cc038c0a802c4cc0540044c8cc8966002605c00700f8b2056375c60560026eb8c0ac018c0ac0162c8140604a002604800260460026044002604200260386ea800a2c80d244b30013016301b37540051323232323298009bac30240019bad30240049bad3024003981200124444b30013029005899806181400489980980089919912cc004c0b000e01b1640a46eb8c0a4004dd7181480298148024590260c090004c08c004c088004c084004c070dd500145901a2444453001159800980c980f1baa0058acc004cdc3a4020603c6ea8c088c07cdd51808180f9baa3022301f375400b1329800998009bac30233020375402a4b3001301130203754604860426ea8c090c084dd5180918109baa0018a518a50407d301130203754602260406ea802246048604a604a604a0029112cc004c09c00e264b30013375e604e60486ea8c09cc090dd5180a98121baa0013374a900119813180118121baa0034bd70456600266ebcc09cc0a0c0a0c0a0c0a0c090dd500ca60101a0008acc004c05260026eacc054c090dd5180a98121baa0019bae3002302437540071480012223322330010010023232330010010052259800800c00e2646644b30013372201000515980099b8f0080028800c01902b44cc014014c0c401102b1bae302a00137566056002605a002815852f5bded8c044b3001001801c4c8cc896600266e452210d7374616b696e675f7661756c74000028acc004cdc7a4410d7374616b696e675f7661756c74000028800c01902a44cc014014c0c001102a1bae3029001375a60540026058002815113259800980f18121baa0018992cc004c080c094dd5000c4c8c9660026058005132598009816800c4c96600266ebcc0b4c0a8dd5000981698151baa301b302a375400f15980099baf301b302a3754002603660546ea8c06cc0a8dd5003c56600266ebcc020c0a8dd5000a6103d87a80008992cc004c090c0a8dd5000c4c966002604c60566ea80062646464653001375a6066003375a6066009375a6066007375a606600491112cc004c0e00162b30013370e6eb4c0dcc0d0dd50049bad30373034375401f15980098171bad30253034375401315980098171bad3026303437540131302e375a602460686ea80262941032452820648a5040c91640d4303300130320013031001302c37540031640a8605c60566ea80062c8148c070c0a8dd5000c590284590284590281816000c5902a1991198058011192cc004c070c0acdd5000c4cdc78019bae302f302c375400314a08150c0b8c0acdd5181718159baa0013758603460506ea8074dd7180318141baa0078b2052375a6054002604c6ea80062c8120c0a0c094dd5000c59023180b18121baa301530243754003164089164089164088604c0071640902232330010010032259800800c52f5c11332259800980280144cc09c008cc0100100062660080080028118c098004c09c0050244528203a8b203a980f1baa005912cc004c06cc080dd500144c8c8c8c966002605200513259800981018129baa0018991919912cc004c0b800e26602e605a0100151640ac6eb8c0ac004dd71815801181580098131baa0018b204830280048b204c375c604e002604e002604c00260426ea800a2c80fa4464b3001301c0018992cc004c09c006266022604c00200716409060446ea800e2b300130120018992cc004c09c006264b3001301e30233754003132323259800981580144cc048c0a800c4cc04800401e2c8140c0a4004c0a4004c090dd5000c590221813000c5902418111baa0038b2040408060406ea8009222259800980e801c4c966002605000313259800980f98121baa001899191919912cc004c0b800e264b30013025302a375400313232323232329800981a000cdd6181a002cdd6981a0024dd6981a001cc0d00092222259800981d00344cc094dd6181c805912cc00400a26604e00c44b30010028998120028998120048acc004c0d0c0e4dd5008c4c8c8c9660026082005132332259800981d00144c966002608a0031330303758608800244b300100280244cc094c1180084c004c11c00904445904218201baa0038acc004c0c000a264b300130450018998181bac30440012259800801401226604a608c00426002608e00482222c8210c100dd5001c5660026072005132598009822800c4cc0c0dd61822000912cc00400a0091330263046002130013047002411116410860806ea800e2b3001303b00289919192cc004c11c00a2660646eb0c11800c8966002005159800981f98221baa0038991919912cc004c13400e0151641286eb4c128004dd69825001182500098229baa0038b20868998141824001098009824801208c8b2088304500130450013040375400715980099b874802000a264b300130450018998181bac30440012259800801401226604e608c00426002608e00482222c8210c100dd5001c56600266e1d200a0028992cc004c1140062660606eb0c1100048966002005004899813982300109800982380120888b20843040375400715980099b874803000a264b300130450018998181bac304400122598008014012266050608c00426002608e00482222c8210c100dd5001c56600266e1d200e0028992cc004c1140062660606eb0c1100048966002005004899814182300109800982380120888b20843040375400715980099b874804000a2b3001304037540070018b20828b207c40f881f103e207c40f881f103e207c303d375400226603800426605a02c44b3001002810c4c8cc8966002608e00313302230460011300430470058b2088375c6088002608a0026eb0c10c0090411820001c5903e181f800981f800981d1baa0118b20708991801181f8019bad303d00240ed1323002303d003375a607600481ca2c81b86068002606600260640026062002606000260566ea80062c8148c0b40162c8158dd6181580098158011815800981500098129baa0018b204630270018b204a302337540131598009809801c4c966002605000313259800980f98121baa00189919192cc004c0b000a264b300130233028375400313232598009817800c4c966002604c60566ea800626464646464653001375a606a0033758606a00b3758606a009375a606a007375a606a004911112cc004c0ec01a264b3001303230373754003132323322598009820001c4c8cc896600260860071323322598009823001c4cc080c1140604cc0c406c896600200502589919912cc004c12c00626604c609400226008609600b1641206eb8c120004c124004dd61823801208a8b2086375a60860026eb4c10c030c10c02e2c8200dd698200009bad304000a30400098b207a375a607a0026eb4c0f4008c0f4004c0e0dd5000c59036181d005c590380c0d4004c0d0004c0cc004c0c8004c0c4004c0b0dd5000c5902a181700145902c181700098149baa0018b204e302b0038b2052375860540026054002604a6ea80062c8118c09c0062c8128c08cdd5004c5902120420cc88c8cc8966002602e60386ea800a2646644b300130240018992cc004c06cc080dd5000c4c8c8c8cc8966002605400713259800981098131baa0018991919191919191919194c004c0d000660680133034008981a003cc0d001a606800b3034004981a001cc0d000922222222259800981f00544cc078c0f404c4cc0780204cc07801c4cc0780184cc0780144cc0780104cc07800c4cc0780084cc0780044cc078024566002606860726ea8056264646464653001375c608400330430019bae30420059bae30420049bae30420039bae3042002488888966002609200b1330323048005159800981f98221baa02189919192cc004c13000a26606e6eb0c12c00c8966002005133033003102f8992cc004c114c128dd5000c4c8c8c8cc896600260a800713232332259800982c001c4c02cc1600322c82a8dd7182a8009bae30550023055001375860a600b1641446eb4c144004dd698288011828800982800098259baa0018b2092304d002412d16412460940026094002608a6ea80862c821a2c8230608400260820026080002607e00260746ea80562c81c22c81d860680026066002606400260620026060002605e002605c002605a0026058002604e6ea80062c8128c0a40162c8138c09c004c09c008c09c004c098004c084dd5000c5901f1811800c590211bae30210013022001301d375400516406c64b30013016301b375400313259800980b180e1baa00189810180e9baa0018b2036300e301c3754601a60386ea8c07cc070dd5000c5901a19198008009bac300d301c375402244b30010018a60103d87a80008992cc004c8cc004004c014dd59808180f9baa3010301f375400444b30010018a508acc004cdc79bae302300101d8a518998010011812000a03c408513374a900019810000a5eb82266006006604400480e0c08000501e18010011801001112cc004006297ae089980e180c980e80099801001180f000a0362223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300c0018992cc004c0840062660186eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc030dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998071bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b30013370e9004000c4c8c96600260440050048b203e375a604000260386ea800e2b30013370e9005000c4c8c96600260440050048b203e375a604000260386ea800e2b30013370e9006000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a2034406880d101a2034301a375400444b3001301430193754005132323259800981080144cc018c08000c4c9660026030003159800980f1baa002802c5901f4566002601c00313232598009812001401e2c8108dd71811000980f1baa0028acc004c05c00626464b30013024002803c590211811000980f1baa0028b2038407080e0c070dd5000c5901e180f800980f800980d1baa0028b203022598009809980c1baa00289919192cc004c08000a266010603e006264b300130170018992cc004c08800626464b3001301a0018992cc004c09400626601a604800201316408860406ea800a2b3001301000189919194c004dd69813000cdd69813001cdd698130012444b3001302a0048074590270c098004c094004c080dd500145901e203c301e3754002604200316407c603a6ea800a2b3001300d0018acc004c074dd500140162c80f22c80d901b180d9baa0018b203a301e001301e0013019375400516405c456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d9590021", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolMigrationV1_0ToV1_1ProtocolMigrationV1_0ToV1_1Publish { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5927e2010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012f657870656374206f75747075745f646174756d3a205661756c74446174756d5631203d206f75747075745f6461746100168a99801a4953657870656374205b7661756c745f6f75747075745d203d0a2020202066696e645f7363726970745f6f7574707574732874782e6f7574707574732c2072656769737472792e7374616b696e675f7661756c742900168a99801a492f65787065637420696e7075745f646174756d3a205661756c74446174756d56315f30203d20696e7075745f6461746100168a99801a49df657870656374205b7661756c745f696e7075745d203d0a202020206c6973742e66696c746572280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a20202020202020207768656e20696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c206973207b0a20202020202020202020536372697074285f29202d3e20547275650a20202020202020202020566572696669636174696f6e4b6579285f29202d3e2046616c73650a20202020202020207d0a2020202020207d2c0a202020202900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f6461746100164888889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038cc004c05cc050dd500248c060c064c064006460306032003370e9001488c8cc00400400c88cc00c004c00800922222323322323259800800c66002444b300130143020375400713259800800c00a264b30010018992cc00400600913259800800c566002605200519800801c4c966002603200315980098131baa002803c0190274566002601e00313259800800c01e264b300100180440220110088992cc004c0b400e01500940a86eb800502d1815000a05030263754005159800980c000c4c9660020030078992cc004c0b000a01300840a460540028140c098dd500140190232046408c60486ea800600a805a00a813200b005802c01502a1813800a04a3027002801c00e00700340a0604a0028118c084dd5001c00501e488966002602860406ea800e264b300100180144c96600200313259800800c012264b30010018992cc004c0980062b30013371290021812800c01a264b3001302b0048992cc004c06c0062b30013028375400d00980420528acc004c044006264b3001001804c4c96600200300a805402a264b3001302f003806402d02c1bad001805205e302c00140a860506ea801a2b3001301a0018acc004c0a0dd50034026010814a0108129025204a3026375400b00740a0601e604a002811a00c8138dd5000c01600b005802a05430270014094604e005003801c00e0068140c09400502318109baa003800a03c9112cc004c050c080dd5001c4c9660020030028992cc004006007003801c00e26644b3001001802c4c966002003006803401a264b3001302b003804401d0281bad0018032056302800140986eb8004c09c0090281812800a0463021375400700140792223259800980a800c4c9660020030038992cc00400600900480244c9660026052007006802a04c375a00300440a4604c0028120c088dd50024566002601600315980098111baa004801c009023400901f203e3020375400722259800980a18101baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300100180344c966002003007803c01e00f132598009816001c5660026036604e6ea801a264b3001001804c4c96600200300a805402a0151332259800800c032264b3001001806c03601b00d8992cc004c0c800e3300100a807c039013403902f1bae00140c8605e0028168dd70009817001205e302c00140a860506ea801a010812a0108148dd7000a0583029001409c6052005005802c01600a8150c09c0050251813801400e007003801a0503025001408c60426ea800e00280f22b30013011301d375400315980099b8748040c074dd51810980f1baa3008301e37546042603c6ea800626530013300137586044603e6ea80349660026012603e6ea8c08cc080dd5181198101baa300a3020375400314a314a080ea6012603e6ea8c024c07cdd5001c8c08cc090c090c09000522259800801c06a264b300130270048acc004cdd7981318119baa302630233754601a60466ea8004cdd2a40046604a600460466ea800d2f5c115980099baf302630273027302730273023375402298101a0008acc004c03260026eacc034c08cdd5180698119baa0019bae3002302337540071480012223322330010010023232330010010052259800800c00e2646644b30013372201000515980099b8f0080028800c01902944cc014014c0c00110291bae3029001375660540026058002815052f5bded8c044b3001001801c4c8cc896600266e452210d7374616b696e675f7661756c74000028acc004cdc7a4410d7374616b696e675f7661756c74000028800c01902844cc014014c0bc0110281bae3028001375a60520026056002814913259800980b18119baa0018992cc0040062b300130183024375400313259800800c07e264b30010018104082041132598009816001c4c9660020030238992cc004c0b800a2b30013375e605a60546ea8004c0b4c0a8dd5180a18151baa0088acc004cdd7980a18151baa0013014302a3754602860546ea80222b30013375e601260546ea8005300103d87a80008992cc004c074c0a8dd5000c4c966002003159800980f98159baa0018992cc00400605113259800800c0a6053029899912cc00400605713259800800c0b205902c899912cc00400605d13259800800c0be05f02f899912cc00400606313259800800c0ca0650328992cc004c0f000e2b30013370e6eb4c0ecc0e0dd50069bad303b3038375402915980098159bad30223038375401b15980098159bad30233038375401b1302b375a602e60706ea803629410354528206a8a5040d503340e46eb400606481e0c0e40050371bad0013038002817a072303600140d06eb4004c0d400a05881b0c0cc0050311bad0013032002814a066303000140b860586ea800604e814a04f027813c09d031181718159baa0018a99814a493465787065637420496e6c696e65446174756d286f75747075745f6461746129203d207661756c745f6f75747075742e646174756d001640a0602a60546ea80062a6605092012c657870656374207661756c745f6f75747075742e7265666572656e63655f736372697074203d3d204e6f6e650016409d153302849135657870656374207661756c745f6f75747075742e76616c7565203d3d207661756c745f696e7075742e6f75747075742e76616c75650016409d153302849139657870656374207661756c745f6f75747075742e61646472657373203d3d207661756c745f696e7075742e6f75747075742e616464726573730016409d02440ac60580028150cc88cc0300088c966002602a60566ea8006266e3c00cdd7181798161baa0018a5040a4605c60566ea8c0b8c0acdd50009bac30133028375402c6eb8c01cc0a0dd500440850291bad00181020583029001409c604a6ea800603c811203d01e80f407902a181398121baa0018a998112493965787065637420496e6c696e65446174756d28696e7075745f6461746129203d207661756c745f696e7075742e6f75747075742e646174756d00164084601c60466ea8c034c08cdd5000c54cc08524017e6578706563740a202020206173736574732e7175616e746974795f6f66280a2020202020207661756c745f696e7075742e6f75747075742e76616c75652c0a20202020202072656769737472792e7374616b696e675f7661756c742c0a202020202020227374616b696e675f7661756c74222c0a2020202029203d3d20310016408115330214911d6578706563742074782e6d696e74203d3d206173736574732e7a65726f001640811533021491676578706563740a202020207661756c745f696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074280a20202020202072656769737472792e7374616b696e675f7661756c742c0a20202020290016408101b4090604a006811844646600200200644b30010018a5eb8226644b3001300500289981300119802002000c4cc01001000502118128009813000a0468a50406d153301c49013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d65720016406d301d375400291111114c004889660026036604e6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c0cc00a330010068cc004006013008403d008404500840c1008804402201081a0c0c400502f1bad0013030002802a062302e00140b0605c005003801c00e0068178c0b000502a18141baa003800a04a9112cc004c06cc09cdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b13259800981c801c6600201919800802403e01c80aa01c80ba01c81b0dd6800c035039181b000a0683036002805c02e01700b40dc60680028190dd6800981980140210341818800a05e375a002606000500540c4605c0028160c0b800a007003801c00d02f1816000a05430283754007001409522259800980d98139baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002607800719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c966002608200701780b207c375c0028208c0f800503c1bae001303d00240f8607600281ca02280c202280d202281c8dd6000c04202081e0c0e4005037181c801403a01d00e8072074303700140d46eb4004c0d800a01681b8c0d00050321bad00130330028042068303100140bc6eb4004c0c000a00a8188c0b800502c1817001400e007003801a05e302c00140a860506ea800e002812a444b3001301b3027375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c0e400e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c0f800e02901340ec6eb800503e181d800a072375c002607400481d8c0e00050364039015403901740390361bac001806c035039181b000a0683036002805c02e01700b40dc60680028190dd6800981980140210341818800a05e375a002606000500540c4605c0028160c0b800a007003801c00d02f1816000a0543028375400700140952223259800980e000c4c9660020030038992cc0040062b3001302f0028cc00400600b004402d00440b100480240120088180c0b400502b18149baa0048acc004c048006264b3001001801c4c96600200315980098178014566002603c60546ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c0cc00a330010038cc0040060130084041008404100840c1008804402201081a0c0c400502f1818801401a00d0068032064302f00140b460566ea80060088142008816200900480240110301816800a0563029375400900240988130c09cdd5001a44444b3001301d0068992cc00400604313259800800c5660026060005159800980f98159baa0018992cc00400604713259800800c4c9660020030258992cc004006264b3001001813c4c96600200302881444c966002606e007159800981318191baa0068992cc00400605513259800800c0ae0571332259800800c0b6264b300100181740ba26644b300100181844c966002003031818c0c626644b3001001819c4c96600200303481a40d226644b300100181b44c96600200313259800800c0e2264b30010018acc004c11c00a26605601c44b3001002899816806912cc00400a330010078cc0040162b3001303a3046375403113259800800c0fa264b30010018992cc00400608113259800800c566002609e00513322598009820000c4c9660020030448992cc00400608b0458992cc004c15000e26607000244b3001002803c4c96600200319800800c4c008c15c00e092815a093049824c125058182a80120a682320a23758003045822a0a83051001413c609a6ea80162b300130360018992cc00400608913259800800c11608b13259800982a001c4cc0e000489660020050078992cc0040063300100189801182b801c12502b4126093049824a0b03055002414d04641446eb000608b045415060a20028278c134dd5002c566002607e00313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a058824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004c104006264b300100182244c966002003045822c4cc89660020030478992cc0040062b3001305600289981d001912cc00400a2b300130473053375400713259800800c12e264b300100182641320991332259800800c13a264b3001001827c13e09f13259800982f001c03e0a082d8dd6800c13d05e182d800a0b2375a00260b400504c416c60b000282b0c150dd5001c12905144c96600200319800800c4c008c16400e096817209704b825c12d05a182b80120aa82420a68244122091048415c60a80028290dd60009829801411608a82a0c14400504f18269baa0058acc004cdc3a401000313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05a824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401400313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05a824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401800313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05c824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401c00313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05c824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a402000315980098269baa005801410d04e410d04a20944128825104a20944128825104a0cc00400626606603244b300100281544c96600200304482244c9660020030458992cc00400608d046823411a26644b300100182444c966002003159800982b801466002003130073057008824a062824a0a8824c126093049416060aa0028298dd7000982a00120aa305200141406eb0006089044414c60a000482720828110c128dd5001c10504c4106083041820a0a0304d001412c609a00503f81fc0fe07e8270c12c00504918239baa01881ea08881ea04c81ea04c8992cc00400607d03e81f44c8c00cc134010dd6800c0f904d182500120908992cc00400607903c81e44c8c00cc12c010dd6800c0f104b1824001208c81ca08881cc0e60730394120608a0028218c11400a06f03781bc0dd0461821800a082375a0026084005034410c608000281f0dd6800981f80140c5040181e800a0763758002607800502e817207a303a00140e06eb0004c0e400a05702b40e8606e00281a8c0ccdd500340a503040a50341bac00181440a1037181a000a0643034002813409a04d02640d460640028180c0c800a04902481240910331818000a05c302c375400302240a502240b5022811408a0448188c0b800502c18151baa00d8acc004c04c01a264b3001001810c4c96600200315980098180014566002603e60566ea8006264b3001001811c4c96600200313259800800c096264b3001001813409a264b300130350038acc004c090c0c0dd500244c9660020030288992cc004006264b300100181544c966002003159800981c8014566002605060686ea800e264b300100181644c96600200313259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281944cc89660020030348992cc00400606b03581ac4cc89660020030378992cc00400607103881c44cc896600200303a8992cc00400607703b81dc4c9660026094007159800981c98229baa0108992cc00400607b13259800800c0fa07d03e899912cc00400608113259800800c1060830418992cc004c14000e2b300101382144c966002003043821c10e26644b3001001822c4c966002003046823411a264b300130550038acc00405608f13259800800c122091048899912cc00400609513259800800c12e09704b8992cc004c16800e3300102289981f013112cc00400a06b13259800800c13e09f13259800800c142264b3001001828c1460a3051899912cc0040060a713259800800c56600260c400519800800c4c01cc1880220a881e20a882fa0a905482a41510631830000a0bc375c00260be0048300c17400505b1bac001827c13d05e182d80120b2826205a82620ae375a00304b416860ae00282a8dd6800982b00b4121057182a00aa0a4823a0a4375a003046415460a40028280dd6800982880a410d0521827809a09a821209a375a0030414140609a0028258dd6800982600140f904d1825000a0903046375402103c410d03c411c6eb40060768250c11c0050451bad001304600281c208e304400141086eb4004c10c00a06a8220c10400503f1bac001304000281940c9041181f000a0783758002607a00502f817a07c303b00140e4607600502d816c0b605a81e0c0e4005037181a9baa003815a064815a06c815c0ae05702b40e8606e00281a8c0dc00a053029814c0a5038181a800a0663031375400902740b902740c86eb000604d02640d460640028180c0c800a04902481240910331818000a05c302c375400302240a502240b5022811408a0448188c0b800502c18151baa00d810204e409c405202901480a2046332232598009809980f9baa001898101919bb03024001302430250013758604660406ea80062a6603c9218b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a202020202900164074646600200200644b30010018a60103d87a80008992cc004cdd7981080099ba548010cc090cdd2a4004660486ea40112f5c097ae0899ba548000cc090dd3998121810800998121811000a5eb812f5c11330030033026002407c60480028110dd59810181098109810981098109810981098109810980e9baa00b375c6040603a6ea8004c8c8cc89660020051598009809980f9baa0028992cc00400603113259800800c06603301980cc4cc896600200301b8992cc0040062b300130290028acc004c060c090dd5000c4c96600200301d8992cc004006264b300100180fc4c96600200313259800800c086264b30010018acc004c0bc00a2b3001301e302a375400b13259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c566002608600519800809c6600202319800807c6600201b19800805c6600201319800803c6600200b19800801c660020031598009819181f1baa0178992cc00400606f13259800800c0e207103881c44cc896600200303a8992cc00400607703b81dc0ee26644b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc0040062b300130540028cc0040062b30013043304f375404d13259800800c122264b3001001824c12626644b3001001825c4c966002003159800982c80144cc0f400c896600200519800801c40e609c81ea264b30010018acc004c12cc15cdd5000c4c9660020030508992cc0040060a3051899912cc0040060a713259800800c1520a9054899912cc0040060ad13259800800c15e0af0578992cc004c19400e2b300100782c44c96600200305982cc1660b31332259800800c16e264b300100182e41720b905c8992cc004c1a800e2602060d402305d419c6eb800506a1833800a0ca375c00260cc0108338c19001d06241610621bad00182ba0ca306200141806eb4004c18400a0a88310c17c00505d1bac001305e002828c14505f182e000a0b43058375400304f415504f827c13e09e82e8c1680090584131056413209904c82620b4305700141546eb0004c15800a093049415c60a80028290c140dd5013411d04d411d035411d051411e08f047823a0aa305200141406eb8004c1440090521827800a09a375c002609c0048278c13000504a1bae001304b002413060920028238dd700098240012092304600141106eb8004c1140090461821800a082303f375402f03640f10364081036408103640810364081036408103640810364081036408103640810364081036410103681b40da06c8220c10400503f182080140d206903481a2084303f00140f4607e00503281940ca0648200c0f400503b181e80140c2061030818207c303b00140e4607600502e81740ba05c81e0c0e4005037181c80140b205902c8162074303700140d4606e00502a81540aa05481c0c0d4005033181a80140a2051028814206c303300140c46066005026813409a04c81a0c0c400502f181880140920490248122064302f00140b460566ea80160448142044816204502281140890301816800a056302d002810408204102040b860560028148c0ac00a03d01e80f407902c1814800a04e3025375400301c408901c409901c80e40720388150c09c0050251bae0013026002409c60480028110c080dd5001405d01d405e02f01780ba04a32598009809180f1baa0018992cc004c048c07cdd5000c4c08cc080dd5000c54cc0792413365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640746014603e6ea8c024c07cdd51811180f9baa0018a9980ea494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016407064660020026eb0c024c07cdd5006912cc0040062980103d87a80008992cc004c8cc004004c014dd5980618111baa300c3022375400444b30010018a508acc004cdc79bae302600101f8a518998010011813800a040409113374a900019811800a5eb82266006006604a00480f0c08c005021111194c004006009003400444464b300130180018992cc00400600d13259800800c01e00f007803c4c96600260580070058042052375c0028160c0a400502718129baa0038acc004c038006264b300100180344c966002003007803c4c96600260580071330100012259800801401e264b30010018cc00402a00313002302f003402900b805c02e0168180c0b400902b40210291bac001803c01d02c1814800a04e30253754007159800980b800c4c9660020030068992cc00400600f0078992cc004c0b000e26602000244b3001002803c4c96600200319800805400626004605e006805201700b805c02d0301816801205680420523758003007803a0583029001409c604a6ea800e2b300130190018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009817801c4cc04c004896600200500a8992cc0040063300100d800c4c008c0c800d00d403a01d00e8072066303000240b900b40b06eb000601500a40bc60580028150dd68009815801401d02c1814800a04e3025375400715980099b8748020006264b300100180344c966002003007803c01e264b3001302c003802c0210291bad001803a0583029001409c604a6ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c96600260580070058042052375a00300740b060520028138c094dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260580070058042052375c0028160c0a400502718129baa003802a04440888111022204440888110c08cdd50011800800912cc004006297ae0899810180e9810800998010011811000a03e222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130250028cc00400e264b300130150018992cc00400600f13259800800c566002605000513259800980c000c4c96600200300a8992cc0040062b3001302b0028cc00400601900b403900b40a100b805c02e0168160c0a400502718129baa0028acc004c038006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013032003809c04902f1bad001808a064302f00140b46eb4004c0b800a01c8178c0b000502a1bad001302b002805a0583029001409c604a6ea800a012811102218119baa001804204a804402201100840a4604c0028120c088dd50014566002601600315980098111baa002803c019023401901f203e3020375400300540210054089005802c01600a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d0888c966002602200313259800800c00e264b300100180240120090048992cc004c09400e00d00540886eb80050251811000a040301e37540091598009803800c566002603c6ea8012007002407d002406c80d8c070dd5001911192cc004c040006264b3001001801c4c9660020030048024012009132598009812001c01a00a8108dd7000a0483021001407c603a6ea80122b300130060018992cc00400600713259800800c01200900480244c9660026048007006802a042375c0028120c08400501f180e9baa0048012034406860366ea800d1598009804001c4c8c9660026012602a6ea8c064c06800a294629410131bad30180013014375400916404480886026602800260260088a4d15330094911856616c696461746f722072657475726e65642066616c7365001365640201" + : "591316010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003370e9001488c8cc00400400c88cc00c004c00800a44b30013009300e375400513232332259800980b801c0162c80a0dd6980a0009bae30140023014001300f37540051640349111114c00488c96600260200031323259800980e00140122c80c8dd7180d000980b1baa0038acc004c0180062b3001301637540070028b202e8b2028405060286ea800a4464b30013010001899192cc004c07000a0091640646eb8c068004c058dd5001c566002600c0031323259800980e00140122c80c8dd7180d000980b1baa0038b2028405060286ea800a44b3001300f30143754005132323259800980e00144c8c9660026028003159800980d1baa00280345901b456600260140031323259800981000140222c80e8dd6980f000980d1baa0028acc004c04c0062b3001301a37540050068b20368b2030406080c0c060dd5000980d801c59019192cc004c0600062b3001337129002180b800c5a26010602e00280b22c80c8dd5180d000980d000980a9baa0028b202691192cc004c04000626464b3001301c0028024590191bad301a001301637540071598009803000c566002602c6ea800e00516405d16405080a0c050dd500124444646645300133223259800980b980e1baa0018980e9919bb030210013021302200137586040603a6ea80062c80d8c8cc00400400c896600200314c0103d87a80008992cc004cdd7980f00099ba548010cc084cdd2a4004660426ea40112f5c097ae0899ba548000cc084dd399810980f00099810980f800a5eb812f5c113300300330230024074604200280f8dd5980e980f180f180f180f180f180f180f180f180f180d1baa00f375c603a60346ea800a44b30013016301b375400513232323322598009812801c4cc020c0900144cc03c00801a2c8110c088004dd6981100118110009810800980e1baa0028b2034912cc004c058c06cdd500144c8c8c8c8ca60026eb4c0900066eb4c0900126eb4c09000e604800491112cc004c0a401626601860500122660260020151640983024001302300130220013021001301c37540051640692259800980b180d9baa00289919191919194c004dd61812800cdd69812802cdd698128024dd69812801cc0940092222259800981580344cc038c0a802c4cc0540044c8cc8966002605c00700f8b2056375c60560026eb8c0ac018c0ac0162c8140604a002604800260460026044002604200260386ea800a2c80d244b30013016301b37540051323232323298009bac30240019bad30240049bad3024003981200124444b30013029005899806181400489980980089919912cc004c0b000e01b1640a46eb8c0a4004dd7181480298148024590260c090004c08c004c088004c084004c070dd500145901a2444453001159800980c980f1baa0058acc004cdc3a4020603c6ea8c088c07cdd51808180f9baa3022301f375400b1329800998009bac30233020375402a4b3001301130203754604860426ea8c090c084dd5180918109baa0018a518a50407d301130203754602260406ea802246048604a604a604a0029112cc004c09c00e264b30013375e604e60486ea8c09cc090dd5180a98121baa0013374a900119813180118121baa0034bd70456600266ebcc09cc0a0c0a0c0a0c0a0c090dd500ca60101a0008acc004c05260026eacc054c090dd5180a98121baa0019bae3002302437540071480012223322330010010023232330010010052259800800c00e2646644b30013372201000515980099b8f0080028800c01902b44cc014014c0c401102b1bae302a00137566056002605a002815852f5bded8c044b3001001801c4c8cc896600266e452210d7374616b696e675f7661756c74000028acc004cdc7a4410d7374616b696e675f7661756c74000028800c01902a44cc014014c0c001102a1bae3029001375a60540026058002815113259800980f18121baa0018992cc004c080c094dd5000c4c8c9660026058005132598009816800c4c96600266ebcc0b4c0a8dd5000981698151baa301b302a375400f15980099baf301b302a3754002603660546ea8c06cc0a8dd5003c56600266ebcc020c0a8dd5000a6103d87a80008992cc004c090c0a8dd5000c4c966002604c60566ea80062646464653001375a6066003375a6066009375a6066007375a606600491112cc004c0e00162b30013370e6eb4c0dcc0d0dd50049bad30373034375401f15980098171bad30253034375401315980098171bad3026303437540131302e375a602460686ea80262941032452820648a5040c91640d4303300130320013031001302c37540031640a8605c60566ea80062c8148c070c0a8dd5000c590284590284590281816000c5902a1991198058011192cc004c070c0acdd5000c4cdc78019bae302f302c375400314a08150c0b8c0acdd5181718159baa0013758603460506ea8074dd7180318141baa0078b2052375a6054002604c6ea80062c8120c0a0c094dd5000c59023180b18121baa301530243754003164089164089164088604c0071640902232330010010032259800800c52f5c11332259800980280144cc09c008cc0100100062660080080028118c098004c09c0050244528203a8b203a980f1baa005912cc004c06cc080dd500144c8c8c8c966002605200513259800981018129baa0018991919912cc004c0b800e26602e605a0100151640ac6eb8c0ac004dd71815801181580098131baa0018b204830280048b204c375c604e002604e002604c00260426ea800a2c80fa4464b3001301c0018992cc004c09c006266022604c00200716409060446ea800e2b300130120018992cc004c09c006264b3001301e30233754003132323259800981580144cc048c0a800c4cc04800401e2c8140c0a4004c0a4004c090dd5000c590221813000c5902418111baa0038b2040408060406ea8009222259800980e801c4c966002605000313259800980f98121baa001899191919912cc004c0b800e264b30013025302a375400313232323232329800981a000cdd6181a002cdd6981a0024dd6981a001cc0d00092222259800981d00344cc094dd6181c805912cc00400a26604e00c44b30010028998120028998120048acc004c0d0c0e4dd5008c4c8c8c9660026082005132332259800981d00144c966002608a0031330303758608800244b300100280244cc094c1180084c004c11c00904445904218201baa0038acc004c0c000a264b300130450018998181bac30440012259800801401226604a608c00426002608e00482222c8210c100dd5001c5660026072005132598009822800c4cc0c0dd61822000912cc00400a0091330263046002130013047002411116410860806ea800e2b3001303b00289919192cc004c11c00a2660646eb0c11800c8966002005159800981f98221baa0038991919912cc004c13400e0151641286eb4c128004dd69825001182500098229baa0038b20868998141824001098009824801208c8b2088304500130450013040375400715980099b874802000a264b300130450018998181bac30440012259800801401226604e608c00426002608e00482222c8210c100dd5001c56600266e1d200a0028992cc004c1140062660606eb0c1100048966002005004899813982300109800982380120888b20843040375400715980099b874803000a264b300130450018998181bac304400122598008014012266050608c00426002608e00482222c8210c100dd5001c56600266e1d200e0028992cc004c1140062660606eb0c1100048966002005004899814182300109800982380120888b20843040375400715980099b874804000a2b3001304037540070018b20828b207c40f881f103e207c40f881f103e207c303d375400226603800426605a02c44b3001002810c4c8cc8966002608e00313302230460011300430470058b2088375c6088002608a0026eb0c10c0090411820001c5903e181f800981f800981d1baa0118b20708991801181f8019bad303d00240ed1323002303d003375a607600481ca2c81b86068002606600260640026062002606000260566ea80062c8148c0b40162c8158dd6181580098158011815800981500098129baa0018b204630270018b204a302337540131598009809801c4c966002605000313259800980f98121baa00189919192cc004c0b000a264b300130233028375400313232598009817800c4c966002604c60566ea800626464646464653001375a606a0033758606a00b3758606a009375a606a007375a606a004911112cc004c0ec01a264b3001303230373754003132323322598009820001c4c8cc896600260860071323322598009823001c4cc080c1140604cc0c406c896600200502589919912cc004c12c00626604c609400226008609600b1641206eb8c120004c124004dd61823801208a8b2086375a60860026eb4c10c030c10c02e2c8200dd698200009bad304000a30400098b207a375a607a0026eb4c0f4008c0f4004c0e0dd5000c59036181d005c590380c0d4004c0d0004c0cc004c0c8004c0c4004c0b0dd5000c5902a181700145902c181700098149baa0018b204e302b0038b2052375860540026054002604a6ea80062c8118c09c0062c8128c08cdd5004c5902120420cc88c8cc8966002602e60386ea800a2646644b300130240018992cc004c06cc080dd5000c4c8c8c8cc8966002605400713259800981098131baa0018991919191919191919194c004c0d000660680133034008981a003cc0d001a606800b3034004981a001cc0d000922222222259800981f00544cc078c0f404c4cc0780204cc07801c4cc0780184cc0780144cc0780104cc07800c4cc0780084cc0780044cc078024566002606860726ea8056264646464653001375c608400330430019bae30420059bae30420049bae30420039bae3042002488888966002609200b1330323048005159800981f98221baa02189919192cc004c13000a26606e6eb0c12c00c8966002005133033003102f8992cc004c114c128dd5000c4c8c8c8cc896600260a800713232332259800982c001c4c02cc1600322c82a8dd7182a8009bae30550023055001375860a600b1641446eb4c144004dd698288011828800982800098259baa0018b2092304d002412d16412460940026094002608a6ea80862c821a2c8230608400260820026080002607e00260746ea80562c81c22c81d860680026066002606400260620026060002605e002605c002605a0026058002604e6ea80062c8128c0a40162c8138c09c004c09c008c09c004c098004c084dd5000c5901f1811800c590211bae30210013022001301d375400516406c64b30013016301b375400313259800980b180e1baa00189810180e9baa0018b2036300e301c3754601a60386ea8c07cc070dd5000c5901a19198008009bac300d301c375402244b30010018a60103d87a80008992cc004c8cc004004c014dd59808180f9baa3010301f375400444b30010018a508acc004cdc79bae302300101d8a518998010011812000a03c408513374a900019810000a5eb82266006006604400480e0c08000501e18010011801001112cc004006297ae089980e180c980e80099801001180f000a0362223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300c0018992cc004c0840062660186eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc030dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998071bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b30013370e9004000c4c8c96600260440050048b203e375a604000260386ea800e2b30013370e9005000c4c8c96600260440050048b203e375a604000260386ea800e2b30013370e9006000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a2034406880d101a2034301a375400444b3001301430193754005132323259800981080144cc018c08000c4c9660026030003159800980f1baa002802c5901f4566002601c00313232598009812001401e2c8108dd71811000980f1baa0028acc004c05c00626464b30013024002803c590211811000980f1baa0028b2038407080e0c070dd5000c5901e180f800980f800980d1baa0028b203022598009809980c1baa00289919192cc004c08000a266010603e006264b300130170018992cc004c08800626464b3001301a0018992cc004c09400626601a604800201316408860406ea800a2b3001301000189919194c004dd69813000cdd69813001cdd698130012444b3001302a0048074590270c098004c094004c080dd500145901e203c301e3754002604200316407c603a6ea800a2b3001300d0018acc004c074dd500140162c80f22c80d901b180d9baa0018b203a301e001301e0013019375400516405c456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d9590021", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolMigrationV1_0ToV1_1ProtocolMigrationV1_0ToV1_1Else { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5927e2010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692012f657870656374206f75747075745f646174756d3a205661756c74446174756d5631203d206f75747075745f6461746100168a99801a4953657870656374205b7661756c745f6f75747075745d203d0a2020202066696e645f7363726970745f6f7574707574732874782e6f7574707574732c2072656769737472792e7374616b696e675f7661756c742900168a99801a492f65787065637420696e7075745f646174756d3a205661756c74446174756d56315f30203d20696e7075745f6461746100168a99801a49df657870656374205b7661756c745f696e7075745d203d0a202020206c6973742e66696c746572280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a20202020202020207768656e20696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c206973207b0a20202020202020202020536372697074285f29202d3e20547275650a20202020202020202020566572696669636174696f6e4b6579285f29202d3e2046616c73650a20202020202020207d0a2020202020207d2c0a202020202900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f6461746100164888889660033001300b3754023370e90034dc3a4001370e90022444464653001301037540033014006980a0012444b300130060038cc004c05cc050dd500248c060c064c064006460306032003370e9001488c8cc00400400c88cc00c004c00800922222323322323259800800c66002444b300130143020375400713259800800c00a264b30010018992cc00400600913259800800c566002605200519800801c4c966002603200315980098131baa002803c0190274566002601e00313259800800c01e264b300100180440220110088992cc004c0b400e01500940a86eb800502d1815000a05030263754005159800980c000c4c9660020030078992cc004c0b000a01300840a460540028140c098dd500140190232046408c60486ea800600a805a00a813200b005802c01502a1813800a04a3027002801c00e00700340a0604a0028118c084dd5001c00501e488966002602860406ea800e264b300100180144c96600200313259800800c012264b30010018992cc004c0980062b30013371290021812800c01a264b3001302b0048992cc004c06c0062b30013028375400d00980420528acc004c044006264b3001001804c4c96600200300a805402a264b3001302f003806402d02c1bad001805205e302c00140a860506ea801a2b3001301a0018acc004c0a0dd50034026010814a0108129025204a3026375400b00740a0601e604a002811a00c8138dd5000c01600b005802a05430270014094604e005003801c00e0068140c09400502318109baa003800a03c9112cc004c050c080dd5001c4c9660020030028992cc004006007003801c00e26644b3001001802c4c966002003006803401a264b3001302b003804401d0281bad0018032056302800140986eb8004c09c0090281812800a0463021375400700140792223259800980a800c4c9660020030038992cc00400600900480244c9660026052007006802a04c375a00300440a4604c0028120c088dd50024566002601600315980098111baa004801c009023400901f203e3020375400722259800980a18101baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300100180344c966002003007803c01e00f132598009816001c5660026036604e6ea801a264b3001001804c4c96600200300a805402a0151332259800800c032264b3001001806c03601b00d8992cc004c0c800e3300100a807c039013403902f1bae00140c8605e0028168dd70009817001205e302c00140a860506ea801a010812a0108148dd7000a0583029001409c6052005005802c01600a8150c09c0050251813801400e007003801a0503025001408c60426ea800e00280f22b30013011301d375400315980099b8748040c074dd51810980f1baa3008301e37546042603c6ea800626530013300137586044603e6ea80349660026012603e6ea8c08cc080dd5181198101baa300a3020375400314a314a080ea6012603e6ea8c024c07cdd5001c8c08cc090c090c09000522259800801c06a264b300130270048acc004cdd7981318119baa302630233754601a60466ea8004cdd2a40046604a600460466ea800d2f5c115980099baf302630273027302730273023375402298101a0008acc004c03260026eacc034c08cdd5180698119baa0019bae3002302337540071480012223322330010010023232330010010052259800800c00e2646644b30013372201000515980099b8f0080028800c01902944cc014014c0c00110291bae3029001375660540026058002815052f5bded8c044b3001001801c4c8cc896600266e452210d7374616b696e675f7661756c74000028acc004cdc7a4410d7374616b696e675f7661756c74000028800c01902844cc014014c0bc0110281bae3028001375a60520026056002814913259800980b18119baa0018992cc0040062b300130183024375400313259800800c07e264b30010018104082041132598009816001c4c9660020030238992cc004c0b800a2b30013375e605a60546ea8004c0b4c0a8dd5180a18151baa0088acc004cdd7980a18151baa0013014302a3754602860546ea80222b30013375e601260546ea8005300103d87a80008992cc004c074c0a8dd5000c4c966002003159800980f98159baa0018992cc00400605113259800800c0a6053029899912cc00400605713259800800c0b205902c899912cc00400605d13259800800c0be05f02f899912cc00400606313259800800c0ca0650328992cc004c0f000e2b30013370e6eb4c0ecc0e0dd50069bad303b3038375402915980098159bad30223038375401b15980098159bad30233038375401b1302b375a602e60706ea803629410354528206a8a5040d503340e46eb400606481e0c0e40050371bad0013038002817a072303600140d06eb4004c0d400a05881b0c0cc0050311bad0013032002814a066303000140b860586ea800604e814a04f027813c09d031181718159baa0018a99814a493465787065637420496e6c696e65446174756d286f75747075745f6461746129203d207661756c745f6f75747075742e646174756d001640a0602a60546ea80062a6605092012c657870656374207661756c745f6f75747075742e7265666572656e63655f736372697074203d3d204e6f6e650016409d153302849135657870656374207661756c745f6f75747075742e76616c7565203d3d207661756c745f696e7075742e6f75747075742e76616c75650016409d153302849139657870656374207661756c745f6f75747075742e61646472657373203d3d207661756c745f696e7075742e6f75747075742e616464726573730016409d02440ac60580028150cc88cc0300088c966002602a60566ea8006266e3c00cdd7181798161baa0018a5040a4605c60566ea8c0b8c0acdd50009bac30133028375402c6eb8c01cc0a0dd500440850291bad00181020583029001409c604a6ea800603c811203d01e80f407902a181398121baa0018a998112493965787065637420496e6c696e65446174756d28696e7075745f6461746129203d207661756c745f696e7075742e6f75747075742e646174756d00164084601c60466ea8c034c08cdd5000c54cc08524017e6578706563740a202020206173736574732e7175616e746974795f6f66280a2020202020207661756c745f696e7075742e6f75747075742e76616c75652c0a20202020202072656769737472792e7374616b696e675f7661756c742c0a202020202020227374616b696e675f7661756c74222c0a2020202029203d3d20310016408115330214911d6578706563742074782e6d696e74203d3d206173736574732e7a65726f001640811533021491676578706563740a202020207661756c745f696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074280a20202020202072656769737472792e7374616b696e675f7661756c742c0a20202020290016408101b4090604a006811844646600200200644b30010018a5eb8226644b3001300500289981300119802002000c4cc01001000502118128009813000a0468a50406d153301c49013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d65720016406d301d375400291111114c004889660026036604e6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c0cc00a330010068cc004006013008403d008404500840c1008804402201081a0c0c400502f1bad0013030002802a062302e00140b0605c005003801c00e0068178c0b000502a18141baa003800a04a9112cc004c06cc09cdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b13259800981c801c6600201919800802403e01c80aa01c80ba01c81b0dd6800c035039181b000a0683036002805c02e01700b40dc60680028190dd6800981980140210341818800a05e375a002606000500540c4605c0028160c0b800a007003801c00d02f1816000a05430283754007001409522259800980d98139baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002607800719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c966002608200701780b207c375c0028208c0f800503c1bae001303d00240f8607600281ca02280c202280d202281c8dd6000c04202081e0c0e4005037181c801403a01d00e8072074303700140d46eb4004c0d800a01681b8c0d00050321bad00130330028042068303100140bc6eb4004c0c000a00a8188c0b800502c1817001400e007003801a05e302c00140a860506ea800e002812a444b3001301b3027375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c0e400e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c0f800e02901340ec6eb800503e181d800a072375c002607400481d8c0e00050364039015403901740390361bac001806c035039181b000a0683036002805c02e01700b40dc60680028190dd6800981980140210341818800a05e375a002606000500540c4605c0028160c0b800a007003801c00d02f1816000a0543028375400700140952223259800980e000c4c9660020030038992cc0040062b3001302f0028cc00400600b004402d00440b100480240120088180c0b400502b18149baa0048acc004c048006264b3001001801c4c96600200315980098178014566002603c60546ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c0cc00a330010038cc0040060130084041008404100840c1008804402201081a0c0c400502f1818801401a00d0068032064302f00140b460566ea80060088142008816200900480240110301816800a0563029375400900240988130c09cdd5001a44444b3001301d0068992cc00400604313259800800c5660026060005159800980f98159baa0018992cc00400604713259800800c4c9660020030258992cc004006264b3001001813c4c96600200302881444c966002606e007159800981318191baa0068992cc00400605513259800800c0ae0571332259800800c0b6264b300100181740ba26644b300100181844c966002003031818c0c626644b3001001819c4c96600200303481a40d226644b300100181b44c96600200313259800800c0e2264b30010018acc004c11c00a26605601c44b3001002899816806912cc00400a330010078cc0040162b3001303a3046375403113259800800c0fa264b30010018992cc00400608113259800800c566002609e00513322598009820000c4c9660020030448992cc00400608b0458992cc004c15000e26607000244b3001002803c4c96600200319800800c4c008c15c00e092815a093049824c125058182a80120a682320a23758003045822a0a83051001413c609a6ea80162b300130360018992cc00400608913259800800c11608b13259800982a001c4cc0e000489660020050078992cc0040063300100189801182b801c12502b4126093049824a0b03055002414d04641446eb000608b045415060a20028278c134dd5002c566002607e00313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a058824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004c104006264b300100182244c966002003045822c4cc89660020030478992cc0040062b3001305600289981d001912cc00400a2b300130473053375400713259800800c12e264b300100182641320991332259800800c13a264b3001001827c13e09f13259800982f001c03e0a082d8dd6800c13d05e182d800a0b2375a00260b400504c416c60b000282b0c150dd5001c12905144c96600200319800800c4c008c16400e096817209704b825c12d05a182b80120aa82420a68244122091048415c60a80028290dd60009829801411608a82a0c14400504f18269baa0058acc004cdc3a401000313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05a824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401400313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05a824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401800313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05c824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a401c00313259800800c112264b3001001822c116264b3001305400389981c000912cc00400a00f13259800800c66002003130023057003824a05c824c126093049416060aa004829a08c8288dd6000c11608a82a0c14400504f18269baa0058acc004cdc3a402000315980098269baa005801410d04e410d04a20944128825104a20944128825104a0cc00400626606603244b300100281544c96600200304482244c9660020030458992cc00400608d046823411a26644b300100182444c966002003159800982b801466002003130073057008824a062824a0a8824c126093049416060aa0028298dd7000982a00120aa305200141406eb0006089044414c60a000482720828110c128dd5001c10504c4106083041820a0a0304d001412c609a00503f81fc0fe07e8270c12c00504918239baa01881ea08881ea04c81ea04c8992cc00400607d03e81f44c8c00cc134010dd6800c0f904d182500120908992cc00400607903c81e44c8c00cc12c010dd6800c0f104b1824001208c81ca08881cc0e60730394120608a0028218c11400a06f03781bc0dd0461821800a082375a0026084005034410c608000281f0dd6800981f80140c5040181e800a0763758002607800502e817207a303a00140e06eb0004c0e400a05702b40e8606e00281a8c0ccdd500340a503040a50341bac00181440a1037181a000a0643034002813409a04d02640d460640028180c0c800a04902481240910331818000a05c302c375400302240a502240b5022811408a0448188c0b800502c18151baa00d8acc004c04c01a264b3001001810c4c96600200315980098180014566002603e60566ea8006264b3001001811c4c96600200313259800800c096264b3001001813409a264b300130350038acc004c090c0c0dd500244c9660020030288992cc004006264b300100181544c966002003159800981c8014566002605060686ea800e264b300100181644c96600200313259800800c0ba264b3001001817c0be26644b3001001818c4c96600200303281944cc89660020030348992cc00400606b03581ac4cc89660020030378992cc00400607103881c44cc896600200303a8992cc00400607703b81dc4c9660026094007159800981c98229baa0108992cc00400607b13259800800c0fa07d03e899912cc00400608113259800800c1060830418992cc004c14000e2b300101382144c966002003043821c10e26644b3001001822c4c966002003046823411a264b300130550038acc00405608f13259800800c122091048899912cc00400609513259800800c12e09704b8992cc004c16800e3300102289981f013112cc00400a06b13259800800c13e09f13259800800c142264b3001001828c1460a3051899912cc0040060a713259800800c56600260c400519800800c4c01cc1880220a881e20a882fa0a905482a41510631830000a0bc375c00260be0048300c17400505b1bac001827c13d05e182d80120b2826205a82620ae375a00304b416860ae00282a8dd6800982b00b4121057182a00aa0a4823a0a4375a003046415460a40028280dd6800982880a410d0521827809a09a821209a375a0030414140609a0028258dd6800982600140f904d1825000a0903046375402103c410d03c411c6eb40060768250c11c0050451bad001304600281c208e304400141086eb4004c10c00a06a8220c10400503f1bac001304000281940c9041181f000a0783758002607a00502f817a07c303b00140e4607600502d816c0b605a81e0c0e4005037181a9baa003815a064815a06c815c0ae05702b40e8606e00281a8c0dc00a053029814c0a5038181a800a0663031375400902740b902740c86eb000604d02640d460640028180c0c800a04902481240910331818000a05c302c375400302240a502240b5022811408a0448188c0b800502c18151baa00d810204e409c405202901480a2046332232598009809980f9baa001898101919bb03024001302430250013758604660406ea80062a6603c9218b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a202020202900164074646600200200644b30010018a60103d87a80008992cc004cdd7981080099ba548010cc090cdd2a4004660486ea40112f5c097ae0899ba548000cc090dd3998121810800998121811000a5eb812f5c11330030033026002407c60480028110dd59810181098109810981098109810981098109810980e9baa00b375c6040603a6ea8004c8c8cc89660020051598009809980f9baa0028992cc00400603113259800800c06603301980cc4cc896600200301b8992cc0040062b300130290028acc004c060c090dd5000c4c96600200301d8992cc004006264b300100180fc4c96600200313259800800c086264b30010018acc004c0bc00a2b3001301e302a375400b13259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc004006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c4c96600200302f8992cc004006264b3001001818c4c96600200313259800800c0ce264b30010018992cc00400606b13259800800c566002608600519800809c6600202319800807c6600201b19800805c6600201319800803c6600200b19800801c660020031598009819181f1baa0178992cc00400606f13259800800c0e207103881c44cc896600200303a8992cc00400607703b81dc0ee26644b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc0040062b300130540028cc0040062b30013043304f375404d13259800800c122264b3001001824c12626644b3001001825c4c966002003159800982c80144cc0f400c896600200519800801c40e609c81ea264b30010018acc004c12cc15cdd5000c4c9660020030508992cc0040060a3051899912cc0040060a713259800800c1520a9054899912cc0040060ad13259800800c15e0af0578992cc004c19400e2b300100782c44c96600200305982cc1660b31332259800800c16e264b300100182e41720b905c8992cc004c1a800e2602060d402305d419c6eb800506a1833800a0ca375c00260cc0108338c19001d06241610621bad00182ba0ca306200141806eb4004c18400a0a88310c17c00505d1bac001305e002828c14505f182e000a0b43058375400304f415504f827c13e09e82e8c1680090584131056413209904c82620b4305700141546eb0004c15800a093049415c60a80028290c140dd5013411d04d411d035411d051411e08f047823a0aa305200141406eb8004c1440090521827800a09a375c002609c0048278c13000504a1bae001304b002413060920028238dd700098240012092304600141106eb8004c1140090461821800a082303f375402f03640f10364081036408103640810364081036408103640810364081036408103640810364081036410103681b40da06c8220c10400503f182080140d206903481a2084303f00140f4607e00503281940ca0648200c0f400503b181e80140c2061030818207c303b00140e4607600502e81740ba05c81e0c0e4005037181c80140b205902c8162074303700140d4606e00502a81540aa05481c0c0d4005033181a80140a2051028814206c303300140c46066005026813409a04c81a0c0c400502f181880140920490248122064302f00140b460566ea80160448142044816204502281140890301816800a056302d002810408204102040b860560028148c0ac00a03d01e80f407902c1814800a04e3025375400301c408901c409901c80e40720388150c09c0050251bae0013026002409c60480028110c080dd5001405d01d405e02f01780ba04a32598009809180f1baa0018992cc004c048c07cdd5000c4c08cc080dd5000c54cc0792413365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640746014603e6ea8c024c07cdd51811180f9baa0018a9980ea494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016407064660020026eb0c024c07cdd5006912cc0040062980103d87a80008992cc004c8cc004004c014dd5980618111baa300c3022375400444b30010018a508acc004cdc79bae302600101f8a518998010011813800a040409113374a900019811800a5eb82266006006604a00480f0c08c005021111194c004006009003400444464b300130180018992cc00400600d13259800800c01e00f007803c4c96600260580070058042052375c0028160c0a400502718129baa0038acc004c038006264b300100180344c966002003007803c4c96600260580071330100012259800801401e264b30010018cc00402a00313002302f003402900b805c02e0168180c0b400902b40210291bac001803c01d02c1814800a04e30253754007159800980b800c4c9660020030068992cc00400600f0078992cc004c0b000e26602000244b3001002803c4c96600200319800805400626004605e006805201700b805c02d0301816801205680420523758003007803a0583029001409c604a6ea800e2b300130190018992cc00400600d13259800800c01e00f007899912cc00400601313259800800c02a015132598009817801c4cc04c004896600200500a8992cc0040063300100d800c4c008c0c800d00d403a01d00e8072066303000240b900b40b06eb000601500a40bc60580028150dd68009815801401d02c1814800a04e3025375400715980099b8748020006264b300100180344c966002003007803c01e264b3001302c003802c0210291bad001803a0583029001409c604a6ea800e2b30013370e9005000c4c9660020030068992cc00400600f007803c4c96600260580070058042052375a00300740b060520028138c094dd5001c56600266e1d200c0018992cc00400600d13259800800c01e00f007803c4c96600260580070058042052375c0028160c0a400502718129baa003802a04440888111022204440888110c08cdd50011800800912cc004006297ae0899810180e9810800998010011811000a03e222598009808180e1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b300130250028cc00400e264b300130150018992cc00400600f13259800800c566002605000513259800980c000c4c96600200300a8992cc0040062b3001302b0028cc00400601900b403900b40a100b805c02e0168160c0a400502718129baa0028acc004c038006264b300100180544c96600200300b805c02e26644b3001001806c4c96600200300e807403a26644b300100180844c966002003011808c046264b30013032003809c04902f1bad001808a064302f00140b46eb4004c0b800a01c8178c0b000502a1bad001302b002805a0583029001409c604a6ea800a012811102218119baa001804204a804402201100840a4604c0028120c088dd50014566002601600315980098111baa002803c019023401901f203e3020375400300540210054089005802c01600a8130c08c0050211811801400e007003801a0483021001407c603a6ea800e00280d0888c966002602200313259800800c00e264b300100180240120090048992cc004c09400e00d00540886eb80050251811000a040301e37540091598009803800c566002603c6ea8012007002407d002406c80d8c070dd5001911192cc004c040006264b3001001801c4c9660020030048024012009132598009812001c01a00a8108dd7000a0483021001407c603a6ea80122b300130060018992cc00400600713259800800c01200900480244c9660026048007006802a042375c0028120c08400501f180e9baa0048012034406860366ea800d1598009804001c4c8c9660026012602a6ea8c064c06800a294629410131bad30180013014375400916404480886026602800260260088a4d15330094911856616c696461746f722072657475726e65642066616c7365001365640201" + : "591316010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003370e9001488c8cc00400400c88cc00c004c00800a44b30013009300e375400513232332259800980b801c0162c80a0dd6980a0009bae30140023014001300f37540051640349111114c00488c96600260200031323259800980e00140122c80c8dd7180d000980b1baa0038acc004c0180062b3001301637540070028b202e8b2028405060286ea800a4464b30013010001899192cc004c07000a0091640646eb8c068004c058dd5001c566002600c0031323259800980e00140122c80c8dd7180d000980b1baa0038b2028405060286ea800a44b3001300f30143754005132323259800980e00144c8c9660026028003159800980d1baa00280345901b456600260140031323259800981000140222c80e8dd6980f000980d1baa0028acc004c04c0062b3001301a37540050068b20368b2030406080c0c060dd5000980d801c59019192cc004c0600062b3001337129002180b800c5a26010602e00280b22c80c8dd5180d000980d000980a9baa0028b202691192cc004c04000626464b3001301c0028024590191bad301a001301637540071598009803000c566002602c6ea800e00516405d16405080a0c050dd500124444646645300133223259800980b980e1baa0018980e9919bb030210013021302200137586040603a6ea80062c80d8c8cc00400400c896600200314c0103d87a80008992cc004cdd7980f00099ba548010cc084cdd2a4004660426ea40112f5c097ae0899ba548000cc084dd399810980f00099810980f800a5eb812f5c113300300330230024074604200280f8dd5980e980f180f180f180f180f180f180f180f180f180d1baa00f375c603a60346ea800a44b30013016301b375400513232323322598009812801c4cc020c0900144cc03c00801a2c8110c088004dd6981100118110009810800980e1baa0028b2034912cc004c058c06cdd500144c8c8c8c8ca60026eb4c0900066eb4c0900126eb4c09000e604800491112cc004c0a401626601860500122660260020151640983024001302300130220013021001301c37540051640692259800980b180d9baa00289919191919194c004dd61812800cdd69812802cdd698128024dd69812801cc0940092222259800981580344cc038c0a802c4cc0540044c8cc8966002605c00700f8b2056375c60560026eb8c0ac018c0ac0162c8140604a002604800260460026044002604200260386ea800a2c80d244b30013016301b37540051323232323298009bac30240019bad30240049bad3024003981200124444b30013029005899806181400489980980089919912cc004c0b000e01b1640a46eb8c0a4004dd7181480298148024590260c090004c08c004c088004c084004c070dd500145901a2444453001159800980c980f1baa0058acc004cdc3a4020603c6ea8c088c07cdd51808180f9baa3022301f375400b1329800998009bac30233020375402a4b3001301130203754604860426ea8c090c084dd5180918109baa0018a518a50407d301130203754602260406ea802246048604a604a604a0029112cc004c09c00e264b30013375e604e60486ea8c09cc090dd5180a98121baa0013374a900119813180118121baa0034bd70456600266ebcc09cc0a0c0a0c0a0c0a0c090dd500ca60101a0008acc004c05260026eacc054c090dd5180a98121baa0019bae3002302437540071480012223322330010010023232330010010052259800800c00e2646644b30013372201000515980099b8f0080028800c01902b44cc014014c0c401102b1bae302a00137566056002605a002815852f5bded8c044b3001001801c4c8cc896600266e452210d7374616b696e675f7661756c74000028acc004cdc7a4410d7374616b696e675f7661756c74000028800c01902a44cc014014c0c001102a1bae3029001375a60540026058002815113259800980f18121baa0018992cc004c080c094dd5000c4c8c9660026058005132598009816800c4c96600266ebcc0b4c0a8dd5000981698151baa301b302a375400f15980099baf301b302a3754002603660546ea8c06cc0a8dd5003c56600266ebcc020c0a8dd5000a6103d87a80008992cc004c090c0a8dd5000c4c966002604c60566ea80062646464653001375a6066003375a6066009375a6066007375a606600491112cc004c0e00162b30013370e6eb4c0dcc0d0dd50049bad30373034375401f15980098171bad30253034375401315980098171bad3026303437540131302e375a602460686ea80262941032452820648a5040c91640d4303300130320013031001302c37540031640a8605c60566ea80062c8148c070c0a8dd5000c590284590284590281816000c5902a1991198058011192cc004c070c0acdd5000c4cdc78019bae302f302c375400314a08150c0b8c0acdd5181718159baa0013758603460506ea8074dd7180318141baa0078b2052375a6054002604c6ea80062c8120c0a0c094dd5000c59023180b18121baa301530243754003164089164089164088604c0071640902232330010010032259800800c52f5c11332259800980280144cc09c008cc0100100062660080080028118c098004c09c0050244528203a8b203a980f1baa005912cc004c06cc080dd500144c8c8c8c966002605200513259800981018129baa0018991919912cc004c0b800e26602e605a0100151640ac6eb8c0ac004dd71815801181580098131baa0018b204830280048b204c375c604e002604e002604c00260426ea800a2c80fa4464b3001301c0018992cc004c09c006266022604c00200716409060446ea800e2b300130120018992cc004c09c006264b3001301e30233754003132323259800981580144cc048c0a800c4cc04800401e2c8140c0a4004c0a4004c090dd5000c590221813000c5902418111baa0038b2040408060406ea8009222259800980e801c4c966002605000313259800980f98121baa001899191919912cc004c0b800e264b30013025302a375400313232323232329800981a000cdd6181a002cdd6981a0024dd6981a001cc0d00092222259800981d00344cc094dd6181c805912cc00400a26604e00c44b30010028998120028998120048acc004c0d0c0e4dd5008c4c8c8c9660026082005132332259800981d00144c966002608a0031330303758608800244b300100280244cc094c1180084c004c11c00904445904218201baa0038acc004c0c000a264b300130450018998181bac30440012259800801401226604a608c00426002608e00482222c8210c100dd5001c5660026072005132598009822800c4cc0c0dd61822000912cc00400a0091330263046002130013047002411116410860806ea800e2b3001303b00289919192cc004c11c00a2660646eb0c11800c8966002005159800981f98221baa0038991919912cc004c13400e0151641286eb4c128004dd69825001182500098229baa0038b20868998141824001098009824801208c8b2088304500130450013040375400715980099b874802000a264b300130450018998181bac30440012259800801401226604e608c00426002608e00482222c8210c100dd5001c56600266e1d200a0028992cc004c1140062660606eb0c1100048966002005004899813982300109800982380120888b20843040375400715980099b874803000a264b300130450018998181bac304400122598008014012266050608c00426002608e00482222c8210c100dd5001c56600266e1d200e0028992cc004c1140062660606eb0c1100048966002005004899814182300109800982380120888b20843040375400715980099b874804000a2b3001304037540070018b20828b207c40f881f103e207c40f881f103e207c303d375400226603800426605a02c44b3001002810c4c8cc8966002608e00313302230460011300430470058b2088375c6088002608a0026eb0c10c0090411820001c5903e181f800981f800981d1baa0118b20708991801181f8019bad303d00240ed1323002303d003375a607600481ca2c81b86068002606600260640026062002606000260566ea80062c8148c0b40162c8158dd6181580098158011815800981500098129baa0018b204630270018b204a302337540131598009809801c4c966002605000313259800980f98121baa00189919192cc004c0b000a264b300130233028375400313232598009817800c4c966002604c60566ea800626464646464653001375a606a0033758606a00b3758606a009375a606a007375a606a004911112cc004c0ec01a264b3001303230373754003132323322598009820001c4c8cc896600260860071323322598009823001c4cc080c1140604cc0c406c896600200502589919912cc004c12c00626604c609400226008609600b1641206eb8c120004c124004dd61823801208a8b2086375a60860026eb4c10c030c10c02e2c8200dd698200009bad304000a30400098b207a375a607a0026eb4c0f4008c0f4004c0e0dd5000c59036181d005c590380c0d4004c0d0004c0cc004c0c8004c0c4004c0b0dd5000c5902a181700145902c181700098149baa0018b204e302b0038b2052375860540026054002604a6ea80062c8118c09c0062c8128c08cdd5004c5902120420cc88c8cc8966002602e60386ea800a2646644b300130240018992cc004c06cc080dd5000c4c8c8c8cc8966002605400713259800981098131baa0018991919191919191919194c004c0d000660680133034008981a003cc0d001a606800b3034004981a001cc0d000922222222259800981f00544cc078c0f404c4cc0780204cc07801c4cc0780184cc0780144cc0780104cc07800c4cc0780084cc0780044cc078024566002606860726ea8056264646464653001375c608400330430019bae30420059bae30420049bae30420039bae3042002488888966002609200b1330323048005159800981f98221baa02189919192cc004c13000a26606e6eb0c12c00c8966002005133033003102f8992cc004c114c128dd5000c4c8c8c8cc896600260a800713232332259800982c001c4c02cc1600322c82a8dd7182a8009bae30550023055001375860a600b1641446eb4c144004dd698288011828800982800098259baa0018b2092304d002412d16412460940026094002608a6ea80862c821a2c8230608400260820026080002607e00260746ea80562c81c22c81d860680026066002606400260620026060002605e002605c002605a0026058002604e6ea80062c8128c0a40162c8138c09c004c09c008c09c004c098004c084dd5000c5901f1811800c590211bae30210013022001301d375400516406c64b30013016301b375400313259800980b180e1baa00189810180e9baa0018b2036300e301c3754601a60386ea8c07cc070dd5000c5901a19198008009bac300d301c375402244b30010018a60103d87a80008992cc004c8cc004004c014dd59808180f9baa3010301f375400444b30010018a508acc004cdc79bae302300101d8a518998010011812000a03c408513374a900019810000a5eb82266006006604400480e0c08000501e18010011801001112cc004006297ae089980e180c980e80099801001180f000a0362223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300c0018992cc004c0840062660186eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc030dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998071bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b30013370e9004000c4c8c96600260440050048b203e375a604000260386ea800e2b30013370e9005000c4c8c96600260440050048b203e375a604000260386ea800e2b30013370e9006000c4c8c96600260440050048b203e375c604000260386ea800e2c80d101a2034406880d101a2034301a375400444b3001301430193754005132323259800981080144cc018c08000c4c9660026030003159800980f1baa002802c5901f4566002601c00313232598009812001401e2c8108dd71811000980f1baa0028acc004c05c00626464b30013024002803c590211811000980f1baa0028b2038407080e0c070dd5000c5901e180f800980f800980d1baa0028b203022598009809980c1baa00289919192cc004c08000a266010603e006264b300130170018992cc004c08800626464b3001301a0018992cc004c09400626601a604800201316408860406ea800a2b3001301000189919194c004dd69813000cdd69813001cdd698130012444b3001302a0048074590270c098004c094004c080dd500145901e203c301e3754002604200316407c603a6ea800a2b3001300d0018acc004c074dd500140162c80f22c80d901b180d9baa0018b203a301e001301e0013019375400516405c456600260100071323259800980498071baa301230130028a518a5040346eb4c044004c034dd500245900b2016180618068009806002229344d9590021", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolMintProtocolMintWithdraw { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594c34010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a495365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f61737365742900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a492e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a4942657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f646174610016488888888888888888896600330013018375403d370e90034dc3a4001370e90022444464653001301d3754003302100698108012444b300130060038cc004c090c084dd500248c094c098c0980064604a604c003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480326e9520024888888888a600244646600200200644b30010018a60103d87a80008992cc004c010006260186606400297ae0899801801981a001205a303200140c1222329800800c0120068008888c966002603000313259800800c01a264b3001001803c01e00f0078992cc004c0e400e00b00840d86eb8005039181b000a068303237540071598009806000c4c9660020030068992cc00400600f0078992cc004c0e400e26602000244b3001002803c4c966002003198008054006260046078006805201700b805c02d03d181d0012070804206c3758003007803a072303600140d060646ea800e2b300130170018992cc00400600d13259800800c01e00f13259800981c801c4cc04000489660020050078992cc0040063300100a800c4c008c0f000d00a402e01700b805a07a303a00240e100840d86eb000600f00740e4606c00281a0c0c8dd5001c566002603200313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b3001303c003899809800912cc00400a01513259800800c6600201b00189801181f801a01a807403a01d00e4100607a00481da01681c8dd6000c02a01481e0c0e40050371bad0013038002803a072303600140d060646ea800e2b3001300b0018992cc00400600d13259800800c01e00f0078992cc004c0e400e00b00840d86eb400600e81c8c0d800503418191baa0038acc004c028006264b300100180344c966002003007803c01e264b30013039003802c0210361bad001803a072303600140d060646ea800e2b300130090018992cc00400600d13259800800c01e00f007803c4c9660026072007005804206c375c00281c8c0d800503418191baa003802a05e40bc817902f205e40bc8178c0c0dd50014888c966002602a00313259800800c00e264b300100180240120090048992cc004c0d800e00d00540cc6eb80050361819800a062302f37540091598009804800c566002605e6ea801200700240c100240b08160c0b4dd5001c888c966002602a00313259800800c00e264b300100180240120090048992cc004c0d800e00d00540cc6eb80050361819800a062302f37540091598009804800c4c9660020030038992cc0040060090048024012264b3001303600380340150331bae00140d860660028188c0bcdd5002400902c2058302d375400691111919192cc0040063300122259800980d981a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b300130200018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c07c006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005402900540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e00281926e1d200e9112cc004c06cc0d0dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800981d000c56600266e252004303900180344c966002607e009132598009811000c56600260786ea801a01300840f5159800980b000c4c9660020030098992cc00400601500a80544c966002608600700c805a080375a00300a410c608000281f0c0f0dd500345660026042003159800981e1baa006804c02103d4021039207240e460746ea801600e81e0c050c0e4005037401903b1baa001802c01600b00540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c922259800980d981a1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002607e007008803a078375a00300640fc607800281d0dd7000981d8012078303900140dc606a6ea800e002819244464b3001301c0018992cc00400600713259800800c0120090048992cc004c0f400e00d00540e86eb400600881e8c0e8005038181b1baa0048acc004c0400062b300130363754009003801206e801206640cc60686ea800e444b3001301b3034375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc00400600f007803c01e264b300130400038acc004c088c0ecdd500344c9660020030098992cc00400601500a805402a26644b300100180644c96600200300d806c03601b132598009823001c6600201500f807202a8072086375c0028230c10c0050411bae0013042002410c608000281f0c0f0dd50034021039402103d1bae0014100607a00281d8c0f400a00b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c0050324c0c4dd5000a44444453001222598009811181d9baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc0040062b300130470028cc00401a33001001804c02100e40210114021044402201100880420903045001410c6eb4004c11000a00a8228c1080050401821001400e007003801a086304000140f860786ea800e00281ca444b30013022303b375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d806c4c966002609a0071980080646600200900f8072028807202e8072094375a00300d413460940028240c12800a01700b805c02d04b1824000a08c375a002608e0050084120608a0028218dd6800982200140150451821000a0803042002801c00e007003410c608000281f0c0f0dd5001c005039488966002604460766ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b3001001805c02e0171332259800800c036264b30010018992cc00400601f13259800800c042021132598009828001c6600201f1980080245660020030118992cc004006025012809404a26644b300100180a44c96600200301580ac05602b13259800982a801c05e02c8290dd7000a0aa305200141406eb8004c1440090521827800a09a808a02e808a034808a09a375800301080820a0304d001412c609a00500e807403a01c8270c12c0050491bad001304a002805a096304800141186eb4004c11c00a0108240c1140050431bad0013044002802a08a304200141006084005003801c00e0068218c10000503e181e1baa003800a0729112cc004c088c0ecdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001304d0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001305200380a404d04f1bae0014148609e0028268dd70009827001209e304c001412900e405100e405d00e41286eb000601b00d413460940028240c12800a01700b805c02d04b1824000a08c375a002608e0050084120608a0028218dd6800982200140150451821000a0803042002801c00e007003410c608000281f0c0f0dd5001c0050394888c966002604600313259800800c00e264b30010018acc004c10c00a33001001802c01100a401104040120090048022088304100140fc607a6ea80122b300130170018992cc00400600713259800800c56600260860051598009812981f1baa0018992cc00400600b13259800800c4c9660020030078992cc0040062b300130470028cc00400e33001001804c02100f402100f4021044402201100880420903045001410c608a005006803401a00c8230c10c005041181f9baa0018022078802208080240120090044110608200281f8c0f4dd5002400903a2074303b3754007159800980f981c1baa0088cc004c0f0c0e4dd500448896600200514c103d87a80008acc004c088006260306607c607e00497ae08cc00400e6080005337000029000a00640e481ea45300132330010010032259800800c528456600266ebcc100c0f4dd51820181e9baa301a303d3754608000260266607e6ea400d2f5c114a3133002002304100140e881f2942945038488c8cc00400400c896600200314bd7044cc896600266ebcc108c0fcdd51821181f9baa301c303f3754004602a660826ea40152f5c113304100233004004001899802002000a0783040001304100140f92301430393754607a646600200200444b30010018a5eb84103d87a80008101800044c8cc896600330013019303e375460840074a14a281e226608330014a14c103d87a8000a60103d879800040f0660826e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11000400e2946266004004608a00281f104244cc106600294298103d87a8000a60103d879800040f0660826e9c0092f5c11330419800a51a60103d87a8000a60103d879800040f0660826e9ccc104dd400080125eb8103c20783758608060820026eb4c100008cc008008c10000503d48888ca6002003005802400d00111112cc00400e2b30010028800c54cc0fd24112657870656374205b5d203d206c6973745f6200164109159800801454cc0fd2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc004012608a0073045002cc004c11000e6eb4c11000a002802900420844109222329800800c012006800888966002005159800800c528c52820808acc00400629422b300133004304200230420018cc00400e60860053043001400d14a081e1040208091111919800800802912cc00400626608266ec0dd48029ba80044bd6f7b63044ca60026eb8c0fc0066eb4c10000660880049112cc004cdc8004801c4cc114cdd81ba9009375001000b15980099b8f0090038cc00402601100291982319bb037520146ea000400a2002803a26608a66ec0dd48019ba80023300600600141008200608400282024444646600200200a44b300100189982099bb0375200a6e980112f5bded8c113298009bae303f0019bab304000198220012444b300133720012007133045337606ea4024dd3004002c56600266e3c02400e33001009804400a46608c66ec0dd48051ba60010028800a00e89982299bb037520066e98008cc01801800504020801821000a08091191919800800802112cc00400600713233225980099b910070028acc004cdc78038014400600c81f226600a00a608a00881f0dd7181f0009bab303f001304100140fc297adef6c6092cc0040062946294103b4488888c966002604a00300289801800a07833700008007222598009811181d9baa0038992cc00400600513259800800c00e0070038992cc004c10c00e00b00441006eb40060068218c10000503e181e1baa003800a0729181e981f181f181f000cdc0a40012259800800c52000899b8048008cc008008c0fc00503c488966002604460766ea800e264b300100180144c96600200313259800800c012264b30010018992cc00400600d13259800800c4c9660020030088992cc004c12000a330010078cc004016264b3001302b0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009829001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800982b801c06603082a0dd7000a0ae305400141486eb8004c14c0090541828800a09e809a09e375800301280920a4304f00141346eb4004c13800a01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301f0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009829001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800982b801c06603082a0dd7000a0ae305400141486eb8004c14c0090541828800a09e809a09e375800301280920a4304f00141346eb4004c13800a01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001302a0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025012899912cc00400602913259800800c05602b13259800982a801c5660020030168992cc00400602f01780bc05e26644b300100180cc4c96600200301a80d406a03513259800982d001c07203682b8dd7000a0b4305700141546eb8004c158009057182a000a0a480b20a4375800301580aa0aa305200141406eb4004c14400a0248290c13c00504d1bad001304e002807a09e304c00141286eb4004c12c00a0188260c12400504718229baa0048acc004c0b0006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c4c966002609e007159800800c042264b3001001808c046023011899912cc00400602713259800800c05202901480a44c96600260a800701680aa0a2375c00282a0c14400504f1bae00130500024144609c00282620208260dd6000c03e01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301e0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f8992cc004c13c00e02301041306eb400601e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301d0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a0250128992cc004c14800e029013413c6eb40060248290c13c00504d1bad001304e002807a09e304c00141286eb4004c12c00a0188260c12400504718229baa0048acc004c070006264b3001001805c4c96600200300c8064032264b3001304c00380740350491bad00180620983049001411c608a6ea80122b300130120018992cc00400601713259800800c03201900c8992cc004c13000e01d00d41246eb40060188260c12400504718229baa00480520844108821104220844108821104218219baa003804a024804a030804a08a30460014110608c005007803c01e00e8238c1100050421822001401600b005802a08a304200141006084005003801c00e0068218c10000503e181e1baa003800a0729119808001119baf303f303c37540026e9c00a4466e0ccdc10011bad3019303b37540026eb4c060c0ecdd5000c8966002003149a264b30010018a4d1325980099b90375c607860800066eb8c0f00062660080086607e0026082005153303b4901326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f72646572001640e8607e00281e8c0fc00503c4888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd71821800cdd69822000ccc00c00cc1200090091823000a088375660820066eb8c0f8004cc00c00cc10c008c10400503f488c8cc00400400c896600200314bd7044cc0fcdd398019820000998010011820800a07c911919800800801912cc00400629422b30013375e60800026e9c00e2946266004004608200281d103e4888ca6002003004801a00222259800801440063300100398218014cc010c10800800500320809181e981f181f181f181f000cdc424001371e9101045553447200488888888888888888888888888a600260ae60a86ea806e60ae60a86ea8c0c4c150dd500dcc06806a444b3001301a0028cc00400e00548002444b30013004003899b80001375a606e60b46ea800e08c82b901941310544888c8cc88cc008008004896600200300389919912cc004cdc8803801456600266e3c01c00a20030064169133005005306100441686eb8c168004dd6982d800982e800a0b63301600400314800244653001001801c0090011112cc00400a200313298008024c17800f30010029bae30590019bab305a00191111192cc004c0740060051300300141746465300100180340150011112cc00400a200313298008024c1a000f30010029bae30630019bad3064001802a048401060cc0048321406d0192008305c0024169232330010010022259800800c52f5bded8c11323305a3376060ae0026e98c8cc004004dd5982c801112cc004006297adef6c608991982e99bb0305a001375060286eb4c16c004cc00c00cc17c008c17400505b19801801982e001182d000a0b09806006488c966002607860ac6ea8006264b30010018cc0040062b30013375e602460b06ea800cc16cc160dd5002456600266ebcc0d4c160dd5000982d982c1baa0038800c54cc15924013865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00164155153305649138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500164155046403d046823411a08c82e8c168c15cdd5000c111054181a182b1baa303330563754005300800848888888888ca600244646600200200444b30010018a5eb822660ca64b3001304a30633754003130673064375400315330624913965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641846600a0086eb4c198004cc008008c19c00506448888c966002609460c66ea8006264b30013375e60d060ca6ea8c1a0c194dd5182118329baa001303b33067375200a97ae08acc004c0fe60026eacc108c194dd5182118329baa001802d22108747265617375727900403513259800982598329baa0018992cc004006330010018992cc004c138c19cdd5000c4c96600266ebcc1b0c1a4dd5183618349baa001303f3306b375201297ae08acc004c10e60026eacc118c1a4dd5000c026910108747265617375727900404513259800982798349baa0018992cc004006330010018acc004cdd7981298359baa0034c103d87a800089983680299836800998369ba6330123756609060d66ea800cc044dd5982418359baa3048306b375400e97ae08a99834a48126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001641a105f409905f82fc17e0be8380c1b4c1a8dd5000c54cc1a124012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016419c608e60d26ea80062a660ce920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164199153306749143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016419860d660d06ea80062a660cc92013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f6964782900164194660126eb0c114c19cdd5004002c169022416a0b505a82d20d8306930663754003153306449013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016418c608660ca6ea8c108c194dd5000c54cc18d2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d20310016418915330634914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016418860ce60c86ea80062a660c492013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641846600a6eb0c198c18cdd50020014888888896600266ebcc1a8c19cdd5003983518339baa0068acc004cdd7982298339baa00730443067375400d13259800cc0040069464444b3001001899b894800000a294106920368992cc004cdc4802000c56600266e2400400e20031533067491216578706563742064656c697665726564203c3d206d61785f64656c697665726564001641991533067491216578706563742064656c697665726564203e3d206d696e5f64656c6976657265640016419930010019bae306b0049bae306b306c00440411533066490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641946601c6eacc110c19cdd50039806cc004dd71835002cdd718351835802cc080011222598009828000c402e3300100b801cc8c8008c038004cc1b0cdd81ba9002375000297adef6c6091111192cc004c0b40060051300300141b4653001004804401e444453001005801c0120050014018818140ad02920ce454cc19524128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d0016419115330654912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e6164647265737300164191305e375401491112cc004c1240063300122323370666e00cdc019b82003375a608860cc6ea80080052001001375a608460ca6ea8006660086eb0c198c18cdd50071bac30403063375401f375860cc60c66ea803e6eb4c104c18cdd5007cdd6980e98319baa00f982018319baa0334888889660026605c6eb0c1b0c1a4dd50251bae302330693754608c60d26ea800626644b300132980080140224464b30013055306e37540031323232980099814003800cdd6181098391baa0059bad30750039bad3075002488896600260b860ea6ea80122b300133712660266eb4c14cc1d8dd5004983c983b1baa00498009bab30533076375460a660ec6ea802a6eb8c1e400e6eb8c1e4c1e800d01e456600266e1c008dd69829983b1baa0098acc004cdc38009bad30543076375401313375e6e9c014c094c1d8dd5004c52820e68a5041cd14a0839a2a660e892014365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f617373657429001641cc375860e860ea00260e800260de6ea8006294106c182618371baa3301200200140b46eb0c1b8c1acdd5182498359baa003899192cc004cdc3800cc004dd6182598369baa04e99837982518369baa304a306d375400a660de981054455534472004bd704dd6183818369baa304b306d375400a911194c00400600f00d8062002222259800801c52000899912cc0040120dd1332259800802c1c626644b300130603079375400313322598009831183d9baa001899b8098009bab3059307c375460b260f86ea8022005307f307c375400d3758605660f86ea801a660326eb4c164c1f0dd5003183f983e1baa0018074dd6982d183e1baa0069bad3059307c375400c80da6002019007802c01100c41d9079183e983d1baa0013303000b3758605260f46ea80120e083b8c1f0014cc06802cdd6983d802a0f23079004307a00441dc60ee00660f000683a91323298009839000cdd598391839800ccc084dd6183918379baa304d306f375400e46eb0c1ccc1c0dd5000cc1c8009222259800cc00400e9464444b30010018acc004cdc78022441008a518998140031983c9ba900433079375200697ae041d114a083a1026456600266e1ccdc09bad3076307337540086eb4c1d8c1ccdd5000803c4c96600266e2402000626044003153307249012a657870656374206d696e745f616d6f756e74203c3d20746f74616c5f76616c6964617465645f75736472001641c53001375860ec60e66ea8c144c1ccdd5005d20009119912cc006600260ba0034a14a283a22b3001337126605800200930010079bae307a0029bae307a307b002407d133700006003153307549012d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001641d1100341d06eb0c1e0c1d4dd5001194c00404a90004896600266ebcc09cc1e0dd50011ba7003899b80001375a60aa60f06ea800a200283a90261bac307830753754004811a0d483820dc838060e4003300104e9bae3070306d3754609460da6ea801600f0064035153306b490125657870656374206d696e745f616d6f756e74203d3d20746f74616c5f64656c697665726564001641a8b3001305230110018a4001159800800c176264b300130710028992cc004c06cdd71836801440060c08358dd69836800c17906e1837800a0da41a4660526eacc068c1acdd50261bae3048306b3754609060d66ea800e2a660d29201756578706563740a2020202076616c69646174655f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a2020202029001641a13001005802496600260306eb4c11cc1a8dd5000c4c060dd6982418351baa0018a50419c8090cc0b4dd6183618349baa04a375c608e60d26ea8c118c1a4dd5000c151066226644b3001303f0038cc004cc018dd6183418329baa0103758608460ca6ea80466eb0c1a0c194dd5008cdd6982198329baa0119bad301f3065375402330423065375406a911112cc004cc0bcdd6183698351baa04b375c604860d46ea8c11cc1a8dd5000c660033001005802496600266e20dd6982418359baa00148002260326eb4c124c1acdd5000c52820d0404d3302e375860da60d46ea812cdd7182418351baa3047306a37540033306c3047306a3754608e60d46ea8004cc1b1301054455534472004bd702444b3001980080140224464b3001304a306f375400313233225980099b8900198009bab30503073375460a060e66ea801a6eb8c1d801e6eb8c1d8c1dc01d01b456600266e1c004c0b0dd6982818399baa0058acc004cdc39bad3076002375a60a260e66ea8016266ebcc1d8c1dc008c088c1ccdd5002c52820e08a5041c114a08380c1d4004dd6983a00098381baa0018a5041b4609a60de6ea8cc04c00800502e4660026644653001001802c02e014800888896600200714bd7044cc896600200906d899912cc0040160e11332259800982f983c1baa001899912cc004c184c1e8dd5000c4cc88cc88cc008008004896600200313308101374e66102026e9c010cc20404dd4001a5eb812f5c113298009bac3083010019bad3083013084010019842008012444b30013375e6e9c00cdd380444cc21404dd399842809ba70033308501375066e0000801d2f5c000313308501374e6610a026e9c00ccc21404dd400125eb80cc018018005080010dd6184100800a100029800807402600f00640386eb0c0a8c1ecdd50034c004dd5982c183d9baa3058307b3754011002983f183d9baa006807cc05cdd6982c183d9baa0069bac302a307b375400d375a60b260f66ea801a66060602e6eb4c160c1ecdd5003183f183d9baa001406907541e060f860f26ea8004cc0bc02cdd61814183c9baa004837a0ec307b0053301900a375a60f400a83c0c1e0010c1e4011076183b001983b801a0e83758609660da6ea8138dd6183818369baa304b306d37540093302b3756603860da6ea8138dd7182518369baa304a306d375400998008274dd7183818369baa304a306d3754009006802a01a9980f9bac3070306d3754609660da6ea80108dd6183898371baa00148888ca600260ea003375660ea60ec0033075003acc004c160c05c0122900045660020090638992cc004c1dc016264b30013021375c60e6005100183320e2375a60e600306441d060ea008839906f24444b30019800801d28c88896600200315980099b8f004489008a518998158051983e1ba90043307c375200697ae041dd14a083b9029456600266e1ccdc09bad3079307637540086eb4c1e4c1d8dd5001000c56600266e1c0066002023480024466e00004dd6982a983c1baa0024099159800998099bac30793076375460a860ec6ea80348c8cdc3cc0040166eb8c1ec0066eb8c1ecc1f00050201818991919800800806912cc0040062900044c96600266ebcc1fc004dd380244dd6983f984000800c4cc00c00cc200040090791bac307e00141f06eb0c1ecc1e0dd50011bac307a3077375400314a31533074491ff6578706563740a202020206c6973742e616c6c280a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a202020202020666e28726129207b0a20202020202020206c65742028706f6c6963792c206e616d6529203d2072612e61737365740a20202020202020206c65742061637475616c5f64656c7461203d206173736574732e7175616e746974795f6f662876616c75655f64656c74612c20706f6c6963792c206e616d65290a20202020202020206c657420757365725f7265636569707473203d206c6f6f6b75705f61737365745f73756d287065725f726573657276655f61637475616c732c2072612e613b73736574290a202020202020202061637475616c5f64656c7461203d3d202d757365725f72656365697074730a2020202020207d2c0a2020202029001641cd153307449123657870656374206d696e745f616d6f756e74203d3d2073756d6d65645f616d6f756e74001641cd06d41cd07141cc3075002454cc1ad241466578706563742076616c69646174655f72656465656d5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f617373657429001641a882aa0ce4566002607800719800998031bac3068306537540206eb0c108c194dd5008cdd6183418329baa0119bad304330653754023375a603e60ca6ea8046608460ca6ea80d52222259800998179bac306d306a37540966eb8c090c1a8dd5182398351baa0018acc00660026605c6eb0c1b4c1a8dd50259bae3048306a3754608e60d46ea800600b223259800982918361baa0018992cc004006330010018acc004cdd7982618371baa0033071306e375400915980099baf304b306e375400260e260dc6ea800e264b30013046306e375400313370e6eb4c1c8c1bcdd50009bad304c306f375400914a08360c130c1b8dd5000c17906b417506b417102541720b905c82e20e63070306d375400305a41a8609460d86ea8c124c1b0dd500120568acc004cc88ca6002003008803a00222259800801456600200314a314a083822b30010018a508acc004cc896600260ae60e06ea8006264b30013375e60ea60e46ea8004c1d4c1c8dd5183a98391baa0038acc004cdd7982818391baa001304f3072375460ea60e46ea800e266e1e60026eacc13cc1c8dd5000cdd7183a803cdd71827803a034300e375a609e60e46ea800e294106f452820de30743071375400306741b860e40046602200a6eb4c1c80063300100398398014c1cc005003452820d841c08380dd6182418351baa04b3306c3047306a3754608e60d46ea8004cc1b1301054455534472004bd7044c8ca60026eacc1bcc1c0006660546eacc06cc1b0dd50269bae3049306c3754609260d86ea800eb3001302f0068cc00401e00d48002444b3001301d375a609860de6ea800e266e00004dd6982618379baa00382da0d840b906141a49112cc004cdc3acc004c154c05000a2900045660020050608992cc004c1d000e264b3001301e375c60e00051001831a0dc375a60e000306141c460e4004838106c000c56600266e1ccdc09bad3072306f375460e40086eb4c1c8c1bcdd51839002800c4cc030dd6183918379baa304d306f375400c46460af30010059bae30740019bae3074307500140646eb0c1ccc1c0dd5000c19906c454cc1b524012165787065637420757364725f6d696e746564203d3d206d696e745f616d6f756e74001641b0306f0019800825cdd7183698351baa3047306a375400300380120148a998342481806578706563740a2020202076616c69646174655f6469726563745f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f75747075745f696e64696365732c0a202020202020757364725f61737365742c0a20202020290016419d15330684913f6578706563742076616c69646174655f6469726563745f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f7265717565737473290016419d055419c8acc004c0c800e3300133006375860d060ca6ea8040dd6182118329baa0119bad304330653754023375a603e60ca6ea8046608460ca6ea80d5222259800998171bac306c306937540946eb8c08cc1a4dd5182318349baa0018acc004cc8a600200500691192cc004c14cc1b4dd5000c4c96600200319800800c56600266ebcc134c1bcdd5001983918379baa0048acc004cdd7982618379baa0013072306f375400713259800981e98379baa0018992cc004cdc4800cc004dd5982718389baa304e3071375400d375c60e800f375c60e860ea00e80ca266e1c004c0a8dd6982718389baa0058a5041b86eb4c1ccc1c0dd5000c52820da304d306f375400305f41b105e41b105d409905d82ec1760ba83a0c1c4c1b8dd5000c16d06b182598369baa304a306d37540048160cc0b4dd6183618349baa04a375c608e60d26ea8c118c1a4dd500099835982318349baa304630693754002660d6981054455534472004bd7044c8ca60026eacc1b8c1bc006660526eacc068c1acdd50261bae3048306b3754609060d66ea800f3001006a4001225980099b88375a609460da6ea80092000899b80001375a609460da6ea800a0b2835101b2444b30013370eb3001305430130028a4001159800801417e264b300130730038992cc004c074dd71837801440060c48368dd69837800c181070183880120de41ac00315980099b87337026eb4c1c4c1b8dd518388021bad3071306e375460e200a00313300b375860e260dc6ea8c130c1b8dd5003119182b4c0040166eb8c1cc0066eb8c1ccc1d00050181bac3072306f3754003153306c4915a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206275726e5f616d6f756e74001641ad153306c4912165787065637420757364725f6d696e746564203d3d206275726e5f616d6f756e74001641ac306e00198008254dd7183618349baa30463069375400300380120128a99833a4814b6578706563742076616c69646174655f6469726563745f6275726e5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f6173736574290016419905441988a5041888311062111919800800801912cc00400629462b30013003306a0018998010011835800c52820c841a04b300133710002900044c074006200283090600896600266e2000520008a60103d87a8000899805001000a0ba22a6606e92013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640d89111112cc004c09401e264b3001001814c4c96600200315980098228014566002604e60806ea8006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c0c2061132598009826001c566002605c608e6ea801a264b300100181944c966002003033819c4cc89660020030358992cc00400606d036899912cc00400607113259800800c0e6073039899912cc00400607713259800800c0f207903c899912cc00400607d13259800800c4c9660020030408992cc0040062b3001305c002899819807112cc00400a26606a01a44b30010028cc00401e330010058acc004c108c16cdd500c44c9660020030468992cc004006264b300100182444c966002003159800983200144cc8966002609000313259800800c132264b3001001826c136264b30013069003899820000912cc00400a00f13259800800c6600200313002306c003828a058828c1460a305141b460d4004834209c8330dd6000c13609a8348c19800506418311baa0058acc004c0f0006264b300100182644c96600200304d826c4c96600260d20071330400012259800801401e264b30010018cc0040062600460d800705140b1051828c1460a28368c1a800906841390661bac001826c1350691833000a0c83062375400b1598009823800c4c96600200304c8992cc00400609b04d8992cc004c1a400e26608000244b3001002803c4c96600200319800800c4c008c1b000e0a2816a0a3051828c14506d183500120d082720cc375800304d826a0d23066001419060c46ea80162b300130490018992cc00400609913259800800c13609b1332259800800c13e264b30010018acc004c1ac00a26608400644b30010028acc004c13cc1a0dd5001c4c9660020030538992cc0040060a905482a44cc89660020030568992cc0040060af05782bc4c96600260e600700f82c20e0375a00305741cc60e00028370dd6800983780141510701836800a0d630693754007052419913259800800c6600200313002306e003829a05e829c14e0a705341bc60d800483520a083420a1050828414106c1834800a0ce375800260d000504d826a0d23066001419060c46ea80162b3001303b0018992cc00400609913259800800c13609b132598009834801c4cc10000489660020050078992cc00400633001001898011836001c14502e41460a3051828a0da306a00241a104e41986eb000609b04d41a460cc0028320c188dd5002c566002607400313259800800c132264b3001001826c136264b30013069003899820000912cc00400a00f13259800800c6600200313002306c003828a05c828c1460a305141b460d4004834209c8330dd6000c13609a8348c19800506418311baa0058acc004c0e4006264b300100182644c96600200304d826c4c96600260d20071330400012259800801401e264b30010018cc0040062600460d800705140bd051828c1460a28368c1a800906841390661bac001826c1350691833000a0c83062375400b1598009817800c4c96600200304c8992cc00400609b04d8992cc004c1a400e26608000244b3001002803c4c96600200319800800c4c008c1b000e0a2817a0a3051828c14506d183500120d082720cc375800304d826a0d23066001419060c46ea80162b30013370e9008000c56600260c46ea801600504b418d04b417c82f905f20be417c82f905f20be417c3300100189981d80c912cc00400a04913259800800c13209913259800800c136264b3001001827413a09d04e899912cc0040060a113259800800c56600260d800519800800c4c01cc1b00220a2818a0a2834a0a3051828c14506d1835000a0d0375c00260d20048350c19c0050651bac0018264131068183280120c6824a046305f37540070494185049824c1260928328c1880050601831001411e08f047823a0c63060001417860b86ea806208a82ca08a813208a8132264b3001001823411a08d13230033062004375a003046418860be00482ea264b3001001822411208913230033060004375a003044418060ba00482da08282ca083041820c10505d182d000a0b0305a00281fc0fe07f03f416c60b000282b0dd6800982b80140f1058182a800a0a6375a00260a8005039415460a40028280dd6000982880140da06c8290c13c00504d1bac001304e002819c0cd04f1826000a0943048375400d031411503141246eb0006061030413060920028238c12400a05d02e81740b904a1823800a08a304700281640b205902c4120608a0028218c104dd5000c0a903e40a904240aa05502a815208c30430014104607e6ea803a2b300130190078992cc00400605313259800800c566002608a005159800981398201baa0018992cc00400605713259800800c4c96600200302d8992cc00400605d02e8992cc004c12800e2b3001302c3045375400913259800800c0c2264b30010018992cc00400606513259800800c566002609c005159800981818249baa0038992cc00400606913259800800c4c9660020030368992cc00400606f037899912cc00400607313259800800c0ea0751332259800800c0f2264b300100181ec0f607b1332259800800c0fe264b300100182041020811332259800800c10a264b3001001821c10e08713259800982f801c566002608260b46ea8042264b3001001822c4c966002003046823411a26644b300100182444c966002003049824c126264b300130650038acc00404e09513259800800c12e09704b899912cc00400609b13259800800c13a09d04e8992cc004c1a800e2b3001015827c4c966002003050828414226644b300100182944c966002003053829c14e264b3001306f0038cc00408a26608c04c44b3001002817c4c96600200305782bc4c9660020030588992cc0040060b305982cc16626644b300100182dc4c966002003159800983b80146600200313007307700882e207882e20e882e41720b905c41e060ea0028398dd7000983a00120ea307200141c06eb00060af05741cc60e000483720a881720a88360dd6800c14d06f1836000a0d4375a00260d602d05041b060d202a833a09e8338dd6800c13906a1833800a0ca375a00260cc02904b419c60c802683120948310dd6800c1250651831000a0c0375a00260c2005046418860be00282e8c16cdd50084111058411105c1bad001821a0be305c00141686eb4004c16c00a08082e0c1640050571bad001305800281ea0b2305600141506eb0004c15400a07503a415860a60028288dd6000982900140de06e8298c14000504e182800140d606b03581aa0a2304e001413060946ea800e066823a066825a067033819c0cd04f1826000a094304c002818c0c6063031413460940028240c118dd500240bd04340bd0471bac00181740b904a1823800a08a304700281640b205902c4120608a0028218c104dd5000c0a903e40a904240aa05502a815208c30430014104607e6ea803a05081e103c101b80dc06e03681b8cc88c966002603460666ea8006260686466ec0c0e0004c0e0c0e4004dd6181b981a1baa0018a9981924818b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c030cc0e0dd480225eb812f5c11301233038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c37566068606a606a606a606a606a606a606a606a606a60626ea8048dd7181a18189baa00132323259800800c566002603260646ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0f000a2b3001301e3037375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc0040062b300130420028acc004c090c0f4dd5002c4c9660020030298992cc004006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c4c9660020030318992cc004006264b3001001819c4c96600200313259800800c0d6264b30010018992cc00400606f13259800800c4c9660020030398992cc004006264b300100181dc4c966002003159800982b00146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607060a26ea805e264b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc00400608f047823c11e26644b3001001824c4c96600200304a825412a0951332259800800c132264b30010018acc004c19c00a330010018acc004c124c188dd501344c96600200304e8992cc00400609f04f899912cc0040060a313259800800c56600260d80051330430032259800801466002007103882a20768992cc0040062b30013051306a375400313259800800c15a264b300100182bc15e26644b300100182cc4c96600200305a82d416a26644b300100182e44c96600200305d82ec176264b300130780038acc00401e0bd13259800800c17e0bf05f82fc4cc89660020030618992cc0040060c5062831418a264b3001307d00389808183e808c18d07a1bae00141f460f400283c0dd7000983c80420f4307700741d505e41d46eb40060ba83c0c1d40050731bad001307400282d20ea307200141c06eb0004c1c400a0af05741c860de0028368c1acdd5000c15506841560ab05582aa0e0306d00241ad05241a5052829414a0a48368c1a80050681bac0013069002827c13d06a1833800a0ca3063375404d04d418104d40d904d419104d826c13609a8340c1940050631bae0013064002419460c40028300dd7000983080120c4305f00141746eb8004c17800905f182e000a0b4375c00260b600482e0c1640050571bae0013058002416460ac00282a0c148dd500bc0f104f40f102640f102640f102640f102640f102640f102640f102640f102640f102640f102640f105340f207903c81e20ae3054001414860a800503a81d40ea07482a8c148005050182900140e207103881c20a63050001413860a000503681b40da06c8288c13800504c182700140d206903481a209e304c0014128609800503281940ca0648268c128005048182500140c2061030818209630480014118609000502e81740ba05c8248c118005044182300140b205902c816208e30440014108608800502a81540aa0548228c108005040181f1baa0058142076814207e81440a2051028410c608000281f0c10000a04d0268134099041181f000a078303e002812409204902440fc607800281d0c0e0dd5000c0890354089039408a045022811207a303a00140e06eb8004c0e400903a181b800a06a3033375400301d40c101d80ec07603a81c0c966002603260646ea8006264b30013019303337540031303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602260666ea8c040c0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c06600e6eb0c03cc0c8dd50099191980080098019bab301130343754602260686ea8008896600200314a115980099b8f375c607000206314a3133002002303900140c881b0c004004896600200314bd7044cc0d0c0c4c0d4004cc008008c0d80050331112cc004c060c0c4dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981d00146600200713259800980e800c4c9660020030078992cc0040062b3001303d0028992cc004c080006264b300100180544c966002003159800982000146600200300c805a01c805a07a805c02e01700b4104607c00281e0c0e8dd50014566002602800313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c046023132598009823801c04e0248220dd6800c0450471822000a084375a002608600500e4110608200281f8dd68009820001402d041181f000a078303a375400500940dc81b8c0e0dd5000c02103a4022011008804207c303b00140e4606e6ea800a2b300130110018acc004c0dcdd5001401e00c81c200c81a1034181a9baa001802a010802a06e802c01600b00540ec607000281b0c0e000a007003801c00d039181b000a0683032375400700140bc456600260100071323259800980498111baa302630270028a518a5040806eb4c094004c084dd500245901e203c1810181080098100022293454cc05924011856616c696461746f722072657475726e65642066616c7365001365640541" + : "592a0a010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480326e9520029b874803a44b30013009300e375400513232332259800980b801c0162c80a0dd6980a0009bae30140023014001300f37540051640349111111111114c00488c8cc00400400c896600200314c0103d87a80008992cc004c0100062601c6604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300b0018992cc004c08800626601a6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc034dd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998079bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd69810800980e9baa0038acc004c02000626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009805000c56600260386ea800e00516407516406880d0c068dd5001488c966002602c0031323259800981100140122c80f8dd71810000980e1baa0038acc004c02800626464b3001302200280245901f1bae3020001301c375400716406880d0c068dd500148966002602a60346ea800a2646464b30013022002899192cc004c0680062b3001302037540050068b20428acc004c03800626464b300130260028044590231bad302400130203754005159800980c800c56600260406ea800a00d16408516407880f101e180f1baa00130210038b203e3259800980f000c56600266e252004301d0018b44c030c07400501c45901f1baa30200013020001301b3754005164065223259800980b000c4c8c96600260440050048b203e375a604000260386ea800e2b3001300a0018acc004c070dd5001c00a2c80ea2c80d101a180d1baa002488888a6002600a00b2259800980d98101baa00289919192cc004c0a000a266010604e006264b3001301f0018992cc004c0a800626464b300130220018992cc004c0b400626601a60580020131640a860506ea800a2b3001301600189919194c004dd69817000cdd69817001cdd698170012444b3001303200480745902f0c0b8004c0b4004c0a0dd5001459026204c30263754002605200316409c604a6ea800a2b300130130018acc004c094dd500140162c81322c811902318119baa0018b204a302600130260013021375400516407d223259800980e000c4c966002604e00313300b30260010038b2048302237540071598009808000c4c966002604e00313259800980f18119baa00189919192cc004c0ac00a266014605400626601400200f1640a06052002605200260486ea80062c8110c0980062c8120c088dd5001c590202040302037540052259800980d98101baa0028991919192cc004c0a400a264b3001302030253754003132323322598009817001c4cc03cc0b402002a2c8158dd718158009bae302b002302b0013026375400316409060500091640986eb8c09c004c09c004c098004c084dd500145901f244446645300133223259800981118139baa001898141919bb0302c001302c302d0013758605660506ea80062c8130c8cc00400400c896600200314c0103d87a80008992cc004cdd7981480099ba548010cc0b0c050cc0b0dd480225eb812f5c11301a3302c374e66058605200266058605400297ae04bd7044cc00c00cc0b80090281816000a05437566050605260526052605260526052605260526052604a6ea8068dd7181418129baa002912cc004c084c098dd500144c8c8c8cc89660026060007133008302f0051330140020068b205a302d001375a605a004605a0026058002604e6ea800a2c812a44b30013021302637540051323232323298009bad302f0019bad302f0049bad302f003981780124444b30013034005899806181980489980c0008054590310c0bc004c0b8004c0b4004c0b0004c09cdd5001459025489660026042604c6ea800a2646464646465300137586060003375a606000b375a6060009375a6060007303000248888966002606c00d13300e303500b13301a001132332259800981c801c03e2c81b0dd7181b0009bae303600630360058b20661818000981780098170009816800981600098139baa0028b204a912cc004c084c098dd500144c8c8c8c8ca60026eb0c0bc0066eb4c0bc0126eb4c0bc00e605e00491112cc004c0d001626601860660122660300022646644b30013037003806c590341bae3034001375c606800a60680091640c4302f001302e001302d001302c001302737540051640949111119912cc004c098006264b300130310018992cc004c0a0c0b4dd5000c4c8c8c8cc8966002606e00713259800981718199baa00189919191919194c004c0f40066eb0c0f40166eb4c0f40126eb4c0f400e607a004911112cc004c10c01a26605c6eb0c10802c8966002005133030006225980080144cc0940144cc094024566002607a60846ea80462646464b3001304a00289919912cc004c10c00a264b3001304e00189981c9bac304d00122598008014012266046609e0042600260a0004826a2c8258c124dd5001c566002606e005132598009827000c4cc0e4dd61826800912cc00400a009133023304f002130013050002413516412c60926ea800e2b300130420028992cc004c1380062660726eb0c13400489660020050048998121827801098009828001209a8b209630493754007159800982200144c8c8c96600260a000513303b3758609e00644b30010028acc004c120c134dd5001c4c8c8cc896600260ac00700a8b20a6375a60a60026eb4c14c008c14c004c138dd5001c5904c44cc098c1440084c004c14800904f45904d1827000982700098249baa0038acc004c0d800a264b3001304e00189981c9bac304d0012259800801401226604a609e0042600260a0004826a2c8258c124dd5001c566002606a005132598009827000c4cc0e4dd61826800912cc00400a009133025304f002130013050002413516412c60926ea800e2b300130340028992cc004c1380062660726eb0c13400489660020050048998131827801098009828001209a8b209630493754007159800981900144c966002609c0031330393758609a00244b300100280244cc098c13c0084c004c14000904d45904b18249baa0038acc004cdc3a402000515980098249baa003800c5904a459047208e411c8239047208e411c823904718231baa0011330260021330360162259800801407e2646644b300130500018998151827800898021828002c5904d1bae304d001304e001375860980048250c12400e2c8238c120004c120004c10cdd5008c5904144c8c008c12000cdd698230012088899180118230019bad30440024109164100303d001303c001303b001303a0013039001303437540031640c8606c00b1640d06eb0c0d0004c0d0008c0d0004c0cc004c0b8dd5000c5902c1818000c5902e18161baa0078acc004c068006264b300130310018992cc004c0a0c0b4dd5000c4c8c8c966002606a00513259800981618189baa001899192cc004c0e0006264b3001302f30343754003132323232323298009bad303e0019bac303e0059bac303e0049bad303e0039bad303e00248888966002608800d13259800981d98201baa0018991919912cc004c12400e2646644b3001304c00389919912cc004c13c00e266054609c03026607403644b3001002811c4c8cc896600260a800313302e30530011300430540058b20a2375c60a200260a40026eb0c14000904e45904c1bad304c001375a609801860980171641246eb4c124004dd698248051824804c590461bad3046001375a608c004608c00260826ea80062c81f8c10c02e2c8208607c002607a002607800260760026074002606a6ea80062c8198c0dc00a2c81a8c0dc004c0c8dd5000c59030181a001c590321bac30330013033001302e37540031640b060600031640b860586ea801e2c815102a0acc004c090c0a4dd5002c66002605a60546ea8016444b30010028a6103d87a80008acc004c09c0062603a6605e606000497ae08cc00400e6062005337000029000a00640ac817245300132330010010032259800800c528456600266ebcc0c4c0b8dd5181898171baa301f302e375460620026030660606ea400d2f5c114a3133002002303200140b0817a94294502a488c8cc00400400c896600200314bd7044cc896600266ebcc0ccc0c0dd5181998181baa3021303037540046034660646ea40152f5c113303200233004004001899802002000a05c3031001303200140bd23019302a3754605c646600200200444b30010018a5eb84103d87a80008101800044c8cc89660033001301e302f375460660074a14a2817226606530014a14c103d87a8000a60103d879800040b8660646e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0d400400e2946266004004606c002818103344cc0ca600294298103d87a8000a60103d879800040b8660646e9c0092f5c11330329800a51a60103d87a8000a60103d879800040b8660646e9ccc0c8dd400080125eb8102e205c3758606260640026eb4c0c4008cc008008c0c400502e48888ca6002003005802400d00111112cc00400e2b30010028800c590334660020093036003981b00166002606a007375a606a005001401480210334888ca6002003004801a00222259800801456600200314a314a0818a2b30010018a508acc004cc010c0cc008c0cc00633001003981a0014c0d00050034528205c40c4818a4444646600200200a44b300100189981919bb0375200a6ea00112f5bded8c113298009bae30300019bad3031001981a8012444b300133720012007133036337606ea4024dd4004002c56600266e3c02400e33001009804400a46606e66ec0dd48051ba80010028800a00e89981b19bb037520066ea0008cc01801800503220641819800a06291111919800800802912cc00400626606466ec0dd48029ba60044bd6f7b63044ca60026eb8c0c00066eacc0c4006606a0049112cc004cdc8004801c4cc0d8cdd81ba9009374c01000b15980099b8f0090038cc00402601100291981b99bb037520146e9800400a2002803a26606c66ec0dd48019ba60023300600600140c881906066002818a4464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e00510018032060899802802981b0022060375c605e0026eacc0c0004c0c80050300a5eb7bdb1824b30010018a518a5040b112222232598009815000c00a260060028170cdc0002001c8966002604c60566ea800a26464b30013032002801c5902f1bad3030001302c37540051640a92302e302f302f302f0019b814800244b30010018a40011337009001198010011818000a05a912cc004c098c0acdd500144c8c8c8ca60026066003303300398198012444b3001303700489980a181b0038998078010992cc004c0b8006264653001375a6072003303a0019bad3039002488966002607a005132323322598009820801c04a2c81f0dd7181f0009bae303e002303e001375860780051640e83039001303437540051598009811000c4c8ca60026eb4c0e40066074003375a60720049112cc004c0f400a264646644b3001304100380945903e1bae303e001375c607c004607c0026eb0c0f000a2c81d0607200260686ea800a2b3001302d00189919194c004dd6981d000cc0ec0066eb4c0e800e6eb4c0e8009222259800981f801c4c8c8cc896600260860070148b2080375c60800026eb8c100008c100004dd6181f001c5903c0c0e8004c0e4004c0d0dd50014566002605e003132332259800981d800c4c8c8cc8966002607e0070108b2078375c60780026eb8c0f0008c0f0004dd6181d000c590381bad30380013039001303437540051598009810800c4c8c8cc8966002607800700d8b2072375a60720026eb4c0e4008c0e4004c0d0dd500145660026040003132323298009bad303a0019bad303a0039bad303a002488966002607c00900f8b2076181d000981c800981a1baa0028acc004c07c00626464b3001303a002805c590371bad303800130343754005159800980e800c4c8c966002607400500b8b206e375a607000260686ea800a2c8191032206440c88191032206440c860646ea80062c81a060660026064002606200260586ea800a2c81524466026004466ebcc0c0c0b4dd50009ba70029119b83337040046eb4c078c0b0dd50009bad301d302c37540032259800800c5268992cc00400629344c96600266e40dd7181698188019bae302d00189980200219818000981900145902c1818000a05c303000140b522232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6068003375a606a0033300300330390024024606e00281a8dd598190019bae302f001330030033034002303200140c12232330010010032259800800c52f5c1133030374e60066062002660040046064002817a44646600200200644b30010018a508acc004cdd798188009ba70038a518998010011819000a05840bd222329800800c01200680088896600200510018cc00400e6068005330043033002001400c818a4605c605e605e605e605e003371090004dc7a45045553447200488888888888888888888888888a60026090608a6ea806e6090608a6ea8c0d8c114dd500dcc06806a444b3001301a0028cc00400e00548002444b30013004003899b80001375a607860966ea800e2c82490194590464888c8cc88cc008008004896600200300389919912cc004cdc8803801456600266e3c01c00a20030064131133005005305200441306eb8c12c004dd698260009827000a0983301600400314800244653001001801c0090011112cc00400a200313298008024c13c00f30010029bae304a0019bab304b00191111192cc004c07400600513003001413c6465300100180340150011112cc00400a200313298008024c16400f30010029bae30540019bad3055001802a048401060ae00482a9406d0192008304d002412d232330010010022259800800c52f5bded8c11323304b3376060900026e98c8cc004004dd59825001112cc004006297adef6c608991982719bb0304b001375060286eb4c130004cc00c00cc140008c13800504c1980180198268011825800a0929806006488c9660026082608e6ea80062646601e0022b30013375e602460926ea800cc130c124dd5002456600266ebcc0e8c124dd5000982618249baa0038800c59047459047182598241baa0018b208c3039304737546070608e6ea800a60100109111111111194c00488c8cc004004008896600200314bd7044cc158c966002609e60a86ea8006260b060aa6ea80062c8298cc014010dd6982b80099801001182c000a0aa9111192cc004c13cc150dd5000c4c96600266ebcc164c158dd5182c982b1baa3047305637540026080660b06ea40152f5c115980098224c004dd59823982b1baa304730563754003005a45087472656173757279004035132598009828182b1baa001899198110008992cc004c14cc160dd5000c4c96600266ebcc174c168dd5182e982d1baa00130443305c375201297ae08acc004c12260026eacc12cc168dd5000c02691108747265617375727900404513259800982a182d1baa001899198130008acc004cdd79812982e1baa0034c0103d87a800089982f0029982f0009982f1ba6330123756609a60b86ea800cc044dd59826982e1baa304d305c375400e97ae08b20b4305e305b3754003164164609860b46ea80062c82c22c82c0c170c164dd5000c59057198049bac304a3058375401000a60b460ae6ea80062c82a8c120c158dd51823982b1baa0018b20a88b20a830583055375400316414c6600a6eb0c15cc150dd50020014888888896600266ebcc16cc160dd5003982d982c1baa0068acc004cdd79825182c1baa00730493058375400d13259800cc0040069464444b3001001899b894800000a294105b20368992cc004cdc4802000c56600266e2400400e200316416116416130010019bae305c0049bae305c305d004404116415c6601c6eacc124c160dd50039806cc004dd7182d802cdd7182d982e002cc08001122259800982a800c402e3300100b801cc8c8008c038004cc174cdd81ba9002375000297adef6c6091111192cc004c0b400600513003001417c653001004804401e444453001005801c0120050014018818140ad02920b24590564590564c13cdd500524444b3001304e0018cc00488c8cdc199b803370066e0800cdd69824982b9baa00200148004004dd69823982b1baa001998021bac30573054375401c6eb0c114c150dd5007cdd6182b982a1baa00f9bad30463054375401f375a603a60a86ea803e608a60a86ea80c522222259800998171bac305d305a375409e6eb8c08cc168dd51825982d1baa001899912cc004ca600200500891192cc004c168c17cdd5000c4c8c8ca60026605000e0033758604260c66ea80166eb4c19800e6eb4c198009222259800983098331baa0048acc004cdc4998099bad30583067375401260d460ce6ea801260026eacc160c19cdd5182c18339baa00a9bae306a0039bae306a306b003407915980099b87002375a60b060ce6ea80262b30013370e0026eb4c164c19cdd5004c4cdd79ba700530253067375401314a0832a2941065452820ca8b20ca1bac3065306600130650013060375400314a082f0c144c17cdd519809001000a05a375860be60b86ea8c138c170dd5001c4c8c96600266e1c00660026eb0c140c178dd5029ccc180c13cc178dd51827982f1baa005330604c01054455534472004bd704dd61830982f1baa3050305e375400a911194c00400600f00d8062002222259800801c52000899912cc004c184c198dd5000c4c96600260c460ce6ea8006266e0260026eacc164c1a0dd5182c98341baa306b006983598341baa002983598341baa0039bac30263068375400733014375a60b260d06ea800cc1acc1a0dd5000c0266eb4c168c1a0dd5001cdd6982c98341baa0034059300100798360034c1b001660d8008803a2c8330cc0b001cdd6181298339baa0028b20ca306800233016007375a60d0002833113232332259800cc00400a9464444b30010018acc004cdc7802245008a51899813002998341ba900433068375200697ae0419114a08321024456600266e1ccdc09bad30653062375460ca0066eb4c194c188dd51832802002c4c96600266e24018006260400031641853001375860ca60c46ea8c150c188dd5004d20009119912cc006600260c00034a14a283222b3001337126605400200930010069bae30690029bae3069306a0024075133700006003164191100341906eb0c19cc190dd5001194c00404290004896600266ebcc094c19cdd50011ba7003899b80001375a60b060ce6ea800a200283290241bac306730643754004810a2c83022c8300dd598319832000998109bac30633060375460a460c06ea801c8dd6183218309baa00130630019800829cdd71830982f1baa304f305e375400b007803201a8b20b859800982b9808800c520008acc004c184006264b3001301a375c60ba0031375a60bc00316417060c000316417882d8cc0a4dd5980d182e1baa051375c609a60b86ea8c134c170dd5001c5905a4c004016009259800980c1bad304c305b375400313018375a609a60b66ea8006294105920243302d375860ba60b46ea813cdd71826182d1baa304b305a3754003164160899912cc004c11000e3300133006375860b260ac6ea8040dd61823982b1baa0119bac305930563754023375a609060ac6ea80466eb4c07cc158dd5008cc11cc158dd5019a44444b30013302f375860bc60b66ea8140dd71812182d9baa304c305b375400319800cc00401600925980099b88375a609a60b86ea800520008980c9bad304e305c375400314a082d10134cc0b8dd6182f182d9baa050375c609a60b66ea8c130c16cdd5000ccc174c130c16cdd51826182d9baa0013305d4c1054455534472004bd702444b3001980080140224464b3001304f3060375400313233225980099b8900198009bab30553064375460aa60c86ea801a6eb8c19c01e6eb8c19cc1a001d01b456600266e1c004c0b0dd6982a98321baa0058acc004cdc39bad3067002375a60ac60c86ea8016266ebcc19cc1a0008c088c190dd5002c52820c48a50418914a08310c198004dd6983280098309baa0018a50417c60a460c06ea8cc04c00800502e4660026644653001001802c02e014800888896600200714bd7044cc896600260c060ca6ea8006264b3001306130663754003133223322330020020012259800800c4cc1b4dd3998369ba70043306d375000697ae04bd7044ca60026eb0c1bc0066eb4c1bcc1c000660e00049112cc004cdd79ba7003374e011133071374e660e26e9c00ccc1c4dd419b800020074bd70000c4cc1c4dd3998389ba700333071375000497ae03300600600141b4375860dc00283626002013306d0089836803cc1b40190091bac3025306737540073001375660b060ce6ea8c160c19cdd518350034c1a8c19cdd50014c1a8c19cdd5001c02a60246eb4c160c19cdd5001cdd6181298339baa0039bad3059306737540073302b3012375a60b060ce6ea800cc1a8c19cdd5000a02a8b20ca3302b0073758604860cc6ea800a2c8320c19c008cc054018dd69833800a0ca375860a060bc6ea814cdd61830982f1baa3050305e37540093302b3756603860bc6ea814cdd71827982f1baa304f305e37540099800829cdd71830982f1baa304f305e3754009006802a01a9980f9bac3061305e375460a060bc6ea80108dd61831182f9baa00148888c8cc89660033001002a5191112cc0040062b30013371e0089101008a51899814804198359ba90043306b375200697ae0419d14a08339027456600266e1ccdc09bad30683065375460d00066eb4c1a0c194dd51834002800c56600266e1c006600201f480024466e00004dd6982c18339baa0024091159800998089bac30683065375460ae60ca6ea802c8c8cdc3cc0040126eb8c1a80066eb8c1a8c1ac00501e1817991919800800805912cc0040062900044c96600266ebcc1b8004dd380244dd698371837800c4cc00c00cc1bc0090691bac306d00141ac6eb0c1a8c19cdd50011bac30693066375400314a316418d16418d16418d16418c6eacc198c19c0056600260ba602e0091480022b300130670048992cc004c080dd71831800c4dd69832000c59062183300245906420c2306600245905c22c82c91598009820801c660026600c6eb0c164c158dd50081bac304730563754023375860b260ac6ea80466eb4c120c158dd5008cdd6980f982b1baa0119823982b1baa033488889660026605e6eb0c178c16cdd50281bae3024305b3754609860b66ea80062b30019800998171bac305e305b37540a06eb8c134c16cdd51826182d9baa001802c88c96600260ae60ba6ea80062646604a0022b30013375e60a260be6ea800cc188c17cdd5002456600266ebcc140c17cdd50009831182f9baa0038992cc004c12cc17cdd5000c4cdc39bad3063306037540026eb4c144c180dd5002452820bc3051305f375400316417516417460c260bc6ea80062c82e0c13cc174dd51827182e9baa00240ad1598009991194c0040060110074004444b30010028acc00400629462941061456600200314a115980099912cc004c170c184dd5000c4c96600266ebcc198c18cdd5000983318319baa30663063375400715980099baf30553063375400260a860c66ea8c198c18cdd5001c4cdc3cc004dd5982a18319baa0019bae30660079bae30540074068601c6eb4c150c18cdd5001c52820c28a50418460ca60c46ea80062c8300c18c008cc044014dd69831800c6600200730640029832000a0068a50417883090611bac304d305b37540a0660ba609860b66ea8c130c16cdd50009982ea601054455534472004bd7044c8ca60026eacc180c184006660546eacc06cc174dd50291bae304e305d3754609c60ba6ea800eb3001302f0068cc00401e00d48002444b3001301d375a60a260c06ea800e266e00004dd6982898301baa0038b20bc40b916416c9112cc004cdc3acc004c168c05000a29000456600260c800513259800980e9bae306000189bad30610018b20be30630028b20c2417800315980099b87337026eb4c18cc180dd518318021bad30633060375460c600a00313300c375860c660c06ea8c148c180dd5003119182e4c0040166eb8c1940066eb8c194c1980050191bac306430613754003164179164178306000198008284dd7182f182d9baa304c305b375400300380120148b20b28b20b28b20b24566002607e00719800998031bac3059305637540206eb0c11cc158dd5008cdd69824182b1baa0119bad301f3056375402330473056375406691112cc004cc0b8dd6182e982d1baa04f375c604660b46ea8c12cc168dd5000c56600266453001002803488c96600260b060bc6ea80062646604c0022b30013375e60a460c06ea800cc18cc180dd5002456600266ebcc144c180dd5000983198301baa0038992cc004c128c180dd5000c4c96600266e2400660026eacc14cc188dd5182998311baa0069bae30650079bae30653066007406513370e00260546eb4c14cc188dd5002c52820c0375a60c860c26ea8006294105f182918301baa0018b20bc8b20bc3062305f375400316417460a060bc6ea8c13cc178dd500120583302d375860ba60b46ea813cdd71826182d1baa304b305a3754002660b8609660b46ea8c12cc168dd50009982e261054455534472004bd7044c8ca60026eacc17cc180006660526eacc068c170dd50289bae304d305c3754609a60b86ea800f3001006a4001225980099b88375a609e60bc6ea80092000899b80001375a609e60bc6ea800a2c82e101b2444b30013370eb3001305930130028a4001159800983180144c96600260386eb8c17c00626eb4c1800062c82f0c18800a2c830105d000c56600266e1ccdc09bad3062305f375460c40086eb4c188c17cdd51831002800c4cc02cdd61831182f9baa3051305f375400c46460b730010059bae30640019bae3064306500140606eb0c18cc180dd5000c5905d45905d0c17c006600209f375c60ba60b46ea8c12cc168dd5000c00e004804a2c82c22c82c114a082a105420a82232330010010032259800800c528c566002600660b6003133002002305c0018a50415882c896600266e2000520008980e800c400505320a4112cc004cdc4000a400114c0103d87a8000899805001000a09e22c8140c0a4dd50028c8c8c9660026040604a6ea80062646644b3001302d0018992cc004c090c0a4dd5000c4c8c8c8cc8966002606600713259800981518179baa0018991919191919191919194c004c0f4006607a013303d008981e803cc0f401a607a00b303d004981e801cc0f400922222222259800982380544cc090c11804c4cc0900204cc09001c4cc0900184cc0900144cc0900104cc09000c4cc0900084cc0900044cc090024566002607a60846ea8056264646464653001375c6096003304c0019bae304b0059bae304b0049bae304b0039bae304b00248888896600260a400b1330333051005159800982418269baa02189919192cc004c15400a2660806eb0c15000c8966002005133033003102e8992cc004c138c14cdd5000c4c8c8c8cc896600260ba007132323322598009830801c4c02cc1840322c82f0dd7182f0009bae305e002305e001375860b800b1641686eb4c168004dd6982d001182d000982c800982a1baa0018b20a43056002415116414860a600260a6002609c6ea80862c82622c8278609600260940026092002609000260866ea80562c820a2c8220607a00260780026076002607400260720026070002606e002606c002606a00260606ea80062c8170c0c80162c8180c0c0004c0c0008c0c0004c0bc004c0a8dd5000c590281816000c5902a1bae302a001302b0013026375400316409064b300130203025375400313259800981018131baa0018981518139baa0018b204a301830263754602e604c6ea8c0a4c098dd5000c59024198061bac3016302537540344646600200260066eacc060c09cdd5180c18139baa0022259800800c528456600266e3cdd71815800812c528c4cc008008c0b0005026205230010012259800800c52f5c113302730243028001330020023029001409844b3001301f30243754005132323259800981600144cc020c0ac00c4c966002604600315980098149baa002802c5902a4566002602e00313232598009817801401e2c8160dd7181680098149baa0028acc004c08800626464b3001302f002803c5902c181680098149baa0028b204e409c8138c09cdd5000c590291815000981500098129baa0028b204611598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d1365640081", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolMintProtocolMintPublish { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594c34010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a495365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f61737365742900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a492e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a4942657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f646174610016488888888888888888896600330013018375403d370e90034dc3a4001370e90022444464653001301d3754003302100698108012444b300130060038cc004c090c084dd500248c094c098c0980064604a604c003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480326e9520024888888888a600244646600200200644b30010018a60103d87a80008992cc004c010006260186606400297ae0899801801981a001205a303200140c1222329800800c0120068008888c966002603000313259800800c01a264b3001001803c01e00f0078992cc004c0e400e00b00840d86eb8005039181b000a068303237540071598009806000c4c9660020030068992cc00400600f0078992cc004c0e400e26602000244b3001002803c4c966002003198008054006260046078006805201700b805c02d03d181d0012070804206c3758003007803a072303600140d060646ea800e2b300130170018992cc00400600d13259800800c01e00f13259800981c801c4cc04000489660020050078992cc0040063300100a800c4c008c0f000d00a402e01700b805a07a303a00240e100840d86eb000600f00740e4606c00281a0c0c8dd5001c566002603200313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b3001303c003899809800912cc00400a01513259800800c6600201b00189801181f801a01a807403a01d00e4100607a00481da01681c8dd6000c02a01481e0c0e40050371bad0013038002803a072303600140d060646ea800e2b3001300b0018992cc00400600d13259800800c01e00f0078992cc004c0e400e00b00840d86eb400600e81c8c0d800503418191baa0038acc004c028006264b300100180344c966002003007803c01e264b30013039003802c0210361bad001803a072303600140d060646ea800e2b300130090018992cc00400600d13259800800c01e00f007803c4c9660026072007005804206c375c00281c8c0d800503418191baa003802a05e40bc817902f205e40bc8178c0c0dd50014888c966002602a00313259800800c00e264b300100180240120090048992cc004c0d800e00d00540cc6eb80050361819800a062302f37540091598009804800c566002605e6ea801200700240c100240b08160c0b4dd5001c888c966002602a00313259800800c00e264b300100180240120090048992cc004c0d800e00d00540cc6eb80050361819800a062302f37540091598009804800c4c9660020030038992cc0040060090048024012264b3001303600380340150331bae00140d860660028188c0bcdd5002400902c2058302d375400691111919192cc0040063300122259800980d981a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b300130200018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c07c006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005402900540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e00281926e1d200e9112cc004c06cc0d0dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800981d000c56600266e252004303900180344c966002607e009132598009811000c56600260786ea801a01300840f5159800980b000c4c9660020030098992cc00400601500a80544c966002608600700c805a080375a00300a410c608000281f0c0f0dd500345660026042003159800981e1baa006804c02103d4021039207240e460746ea801600e81e0c050c0e4005037401903b1baa001802c01600b00540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c922259800980d981a1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002607e007008803a078375a00300640fc607800281d0dd7000981d8012078303900140dc606a6ea800e002819244464b3001301c0018992cc00400600713259800800c0120090048992cc004c0f400e00d00540e86eb400600881e8c0e8005038181b1baa0048acc004c0400062b300130363754009003801206e801206640cc60686ea800e444b3001301b3034375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc00400600f007803c01e264b300130400038acc004c088c0ecdd500344c9660020030098992cc00400601500a805402a26644b300100180644c96600200300d806c03601b132598009823001c6600201500f807202a8072086375c0028230c10c0050411bae0013042002410c608000281f0c0f0dd50034021039402103d1bae0014100607a00281d8c0f400a00b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c0050324c0c4dd5000a44444453001222598009811181d9baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc0040062b300130470028cc00401a33001001804c02100e40210114021044402201100880420903045001410c6eb4004c11000a00a8228c1080050401821001400e007003801a086304000140f860786ea800e00281ca444b30013022303b375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d806c4c966002609a0071980080646600200900f8072028807202e8072094375a00300d413460940028240c12800a01700b805c02d04b1824000a08c375a002608e0050084120608a0028218dd6800982200140150451821000a0803042002801c00e007003410c608000281f0c0f0dd5001c005039488966002604460766ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b3001001805c02e0171332259800800c036264b30010018992cc00400601f13259800800c042021132598009828001c6600201f1980080245660020030118992cc004006025012809404a26644b300100180a44c96600200301580ac05602b13259800982a801c05e02c8290dd7000a0aa305200141406eb8004c1440090521827800a09a808a02e808a034808a09a375800301080820a0304d001412c609a00500e807403a01c8270c12c0050491bad001304a002805a096304800141186eb4004c11c00a0108240c1140050431bad0013044002802a08a304200141006084005003801c00e0068218c10000503e181e1baa003800a0729112cc004c088c0ecdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001304d0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001305200380a404d04f1bae0014148609e0028268dd70009827001209e304c001412900e405100e405d00e41286eb000601b00d413460940028240c12800a01700b805c02d04b1824000a08c375a002608e0050084120608a0028218dd6800982200140150451821000a0803042002801c00e007003410c608000281f0c0f0dd5001c0050394888c966002604600313259800800c00e264b30010018acc004c10c00a33001001802c01100a401104040120090048022088304100140fc607a6ea80122b300130170018992cc00400600713259800800c56600260860051598009812981f1baa0018992cc00400600b13259800800c4c9660020030078992cc0040062b300130470028cc00400e33001001804c02100f402100f4021044402201100880420903045001410c608a005006803401a00c8230c10c005041181f9baa0018022078802208080240120090044110608200281f8c0f4dd5002400903a2074303b3754007159800980f981c1baa0088cc004c0f0c0e4dd500448896600200514c103d87a80008acc004c088006260306607c607e00497ae08cc00400e6080005337000029000a00640e481ea45300132330010010032259800800c528456600266ebcc100c0f4dd51820181e9baa301a303d3754608000260266607e6ea400d2f5c114a3133002002304100140e881f2942945038488c8cc00400400c896600200314bd7044cc896600266ebcc108c0fcdd51821181f9baa301c303f3754004602a660826ea40152f5c113304100233004004001899802002000a0783040001304100140f92301430393754607a646600200200444b30010018a5eb84103d87a80008101800044c8cc896600330013019303e375460840074a14a281e226608330014a14c103d87a8000a60103d879800040f0660826e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11000400e2946266004004608a00281f104244cc106600294298103d87a8000a60103d879800040f0660826e9c0092f5c11330419800a51a60103d87a8000a60103d879800040f0660826e9ccc104dd400080125eb8103c20783758608060820026eb4c100008cc008008c10000503d48888ca6002003005802400d00111112cc00400e2b30010028800c54cc0fd24112657870656374205b5d203d206c6973745f6200164109159800801454cc0fd2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc004012608a0073045002cc004c11000e6eb4c11000a002802900420844109222329800800c012006800888966002005159800800c528c52820808acc00400629422b300133004304200230420018cc00400e60860053043001400d14a081e1040208091111919800800802912cc00400626608266ec0dd48029ba80044bd6f7b63044ca60026eb8c0fc0066eb4c10000660880049112cc004cdc8004801c4cc114cdd81ba9009375001000b15980099b8f0090038cc00402601100291982319bb037520146ea000400a2002803a26608a66ec0dd48019ba80023300600600141008200608400282024444646600200200a44b300100189982099bb0375200a6e980112f5bded8c113298009bae303f0019bab304000198220012444b300133720012007133045337606ea4024dd3004002c56600266e3c02400e33001009804400a46608c66ec0dd48051ba60010028800a00e89982299bb037520066e98008cc01801800504020801821000a08091191919800800802112cc00400600713233225980099b910070028acc004cdc78038014400600c81f226600a00a608a00881f0dd7181f0009bab303f001304100140fc297adef6c6092cc0040062946294103b4488888c966002604a00300289801800a07833700008007222598009811181d9baa0038992cc00400600513259800800c00e0070038992cc004c10c00e00b00441006eb40060068218c10000503e181e1baa003800a0729181e981f181f181f000cdc0a40012259800800c52000899b8048008cc008008c0fc00503c488966002604460766ea800e264b300100180144c96600200313259800800c012264b30010018992cc00400600d13259800800c4c9660020030088992cc004c12000a330010078cc004016264b3001302b0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009829001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800982b801c06603082a0dd7000a0ae305400141486eb8004c14c0090541828800a09e809a09e375800301280920a4304f00141346eb4004c13800a01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301f0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009829001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800982b801c06603082a0dd7000a0ae305400141486eb8004c14c0090541828800a09e809a09e375800301280920a4304f00141346eb4004c13800a01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001302a0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025012899912cc00400602913259800800c05602b13259800982a801c5660020030168992cc00400602f01780bc05e26644b300100180cc4c96600200301a80d406a03513259800982d001c07203682b8dd7000a0b4305700141546eb8004c158009057182a000a0a480b20a4375800301580aa0aa305200141406eb4004c14400a0248290c13c00504d1bad001304e002807a09e304c00141286eb4004c12c00a0188260c12400504718229baa0048acc004c0b0006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c4c966002609e007159800800c042264b3001001808c046023011899912cc00400602713259800800c05202901480a44c96600260a800701680aa0a2375c00282a0c14400504f1bae00130500024144609c00282620208260dd6000c03e01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301e0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f8992cc004c13c00e02301041306eb400601e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301d0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a0250128992cc004c14800e029013413c6eb40060248290c13c00504d1bad001304e002807a09e304c00141286eb4004c12c00a0188260c12400504718229baa0048acc004c070006264b3001001805c4c96600200300c8064032264b3001304c00380740350491bad00180620983049001411c608a6ea80122b300130120018992cc00400601713259800800c03201900c8992cc004c13000e01d00d41246eb40060188260c12400504718229baa00480520844108821104220844108821104218219baa003804a024804a030804a08a30460014110608c005007803c01e00e8238c1100050421822001401600b005802a08a304200141006084005003801c00e0068218c10000503e181e1baa003800a0729119808001119baf303f303c37540026e9c00a4466e0ccdc10011bad3019303b37540026eb4c060c0ecdd5000c8966002003149a264b30010018a4d1325980099b90375c607860800066eb8c0f00062660080086607e0026082005153303b4901326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f72646572001640e8607e00281e8c0fc00503c4888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd71821800cdd69822000ccc00c00cc1200090091823000a088375660820066eb8c0f8004cc00c00cc10c008c10400503f488c8cc00400400c896600200314bd7044cc0fcdd398019820000998010011820800a07c911919800800801912cc00400629422b30013375e60800026e9c00e2946266004004608200281d103e4888ca6002003004801a00222259800801440063300100398218014cc010c10800800500320809181e981f181f181f181f000cdc424001371e9101045553447200488888888888888888888888888a600260ae60a86ea806e60ae60a86ea8c0c4c150dd500dcc06806a444b3001301a0028cc00400e00548002444b30013004003899b80001375a606e60b46ea800e08c82b901941310544888c8cc88cc008008004896600200300389919912cc004cdc8803801456600266e3c01c00a20030064169133005005306100441686eb8c168004dd6982d800982e800a0b63301600400314800244653001001801c0090011112cc00400a200313298008024c17800f30010029bae30590019bab305a00191111192cc004c0740060051300300141746465300100180340150011112cc00400a200313298008024c1a000f30010029bae30630019bad3064001802a048401060cc0048321406d0192008305c0024169232330010010022259800800c52f5bded8c11323305a3376060ae0026e98c8cc004004dd5982c801112cc004006297adef6c608991982e99bb0305a001375060286eb4c16c004cc00c00cc17c008c17400505b19801801982e001182d000a0b09806006488c966002607860ac6ea8006264b30010018cc0040062b30013375e602460b06ea800cc16cc160dd5002456600266ebcc0d4c160dd5000982d982c1baa0038800c54cc15924013865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00164155153305649138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500164155046403d046823411a08c82e8c168c15cdd5000c111054181a182b1baa303330563754005300800848888888888ca600244646600200200444b30010018a5eb822660ca64b3001304a30633754003130673064375400315330624913965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641846600a0086eb4c198004cc008008c19c00506448888c966002609460c66ea8006264b30013375e60d060ca6ea8c1a0c194dd5182118329baa001303b33067375200a97ae08acc004c0fe60026eacc108c194dd5182118329baa001802d22108747265617375727900403513259800982598329baa0018992cc004006330010018992cc004c138c19cdd5000c4c96600266ebcc1b0c1a4dd5183618349baa001303f3306b375201297ae08acc004c10e60026eacc118c1a4dd5000c026910108747265617375727900404513259800982798349baa0018992cc004006330010018acc004cdd7981298359baa0034c103d87a800089983680299836800998369ba6330123756609060d66ea800cc044dd5982418359baa3048306b375400e97ae08a99834a48126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001641a105f409905f82fc17e0be8380c1b4c1a8dd5000c54cc1a124012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016419c608e60d26ea80062a660ce920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164199153306749143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016419860d660d06ea80062a660cc92013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f6964782900164194660126eb0c114c19cdd5004002c169022416a0b505a82d20d8306930663754003153306449013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016418c608660ca6ea8c108c194dd5000c54cc18d2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d20310016418915330634914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016418860ce60c86ea80062a660c492013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641846600a6eb0c198c18cdd50020014888888896600266ebcc1a8c19cdd5003983518339baa0068acc004cdd7982298339baa00730443067375400d13259800cc0040069464444b3001001899b894800000a294106920368992cc004cdc4802000c56600266e2400400e20031533067491216578706563742064656c697665726564203c3d206d61785f64656c697665726564001641991533067491216578706563742064656c697665726564203e3d206d696e5f64656c6976657265640016419930010019bae306b0049bae306b306c00440411533066490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641946601c6eacc110c19cdd50039806cc004dd71835002cdd718351835802cc080011222598009828000c402e3300100b801cc8c8008c038004cc1b0cdd81ba9002375000297adef6c6091111192cc004c0b40060051300300141b4653001004804401e444453001005801c0120050014018818140ad02920ce454cc19524128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d0016419115330654912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e6164647265737300164191305e375401491112cc004c1240063300122323370666e00cdc019b82003375a608860cc6ea80080052001001375a608460ca6ea8006660086eb0c198c18cdd50071bac30403063375401f375860cc60c66ea803e6eb4c104c18cdd5007cdd6980e98319baa00f982018319baa0334888889660026605c6eb0c1b0c1a4dd50251bae302330693754608c60d26ea800626644b300132980080140224464b30013055306e37540031323232980099814003800cdd6181098391baa0059bad30750039bad3075002488896600260b860ea6ea80122b300133712660266eb4c14cc1d8dd5004983c983b1baa00498009bab30533076375460a660ec6ea802a6eb8c1e400e6eb8c1e4c1e800d01e456600266e1c008dd69829983b1baa0098acc004cdc38009bad30543076375401313375e6e9c014c094c1d8dd5004c52820e68a5041cd14a0839a2a660e892014365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f617373657429001641cc375860e860ea00260e800260de6ea8006294106c182618371baa3301200200140b46eb0c1b8c1acdd5182498359baa003899192cc004cdc3800cc004dd6182598369baa04e99837982518369baa304a306d375400a660de981054455534472004bd704dd6183818369baa304b306d375400a911194c00400600f00d8062002222259800801c52000899912cc0040120dd1332259800802c1c626644b300130603079375400313322598009831183d9baa001899b8098009bab3059307c375460b260f86ea8022005307f307c375400d3758605660f86ea801a660326eb4c164c1f0dd5003183f983e1baa0018074dd6982d183e1baa0069bad3059307c375400c80da6002019007802c01100c41d9079183e983d1baa0013303000b3758605260f46ea80120e083b8c1f0014cc06802cdd6983d802a0f23079004307a00441dc60ee00660f000683a91323298009839000cdd598391839800ccc084dd6183918379baa304d306f375400e46eb0c1ccc1c0dd5000cc1c8009222259800cc00400e9464444b30010018acc004cdc78022441008a518998140031983c9ba900433079375200697ae041d114a083a1026456600266e1ccdc09bad3076307337540086eb4c1d8c1ccdd5000803c4c96600266e2402000626044003153307249012a657870656374206d696e745f616d6f756e74203c3d20746f74616c5f76616c6964617465645f75736472001641c53001375860ec60e66ea8c144c1ccdd5005d20009119912cc006600260ba0034a14a283a22b3001337126605800200930010079bae307a0029bae307a307b002407d133700006003153307549012d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001641d1100341d06eb0c1e0c1d4dd5001194c00404a90004896600266ebcc09cc1e0dd50011ba7003899b80001375a60aa60f06ea800a200283a90261bac307830753754004811a0d483820dc838060e4003300104e9bae3070306d3754609460da6ea801600f0064035153306b490125657870656374206d696e745f616d6f756e74203d3d20746f74616c5f64656c697665726564001641a8b3001305230110018a4001159800800c176264b300130710028992cc004c06cdd71836801440060c08358dd69836800c17906e1837800a0da41a4660526eacc068c1acdd50261bae3048306b3754609060d66ea800e2a660d29201756578706563740a2020202076616c69646174655f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a2020202029001641a13001005802496600260306eb4c11cc1a8dd5000c4c060dd6982418351baa0018a50419c8090cc0b4dd6183618349baa04a375c608e60d26ea8c118c1a4dd5000c151066226644b3001303f0038cc004cc018dd6183418329baa0103758608460ca6ea80466eb0c1a0c194dd5008cdd6982198329baa0119bad301f3065375402330423065375406a911112cc004cc0bcdd6183698351baa04b375c604860d46ea8c11cc1a8dd5000c660033001005802496600266e20dd6982418359baa00148002260326eb4c124c1acdd5000c52820d0404d3302e375860da60d46ea812cdd7182418351baa3047306a37540033306c3047306a3754608e60d46ea8004cc1b1301054455534472004bd702444b3001980080140224464b3001304a306f375400313233225980099b8900198009bab30503073375460a060e66ea801a6eb8c1d801e6eb8c1d8c1dc01d01b456600266e1c004c0b0dd6982818399baa0058acc004cdc39bad3076002375a60a260e66ea8016266ebcc1d8c1dc008c088c1ccdd5002c52820e08a5041c114a08380c1d4004dd6983a00098381baa0018a5041b4609a60de6ea8cc04c00800502e4660026644653001001802c02e014800888896600200714bd7044cc896600200906d899912cc0040160e11332259800982f983c1baa001899912cc004c184c1e8dd5000c4cc88cc88cc008008004896600200313308101374e66102026e9c010cc20404dd4001a5eb812f5c113298009bac3083010019bad3083013084010019842008012444b30013375e6e9c00cdd380444cc21404dd399842809ba70033308501375066e0000801d2f5c000313308501374e6610a026e9c00ccc21404dd400125eb80cc018018005080010dd6184100800a100029800807402600f00640386eb0c0a8c1ecdd50034c004dd5982c183d9baa3058307b3754011002983f183d9baa006807cc05cdd6982c183d9baa0069bac302a307b375400d375a60b260f66ea801a66060602e6eb4c160c1ecdd5003183f183d9baa001406907541e060f860f26ea8004cc0bc02cdd61814183c9baa004837a0ec307b0053301900a375a60f400a83c0c1e0010c1e4011076183b001983b801a0e83758609660da6ea8138dd6183818369baa304b306d37540093302b3756603860da6ea8138dd7182518369baa304a306d375400998008274dd7183818369baa304a306d3754009006802a01a9980f9bac3070306d3754609660da6ea80108dd6183898371baa00148888ca600260ea003375660ea60ec0033075003acc004c160c05c0122900045660020090638992cc004c1dc016264b30013021375c60e6005100183320e2375a60e600306441d060ea008839906f24444b30019800801d28c88896600200315980099b8f004489008a518998158051983e1ba90043307c375200697ae041dd14a083b9029456600266e1ccdc09bad3079307637540086eb4c1e4c1d8dd5001000c56600266e1c0066002023480024466e00004dd6982a983c1baa0024099159800998099bac30793076375460a860ec6ea80348c8cdc3cc0040166eb8c1ec0066eb8c1ecc1f00050201818991919800800806912cc0040062900044c96600266ebcc1fc004dd380244dd6983f984000800c4cc00c00cc200040090791bac307e00141f06eb0c1ecc1e0dd50011bac307a3077375400314a31533074491ff6578706563740a202020206c6973742e616c6c280a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a202020202020666e28726129207b0a20202020202020206c65742028706f6c6963792c206e616d6529203d2072612e61737365740a20202020202020206c65742061637475616c5f64656c7461203d206173736574732e7175616e746974795f6f662876616c75655f64656c74612c20706f6c6963792c206e616d65290a20202020202020206c657420757365725f7265636569707473203d206c6f6f6b75705f61737365745f73756d287065725f726573657276655f61637475616c732c2072612e613b73736574290a202020202020202061637475616c5f64656c7461203d3d202d757365725f72656365697074730a2020202020207d2c0a2020202029001641cd153307449123657870656374206d696e745f616d6f756e74203d3d2073756d6d65645f616d6f756e74001641cd06d41cd07141cc3075002454cc1ad241466578706563742076616c69646174655f72656465656d5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f617373657429001641a882aa0ce4566002607800719800998031bac3068306537540206eb0c108c194dd5008cdd6183418329baa0119bad304330653754023375a603e60ca6ea8046608460ca6ea80d52222259800998179bac306d306a37540966eb8c090c1a8dd5182398351baa0018acc00660026605c6eb0c1b4c1a8dd50259bae3048306a3754608e60d46ea800600b223259800982918361baa0018992cc004006330010018acc004cdd7982618371baa0033071306e375400915980099baf304b306e375400260e260dc6ea800e264b30013046306e375400313370e6eb4c1c8c1bcdd50009bad304c306f375400914a08360c130c1b8dd5000c17906b417506b417102541720b905c82e20e63070306d375400305a41a8609460d86ea8c124c1b0dd500120568acc004cc88ca6002003008803a00222259800801456600200314a314a083822b30010018a508acc004cc896600260ae60e06ea8006264b30013375e60ea60e46ea8004c1d4c1c8dd5183a98391baa0038acc004cdd7982818391baa001304f3072375460ea60e46ea800e266e1e60026eacc13cc1c8dd5000cdd7183a803cdd71827803a034300e375a609e60e46ea800e294106f452820de30743071375400306741b860e40046602200a6eb4c1c80063300100398398014c1cc005003452820d841c08380dd6182418351baa04b3306c3047306a3754608e60d46ea8004cc1b1301054455534472004bd7044c8ca60026eacc1bcc1c0006660546eacc06cc1b0dd50269bae3049306c3754609260d86ea800eb3001302f0068cc00401e00d48002444b3001301d375a609860de6ea800e266e00004dd6982618379baa00382da0d840b906141a49112cc004cdc3acc004c154c05000a2900045660020050608992cc004c1d000e264b3001301e375c60e00051001831a0dc375a60e000306141c460e4004838106c000c56600266e1ccdc09bad3072306f375460e40086eb4c1c8c1bcdd51839002800c4cc030dd6183918379baa304d306f375400c46460af30010059bae30740019bae3074307500140646eb0c1ccc1c0dd5000c19906c454cc1b524012165787065637420757364725f6d696e746564203d3d206d696e745f616d6f756e74001641b0306f0019800825cdd7183698351baa3047306a375400300380120148a998342481806578706563740a2020202076616c69646174655f6469726563745f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f75747075745f696e64696365732c0a202020202020757364725f61737365742c0a20202020290016419d15330684913f6578706563742076616c69646174655f6469726563745f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f7265717565737473290016419d055419c8acc004c0c800e3300133006375860d060ca6ea8040dd6182118329baa0119bad304330653754023375a603e60ca6ea8046608460ca6ea80d5222259800998171bac306c306937540946eb8c08cc1a4dd5182318349baa0018acc004cc8a600200500691192cc004c14cc1b4dd5000c4c96600200319800800c56600266ebcc134c1bcdd5001983918379baa0048acc004cdd7982618379baa0013072306f375400713259800981e98379baa0018992cc004cdc4800cc004dd5982718389baa304e3071375400d375c60e800f375c60e860ea00e80ca266e1c004c0a8dd6982718389baa0058a5041b86eb4c1ccc1c0dd5000c52820da304d306f375400305f41b105e41b105d409905d82ec1760ba83a0c1c4c1b8dd5000c16d06b182598369baa304a306d37540048160cc0b4dd6183618349baa04a375c608e60d26ea8c118c1a4dd500099835982318349baa304630693754002660d6981054455534472004bd7044c8ca60026eacc1b8c1bc006660526eacc068c1acdd50261bae3048306b3754609060d66ea800f3001006a4001225980099b88375a609460da6ea80092000899b80001375a609460da6ea800a0b2835101b2444b30013370eb3001305430130028a4001159800801417e264b300130730038992cc004c074dd71837801440060c48368dd69837800c181070183880120de41ac00315980099b87337026eb4c1c4c1b8dd518388021bad3071306e375460e200a00313300b375860e260dc6ea8c130c1b8dd5003119182b4c0040166eb8c1cc0066eb8c1ccc1d00050181bac3072306f3754003153306c4915a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206275726e5f616d6f756e74001641ad153306c4912165787065637420757364725f6d696e746564203d3d206275726e5f616d6f756e74001641ac306e00198008254dd7183618349baa30463069375400300380120128a99833a4814b6578706563742076616c69646174655f6469726563745f6275726e5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f6173736574290016419905441988a5041888311062111919800800801912cc00400629462b30013003306a0018998010011835800c52820c841a04b300133710002900044c074006200283090600896600266e2000520008a60103d87a8000899805001000a0ba22a6606e92013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640d89111112cc004c09401e264b3001001814c4c96600200315980098228014566002604e60806ea8006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c0c2061132598009826001c566002605c608e6ea801a264b300100181944c966002003033819c4cc89660020030358992cc00400606d036899912cc00400607113259800800c0e6073039899912cc00400607713259800800c0f207903c899912cc00400607d13259800800c4c9660020030408992cc0040062b3001305c002899819807112cc00400a26606a01a44b30010028cc00401e330010058acc004c108c16cdd500c44c9660020030468992cc004006264b300100182444c966002003159800983200144cc8966002609000313259800800c132264b3001001826c136264b30013069003899820000912cc00400a00f13259800800c6600200313002306c003828a058828c1460a305141b460d4004834209c8330dd6000c13609a8348c19800506418311baa0058acc004c0f0006264b300100182644c96600200304d826c4c96600260d20071330400012259800801401e264b30010018cc0040062600460d800705140b1051828c1460a28368c1a800906841390661bac001826c1350691833000a0c83062375400b1598009823800c4c96600200304c8992cc00400609b04d8992cc004c1a400e26608000244b3001002803c4c96600200319800800c4c008c1b000e0a2816a0a3051828c14506d183500120d082720cc375800304d826a0d23066001419060c46ea80162b300130490018992cc00400609913259800800c13609b1332259800800c13e264b30010018acc004c1ac00a26608400644b30010028acc004c13cc1a0dd5001c4c9660020030538992cc0040060a905482a44cc89660020030568992cc0040060af05782bc4c96600260e600700f82c20e0375a00305741cc60e00028370dd6800983780141510701836800a0d630693754007052419913259800800c6600200313002306e003829a05e829c14e0a705341bc60d800483520a083420a1050828414106c1834800a0ce375800260d000504d826a0d23066001419060c46ea80162b3001303b0018992cc00400609913259800800c13609b132598009834801c4cc10000489660020050078992cc00400633001001898011836001c14502e41460a3051828a0da306a00241a104e41986eb000609b04d41a460cc0028320c188dd5002c566002607400313259800800c132264b3001001826c136264b30013069003899820000912cc00400a00f13259800800c6600200313002306c003828a05c828c1460a305141b460d4004834209c8330dd6000c13609a8348c19800506418311baa0058acc004c0e4006264b300100182644c96600200304d826c4c96600260d20071330400012259800801401e264b30010018cc0040062600460d800705140bd051828c1460a28368c1a800906841390661bac001826c1350691833000a0c83062375400b1598009817800c4c96600200304c8992cc00400609b04d8992cc004c1a400e26608000244b3001002803c4c96600200319800800c4c008c1b000e0a2817a0a3051828c14506d183500120d082720cc375800304d826a0d23066001419060c46ea80162b30013370e9008000c56600260c46ea801600504b418d04b417c82f905f20be417c82f905f20be417c3300100189981d80c912cc00400a04913259800800c13209913259800800c136264b3001001827413a09d04e899912cc0040060a113259800800c56600260d800519800800c4c01cc1b00220a2818a0a2834a0a3051828c14506d1835000a0d0375c00260d20048350c19c0050651bac0018264131068183280120c6824a046305f37540070494185049824c1260928328c1880050601831001411e08f047823a0c63060001417860b86ea806208a82ca08a813208a8132264b3001001823411a08d13230033062004375a003046418860be00482ea264b3001001822411208913230033060004375a003044418060ba00482da08282ca083041820c10505d182d000a0b0305a00281fc0fe07f03f416c60b000282b0dd6800982b80140f1058182a800a0a6375a00260a8005039415460a40028280dd6000982880140da06c8290c13c00504d1bac001304e002819c0cd04f1826000a0943048375400d031411503141246eb0006061030413060920028238c12400a05d02e81740b904a1823800a08a304700281640b205902c4120608a0028218c104dd5000c0a903e40a904240aa05502a815208c30430014104607e6ea803a2b300130190078992cc00400605313259800800c566002608a005159800981398201baa0018992cc00400605713259800800c4c96600200302d8992cc00400605d02e8992cc004c12800e2b3001302c3045375400913259800800c0c2264b30010018992cc00400606513259800800c566002609c005159800981818249baa0038992cc00400606913259800800c4c9660020030368992cc00400606f037899912cc00400607313259800800c0ea0751332259800800c0f2264b300100181ec0f607b1332259800800c0fe264b300100182041020811332259800800c10a264b3001001821c10e08713259800982f801c566002608260b46ea8042264b3001001822c4c966002003046823411a26644b300100182444c966002003049824c126264b300130650038acc00404e09513259800800c12e09704b899912cc00400609b13259800800c13a09d04e8992cc004c1a800e2b3001015827c4c966002003050828414226644b300100182944c966002003053829c14e264b3001306f0038cc00408a26608c04c44b3001002817c4c96600200305782bc4c9660020030588992cc0040060b305982cc16626644b300100182dc4c966002003159800983b80146600200313007307700882e207882e20e882e41720b905c41e060ea0028398dd7000983a00120ea307200141c06eb00060af05741cc60e000483720a881720a88360dd6800c14d06f1836000a0d4375a00260d602d05041b060d202a833a09e8338dd6800c13906a1833800a0ca375a00260cc02904b419c60c802683120948310dd6800c1250651831000a0c0375a00260c2005046418860be00282e8c16cdd50084111058411105c1bad001821a0be305c00141686eb4004c16c00a08082e0c1640050571bad001305800281ea0b2305600141506eb0004c15400a07503a415860a60028288dd6000982900140de06e8298c14000504e182800140d606b03581aa0a2304e001413060946ea800e066823a066825a067033819c0cd04f1826000a094304c002818c0c6063031413460940028240c118dd500240bd04340bd0471bac00181740b904a1823800a08a304700281640b205902c4120608a0028218c104dd5000c0a903e40a904240aa05502a815208c30430014104607e6ea803a05081e103c101b80dc06e03681b8cc88c966002603460666ea8006260686466ec0c0e0004c0e0c0e4004dd6181b981a1baa0018a9981924818b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c030cc0e0dd480225eb812f5c11301233038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c37566068606a606a606a606a606a606a606a606a606a60626ea8048dd7181a18189baa00132323259800800c566002603260646ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0f000a2b3001301e3037375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc0040062b300130420028acc004c090c0f4dd5002c4c9660020030298992cc004006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c4c9660020030318992cc004006264b3001001819c4c96600200313259800800c0d6264b30010018992cc00400606f13259800800c4c9660020030398992cc004006264b300100181dc4c966002003159800982b00146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607060a26ea805e264b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc00400608f047823c11e26644b3001001824c4c96600200304a825412a0951332259800800c132264b30010018acc004c19c00a330010018acc004c124c188dd501344c96600200304e8992cc00400609f04f899912cc0040060a313259800800c56600260d80051330430032259800801466002007103882a20768992cc0040062b30013051306a375400313259800800c15a264b300100182bc15e26644b300100182cc4c96600200305a82d416a26644b300100182e44c96600200305d82ec176264b300130780038acc00401e0bd13259800800c17e0bf05f82fc4cc89660020030618992cc0040060c5062831418a264b3001307d00389808183e808c18d07a1bae00141f460f400283c0dd7000983c80420f4307700741d505e41d46eb40060ba83c0c1d40050731bad001307400282d20ea307200141c06eb0004c1c400a0af05741c860de0028368c1acdd5000c15506841560ab05582aa0e0306d00241ad05241a5052829414a0a48368c1a80050681bac0013069002827c13d06a1833800a0ca3063375404d04d418104d40d904d419104d826c13609a8340c1940050631bae0013064002419460c40028300dd7000983080120c4305f00141746eb8004c17800905f182e000a0b4375c00260b600482e0c1640050571bae0013058002416460ac00282a0c148dd500bc0f104f40f102640f102640f102640f102640f102640f102640f102640f102640f102640f102640f105340f207903c81e20ae3054001414860a800503a81d40ea07482a8c148005050182900140e207103881c20a63050001413860a000503681b40da06c8288c13800504c182700140d206903481a209e304c0014128609800503281940ca0648268c128005048182500140c2061030818209630480014118609000502e81740ba05c8248c118005044182300140b205902c816208e30440014108608800502a81540aa0548228c108005040181f1baa0058142076814207e81440a2051028410c608000281f0c10000a04d0268134099041181f000a078303e002812409204902440fc607800281d0c0e0dd5000c0890354089039408a045022811207a303a00140e06eb8004c0e400903a181b800a06a3033375400301d40c101d80ec07603a81c0c966002603260646ea8006264b30013019303337540031303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602260666ea8c040c0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c06600e6eb0c03cc0c8dd50099191980080098019bab301130343754602260686ea8008896600200314a115980099b8f375c607000206314a3133002002303900140c881b0c004004896600200314bd7044cc0d0c0c4c0d4004cc008008c0d80050331112cc004c060c0c4dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981d00146600200713259800980e800c4c9660020030078992cc0040062b3001303d0028992cc004c080006264b300100180544c966002003159800982000146600200300c805a01c805a07a805c02e01700b4104607c00281e0c0e8dd50014566002602800313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c046023132598009823801c04e0248220dd6800c0450471822000a084375a002608600500e4110608200281f8dd68009820001402d041181f000a078303a375400500940dc81b8c0e0dd5000c02103a4022011008804207c303b00140e4606e6ea800a2b300130110018acc004c0dcdd5001401e00c81c200c81a1034181a9baa001802a010802a06e802c01600b00540ec607000281b0c0e000a007003801c00d039181b000a0683032375400700140bc456600260100071323259800980498111baa302630270028a518a5040806eb4c094004c084dd500245901e203c1810181080098100022293454cc05924011856616c696461746f722072657475726e65642066616c7365001365640541" + : "592a0a010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480326e9520029b874803a44b30013009300e375400513232332259800980b801c0162c80a0dd6980a0009bae30140023014001300f37540051640349111111111114c00488c8cc00400400c896600200314c0103d87a80008992cc004c0100062601c6604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300b0018992cc004c08800626601a6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc034dd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998079bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd69810800980e9baa0038acc004c02000626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009805000c56600260386ea800e00516407516406880d0c068dd5001488c966002602c0031323259800981100140122c80f8dd71810000980e1baa0038acc004c02800626464b3001302200280245901f1bae3020001301c375400716406880d0c068dd500148966002602a60346ea800a2646464b30013022002899192cc004c0680062b3001302037540050068b20428acc004c03800626464b300130260028044590231bad302400130203754005159800980c800c56600260406ea800a00d16408516407880f101e180f1baa00130210038b203e3259800980f000c56600266e252004301d0018b44c030c07400501c45901f1baa30200013020001301b3754005164065223259800980b000c4c8c96600260440050048b203e375a604000260386ea800e2b3001300a0018acc004c070dd5001c00a2c80ea2c80d101a180d1baa002488888a6002600a00b2259800980d98101baa00289919192cc004c0a000a266010604e006264b3001301f0018992cc004c0a800626464b300130220018992cc004c0b400626601a60580020131640a860506ea800a2b3001301600189919194c004dd69817000cdd69817001cdd698170012444b3001303200480745902f0c0b8004c0b4004c0a0dd5001459026204c30263754002605200316409c604a6ea800a2b300130130018acc004c094dd500140162c81322c811902318119baa0018b204a302600130260013021375400516407d223259800980e000c4c966002604e00313300b30260010038b2048302237540071598009808000c4c966002604e00313259800980f18119baa00189919192cc004c0ac00a266014605400626601400200f1640a06052002605200260486ea80062c8110c0980062c8120c088dd5001c590202040302037540052259800980d98101baa0028991919192cc004c0a400a264b3001302030253754003132323322598009817001c4cc03cc0b402002a2c8158dd718158009bae302b002302b0013026375400316409060500091640986eb8c09c004c09c004c098004c084dd500145901f244446645300133223259800981118139baa001898141919bb0302c001302c302d0013758605660506ea80062c8130c8cc00400400c896600200314c0103d87a80008992cc004cdd7981480099ba548010cc0b0c050cc0b0dd480225eb812f5c11301a3302c374e66058605200266058605400297ae04bd7044cc00c00cc0b80090281816000a05437566050605260526052605260526052605260526052604a6ea8068dd7181418129baa002912cc004c084c098dd500144c8c8c8cc89660026060007133008302f0051330140020068b205a302d001375a605a004605a0026058002604e6ea800a2c812a44b30013021302637540051323232323298009bad302f0019bad302f0049bad302f003981780124444b30013034005899806181980489980c0008054590310c0bc004c0b8004c0b4004c0b0004c09cdd5001459025489660026042604c6ea800a2646464646465300137586060003375a606000b375a6060009375a6060007303000248888966002606c00d13300e303500b13301a001132332259800981c801c03e2c81b0dd7181b0009bae303600630360058b20661818000981780098170009816800981600098139baa0028b204a912cc004c084c098dd500144c8c8c8c8ca60026eb0c0bc0066eb4c0bc0126eb4c0bc00e605e00491112cc004c0d001626601860660122660300022646644b30013037003806c590341bae3034001375c606800a60680091640c4302f001302e001302d001302c001302737540051640949111119912cc004c098006264b300130310018992cc004c0a0c0b4dd5000c4c8c8c8cc8966002606e00713259800981718199baa00189919191919194c004c0f40066eb0c0f40166eb4c0f40126eb4c0f400e607a004911112cc004c10c01a26605c6eb0c10802c8966002005133030006225980080144cc0940144cc094024566002607a60846ea80462646464b3001304a00289919912cc004c10c00a264b3001304e00189981c9bac304d00122598008014012266046609e0042600260a0004826a2c8258c124dd5001c566002606e005132598009827000c4cc0e4dd61826800912cc00400a009133023304f002130013050002413516412c60926ea800e2b300130420028992cc004c1380062660726eb0c13400489660020050048998121827801098009828001209a8b209630493754007159800982200144c8c8c96600260a000513303b3758609e00644b30010028acc004c120c134dd5001c4c8c8cc896600260ac00700a8b20a6375a60a60026eb4c14c008c14c004c138dd5001c5904c44cc098c1440084c004c14800904f45904d1827000982700098249baa0038acc004c0d800a264b3001304e00189981c9bac304d0012259800801401226604a609e0042600260a0004826a2c8258c124dd5001c566002606a005132598009827000c4cc0e4dd61826800912cc00400a009133025304f002130013050002413516412c60926ea800e2b300130340028992cc004c1380062660726eb0c13400489660020050048998131827801098009828001209a8b209630493754007159800981900144c966002609c0031330393758609a00244b300100280244cc098c13c0084c004c14000904d45904b18249baa0038acc004cdc3a402000515980098249baa003800c5904a459047208e411c8239047208e411c823904718231baa0011330260021330360162259800801407e2646644b300130500018998151827800898021828002c5904d1bae304d001304e001375860980048250c12400e2c8238c120004c120004c10cdd5008c5904144c8c008c12000cdd698230012088899180118230019bad30440024109164100303d001303c001303b001303a0013039001303437540031640c8606c00b1640d06eb0c0d0004c0d0008c0d0004c0cc004c0b8dd5000c5902c1818000c5902e18161baa0078acc004c068006264b300130310018992cc004c0a0c0b4dd5000c4c8c8c966002606a00513259800981618189baa001899192cc004c0e0006264b3001302f30343754003132323232323298009bad303e0019bac303e0059bac303e0049bad303e0039bad303e00248888966002608800d13259800981d98201baa0018991919912cc004c12400e2646644b3001304c00389919912cc004c13c00e266054609c03026607403644b3001002811c4c8cc896600260a800313302e30530011300430540058b20a2375c60a200260a40026eb0c14000904e45904c1bad304c001375a609801860980171641246eb4c124004dd698248051824804c590461bad3046001375a608c004608c00260826ea80062c81f8c10c02e2c8208607c002607a002607800260760026074002606a6ea80062c8198c0dc00a2c81a8c0dc004c0c8dd5000c59030181a001c590321bac30330013033001302e37540031640b060600031640b860586ea801e2c815102a0acc004c090c0a4dd5002c66002605a60546ea8016444b30010028a6103d87a80008acc004c09c0062603a6605e606000497ae08cc00400e6062005337000029000a00640ac817245300132330010010032259800800c528456600266ebcc0c4c0b8dd5181898171baa301f302e375460620026030660606ea400d2f5c114a3133002002303200140b0817a94294502a488c8cc00400400c896600200314bd7044cc896600266ebcc0ccc0c0dd5181998181baa3021303037540046034660646ea40152f5c113303200233004004001899802002000a05c3031001303200140bd23019302a3754605c646600200200444b30010018a5eb84103d87a80008101800044c8cc89660033001301e302f375460660074a14a2817226606530014a14c103d87a8000a60103d879800040b8660646e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0d400400e2946266004004606c002818103344cc0ca600294298103d87a8000a60103d879800040b8660646e9c0092f5c11330329800a51a60103d87a8000a60103d879800040b8660646e9ccc0c8dd400080125eb8102e205c3758606260640026eb4c0c4008cc008008c0c400502e48888ca6002003005802400d00111112cc00400e2b30010028800c590334660020093036003981b00166002606a007375a606a005001401480210334888ca6002003004801a00222259800801456600200314a314a0818a2b30010018a508acc004cc010c0cc008c0cc00633001003981a0014c0d00050034528205c40c4818a4444646600200200a44b300100189981919bb0375200a6ea00112f5bded8c113298009bae30300019bad3031001981a8012444b300133720012007133036337606ea4024dd4004002c56600266e3c02400e33001009804400a46606e66ec0dd48051ba80010028800a00e89981b19bb037520066ea0008cc01801800503220641819800a06291111919800800802912cc00400626606466ec0dd48029ba60044bd6f7b63044ca60026eb8c0c00066eacc0c4006606a0049112cc004cdc8004801c4cc0d8cdd81ba9009374c01000b15980099b8f0090038cc00402601100291981b99bb037520146e9800400a2002803a26606c66ec0dd48019ba60023300600600140c881906066002818a4464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e00510018032060899802802981b0022060375c605e0026eacc0c0004c0c80050300a5eb7bdb1824b30010018a518a5040b112222232598009815000c00a260060028170cdc0002001c8966002604c60566ea800a26464b30013032002801c5902f1bad3030001302c37540051640a92302e302f302f302f0019b814800244b30010018a40011337009001198010011818000a05a912cc004c098c0acdd500144c8c8c8ca60026066003303300398198012444b3001303700489980a181b0038998078010992cc004c0b8006264653001375a6072003303a0019bad3039002488966002607a005132323322598009820801c04a2c81f0dd7181f0009bae303e002303e001375860780051640e83039001303437540051598009811000c4c8ca60026eb4c0e40066074003375a60720049112cc004c0f400a264646644b3001304100380945903e1bae303e001375c607c004607c0026eb0c0f000a2c81d0607200260686ea800a2b3001302d00189919194c004dd6981d000cc0ec0066eb4c0e800e6eb4c0e8009222259800981f801c4c8c8cc896600260860070148b2080375c60800026eb8c100008c100004dd6181f001c5903c0c0e8004c0e4004c0d0dd50014566002605e003132332259800981d800c4c8c8cc8966002607e0070108b2078375c60780026eb8c0f0008c0f0004dd6181d000c590381bad30380013039001303437540051598009810800c4c8c8cc8966002607800700d8b2072375a60720026eb4c0e4008c0e4004c0d0dd500145660026040003132323298009bad303a0019bad303a0039bad303a002488966002607c00900f8b2076181d000981c800981a1baa0028acc004c07c00626464b3001303a002805c590371bad303800130343754005159800980e800c4c8c966002607400500b8b206e375a607000260686ea800a2c8191032206440c88191032206440c860646ea80062c81a060660026064002606200260586ea800a2c81524466026004466ebcc0c0c0b4dd50009ba70029119b83337040046eb4c078c0b0dd50009bad301d302c37540032259800800c5268992cc00400629344c96600266e40dd7181698188019bae302d00189980200219818000981900145902c1818000a05c303000140b522232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6068003375a606a0033300300330390024024606e00281a8dd598190019bae302f001330030033034002303200140c12232330010010032259800800c52f5c1133030374e60066062002660040046064002817a44646600200200644b30010018a508acc004cdd798188009ba70038a518998010011819000a05840bd222329800800c01200680088896600200510018cc00400e6068005330043033002001400c818a4605c605e605e605e605e003371090004dc7a45045553447200488888888888888888888888888a60026090608a6ea806e6090608a6ea8c0d8c114dd500dcc06806a444b3001301a0028cc00400e00548002444b30013004003899b80001375a607860966ea800e2c82490194590464888c8cc88cc008008004896600200300389919912cc004cdc8803801456600266e3c01c00a20030064131133005005305200441306eb8c12c004dd698260009827000a0983301600400314800244653001001801c0090011112cc00400a200313298008024c13c00f30010029bae304a0019bab304b00191111192cc004c07400600513003001413c6465300100180340150011112cc00400a200313298008024c16400f30010029bae30540019bad3055001802a048401060ae00482a9406d0192008304d002412d232330010010022259800800c52f5bded8c11323304b3376060900026e98c8cc004004dd59825001112cc004006297adef6c608991982719bb0304b001375060286eb4c130004cc00c00cc140008c13800504c1980180198268011825800a0929806006488c9660026082608e6ea80062646601e0022b30013375e602460926ea800cc130c124dd5002456600266ebcc0e8c124dd5000982618249baa0038800c59047459047182598241baa0018b208c3039304737546070608e6ea800a60100109111111111194c00488c8cc004004008896600200314bd7044cc158c966002609e60a86ea8006260b060aa6ea80062c8298cc014010dd6982b80099801001182c000a0aa9111192cc004c13cc150dd5000c4c96600266ebcc164c158dd5182c982b1baa3047305637540026080660b06ea40152f5c115980098224c004dd59823982b1baa304730563754003005a45087472656173757279004035132598009828182b1baa001899198110008992cc004c14cc160dd5000c4c96600266ebcc174c168dd5182e982d1baa00130443305c375201297ae08acc004c12260026eacc12cc168dd5000c02691108747265617375727900404513259800982a182d1baa001899198130008acc004cdd79812982e1baa0034c0103d87a800089982f0029982f0009982f1ba6330123756609a60b86ea800cc044dd59826982e1baa304d305c375400e97ae08b20b4305e305b3754003164164609860b46ea80062c82c22c82c0c170c164dd5000c59057198049bac304a3058375401000a60b460ae6ea80062c82a8c120c158dd51823982b1baa0018b20a88b20a830583055375400316414c6600a6eb0c15cc150dd50020014888888896600266ebcc16cc160dd5003982d982c1baa0068acc004cdd79825182c1baa00730493058375400d13259800cc0040069464444b3001001899b894800000a294105b20368992cc004cdc4802000c56600266e2400400e200316416116416130010019bae305c0049bae305c305d004404116415c6601c6eacc124c160dd50039806cc004dd7182d802cdd7182d982e002cc08001122259800982a800c402e3300100b801cc8c8008c038004cc174cdd81ba9002375000297adef6c6091111192cc004c0b400600513003001417c653001004804401e444453001005801c0120050014018818140ad02920b24590564590564c13cdd500524444b3001304e0018cc00488c8cdc199b803370066e0800cdd69824982b9baa00200148004004dd69823982b1baa001998021bac30573054375401c6eb0c114c150dd5007cdd6182b982a1baa00f9bad30463054375401f375a603a60a86ea803e608a60a86ea80c522222259800998171bac305d305a375409e6eb8c08cc168dd51825982d1baa001899912cc004ca600200500891192cc004c168c17cdd5000c4c8c8ca60026605000e0033758604260c66ea80166eb4c19800e6eb4c198009222259800983098331baa0048acc004cdc4998099bad30583067375401260d460ce6ea801260026eacc160c19cdd5182c18339baa00a9bae306a0039bae306a306b003407915980099b87002375a60b060ce6ea80262b30013370e0026eb4c164c19cdd5004c4cdd79ba700530253067375401314a0832a2941065452820ca8b20ca1bac3065306600130650013060375400314a082f0c144c17cdd519809001000a05a375860be60b86ea8c138c170dd5001c4c8c96600266e1c00660026eb0c140c178dd5029ccc180c13cc178dd51827982f1baa005330604c01054455534472004bd704dd61830982f1baa3050305e375400a911194c00400600f00d8062002222259800801c52000899912cc004c184c198dd5000c4c96600260c460ce6ea8006266e0260026eacc164c1a0dd5182c98341baa306b006983598341baa002983598341baa0039bac30263068375400733014375a60b260d06ea800cc1acc1a0dd5000c0266eb4c168c1a0dd5001cdd6982c98341baa0034059300100798360034c1b001660d8008803a2c8330cc0b001cdd6181298339baa0028b20ca306800233016007375a60d0002833113232332259800cc00400a9464444b30010018acc004cdc7802245008a51899813002998341ba900433068375200697ae0419114a08321024456600266e1ccdc09bad30653062375460ca0066eb4c194c188dd51832802002c4c96600266e24018006260400031641853001375860ca60c46ea8c150c188dd5004d20009119912cc006600260c00034a14a283222b3001337126605400200930010069bae30690029bae3069306a0024075133700006003164191100341906eb0c19cc190dd5001194c00404290004896600266ebcc094c19cdd50011ba7003899b80001375a60b060ce6ea800a200283290241bac306730643754004810a2c83022c8300dd598319832000998109bac30633060375460a460c06ea801c8dd6183218309baa00130630019800829cdd71830982f1baa304f305e375400b007803201a8b20b859800982b9808800c520008acc004c184006264b3001301a375c60ba0031375a60bc00316417060c000316417882d8cc0a4dd5980d182e1baa051375c609a60b86ea8c134c170dd5001c5905a4c004016009259800980c1bad304c305b375400313018375a609a60b66ea8006294105920243302d375860ba60b46ea813cdd71826182d1baa304b305a3754003164160899912cc004c11000e3300133006375860b260ac6ea8040dd61823982b1baa0119bac305930563754023375a609060ac6ea80466eb4c07cc158dd5008cc11cc158dd5019a44444b30013302f375860bc60b66ea8140dd71812182d9baa304c305b375400319800cc00401600925980099b88375a609a60b86ea800520008980c9bad304e305c375400314a082d10134cc0b8dd6182f182d9baa050375c609a60b66ea8c130c16cdd5000ccc174c130c16cdd51826182d9baa0013305d4c1054455534472004bd702444b3001980080140224464b3001304f3060375400313233225980099b8900198009bab30553064375460aa60c86ea801a6eb8c19c01e6eb8c19cc1a001d01b456600266e1c004c0b0dd6982a98321baa0058acc004cdc39bad3067002375a60ac60c86ea8016266ebcc19cc1a0008c088c190dd5002c52820c48a50418914a08310c198004dd6983280098309baa0018a50417c60a460c06ea8cc04c00800502e4660026644653001001802c02e014800888896600200714bd7044cc896600260c060ca6ea8006264b3001306130663754003133223322330020020012259800800c4cc1b4dd3998369ba70043306d375000697ae04bd7044ca60026eb0c1bc0066eb4c1bcc1c000660e00049112cc004cdd79ba7003374e011133071374e660e26e9c00ccc1c4dd419b800020074bd70000c4cc1c4dd3998389ba700333071375000497ae03300600600141b4375860dc00283626002013306d0089836803cc1b40190091bac3025306737540073001375660b060ce6ea8c160c19cdd518350034c1a8c19cdd50014c1a8c19cdd5001c02a60246eb4c160c19cdd5001cdd6181298339baa0039bad3059306737540073302b3012375a60b060ce6ea800cc1a8c19cdd5000a02a8b20ca3302b0073758604860cc6ea800a2c8320c19c008cc054018dd69833800a0ca375860a060bc6ea814cdd61830982f1baa3050305e37540093302b3756603860bc6ea814cdd71827982f1baa304f305e37540099800829cdd71830982f1baa304f305e3754009006802a01a9980f9bac3061305e375460a060bc6ea80108dd61831182f9baa00148888c8cc89660033001002a5191112cc0040062b30013371e0089101008a51899814804198359ba90043306b375200697ae0419d14a08339027456600266e1ccdc09bad30683065375460d00066eb4c1a0c194dd51834002800c56600266e1c006600201f480024466e00004dd6982c18339baa0024091159800998089bac30683065375460ae60ca6ea802c8c8cdc3cc0040126eb8c1a80066eb8c1a8c1ac00501e1817991919800800805912cc0040062900044c96600266ebcc1b8004dd380244dd698371837800c4cc00c00cc1bc0090691bac306d00141ac6eb0c1a8c19cdd50011bac30693066375400314a316418d16418d16418d16418c6eacc198c19c0056600260ba602e0091480022b300130670048992cc004c080dd71831800c4dd69832000c59062183300245906420c2306600245905c22c82c91598009820801c660026600c6eb0c164c158dd50081bac304730563754023375860b260ac6ea80466eb4c120c158dd5008cdd6980f982b1baa0119823982b1baa033488889660026605e6eb0c178c16cdd50281bae3024305b3754609860b66ea80062b30019800998171bac305e305b37540a06eb8c134c16cdd51826182d9baa001802c88c96600260ae60ba6ea80062646604a0022b30013375e60a260be6ea800cc188c17cdd5002456600266ebcc140c17cdd50009831182f9baa0038992cc004c12cc17cdd5000c4cdc39bad3063306037540026eb4c144c180dd5002452820bc3051305f375400316417516417460c260bc6ea80062c82e0c13cc174dd51827182e9baa00240ad1598009991194c0040060110074004444b30010028acc00400629462941061456600200314a115980099912cc004c170c184dd5000c4c96600266ebcc198c18cdd5000983318319baa30663063375400715980099baf30553063375400260a860c66ea8c198c18cdd5001c4cdc3cc004dd5982a18319baa0019bae30660079bae30540074068601c6eb4c150c18cdd5001c52820c28a50418460ca60c46ea80062c8300c18c008cc044014dd69831800c6600200730640029832000a0068a50417883090611bac304d305b37540a0660ba609860b66ea8c130c16cdd50009982ea601054455534472004bd7044c8ca60026eacc180c184006660546eacc06cc174dd50291bae304e305d3754609c60ba6ea800eb3001302f0068cc00401e00d48002444b3001301d375a60a260c06ea800e266e00004dd6982898301baa0038b20bc40b916416c9112cc004cdc3acc004c168c05000a29000456600260c800513259800980e9bae306000189bad30610018b20be30630028b20c2417800315980099b87337026eb4c18cc180dd518318021bad30633060375460c600a00313300c375860c660c06ea8c148c180dd5003119182e4c0040166eb8c1940066eb8c194c1980050191bac306430613754003164179164178306000198008284dd7182f182d9baa304c305b375400300380120148b20b28b20b28b20b24566002607e00719800998031bac3059305637540206eb0c11cc158dd5008cdd69824182b1baa0119bad301f3056375402330473056375406691112cc004cc0b8dd6182e982d1baa04f375c604660b46ea8c12cc168dd5000c56600266453001002803488c96600260b060bc6ea80062646604c0022b30013375e60a460c06ea800cc18cc180dd5002456600266ebcc144c180dd5000983198301baa0038992cc004c128c180dd5000c4c96600266e2400660026eacc14cc188dd5182998311baa0069bae30650079bae30653066007406513370e00260546eb4c14cc188dd5002c52820c0375a60c860c26ea8006294105f182918301baa0018b20bc8b20bc3062305f375400316417460a060bc6ea8c13cc178dd500120583302d375860ba60b46ea813cdd71826182d1baa304b305a3754002660b8609660b46ea8c12cc168dd50009982e261054455534472004bd7044c8ca60026eacc17cc180006660526eacc068c170dd50289bae304d305c3754609a60b86ea800f3001006a4001225980099b88375a609e60bc6ea80092000899b80001375a609e60bc6ea800a2c82e101b2444b30013370eb3001305930130028a4001159800983180144c96600260386eb8c17c00626eb4c1800062c82f0c18800a2c830105d000c56600266e1ccdc09bad3062305f375460c40086eb4c188c17cdd51831002800c4cc02cdd61831182f9baa3051305f375400c46460b730010059bae30640019bae3064306500140606eb0c18cc180dd5000c5905d45905d0c17c006600209f375c60ba60b46ea8c12cc168dd5000c00e004804a2c82c22c82c114a082a105420a82232330010010032259800800c528c566002600660b6003133002002305c0018a50415882c896600266e2000520008980e800c400505320a4112cc004cdc4000a400114c0103d87a8000899805001000a09e22c8140c0a4dd50028c8c8c9660026040604a6ea80062646644b3001302d0018992cc004c090c0a4dd5000c4c8c8c8cc8966002606600713259800981518179baa0018991919191919191919194c004c0f4006607a013303d008981e803cc0f401a607a00b303d004981e801cc0f400922222222259800982380544cc090c11804c4cc0900204cc09001c4cc0900184cc0900144cc0900104cc09000c4cc0900084cc0900044cc090024566002607a60846ea8056264646464653001375c6096003304c0019bae304b0059bae304b0049bae304b0039bae304b00248888896600260a400b1330333051005159800982418269baa02189919192cc004c15400a2660806eb0c15000c8966002005133033003102e8992cc004c138c14cdd5000c4c8c8c8cc896600260ba007132323322598009830801c4c02cc1840322c82f0dd7182f0009bae305e002305e001375860b800b1641686eb4c168004dd6982d001182d000982c800982a1baa0018b20a43056002415116414860a600260a6002609c6ea80862c82622c8278609600260940026092002609000260866ea80562c820a2c8220607a00260780026076002607400260720026070002606e002606c002606a00260606ea80062c8170c0c80162c8180c0c0004c0c0008c0c0004c0bc004c0a8dd5000c590281816000c5902a1bae302a001302b0013026375400316409064b300130203025375400313259800981018131baa0018981518139baa0018b204a301830263754602e604c6ea8c0a4c098dd5000c59024198061bac3016302537540344646600200260066eacc060c09cdd5180c18139baa0022259800800c528456600266e3cdd71815800812c528c4cc008008c0b0005026205230010012259800800c52f5c113302730243028001330020023029001409844b3001301f30243754005132323259800981600144cc020c0ac00c4c966002604600315980098149baa002802c5902a4566002602e00313232598009817801401e2c8160dd7181680098149baa0028acc004c08800626464b3001302f002803c5902c181680098149baa0028b204e409c8138c09cdd5000c590291815000981500098129baa0028b204611598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d1365640081", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolMintProtocolMintElse { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594c34010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a660069201d46578706563740a202020206173736574732e726564756365280a20202020202076616c75655f64656c74612c0a202020202020547275652c0a202020202020666e28706f6c6963792c206e616d652c205f7174792c2061636329207b0a202020202020202061636320262620280a20202020202020202020706f6c696379203d3d206164615f706f6c6963795f6964207c7c206c6973742e68617328616c6c6f7765645f6173736574732c2028706f6c6963792c206e616d6529290a2020202020202020290a2020202020207d2c0a202020202900168a99801a495365787065637420536f6d6528726129203d0a202020202020202066696e645f726573657276655f617373657428726573657276655f6173736574732c20726571756573742e726573657276655f61737365742900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206d696e745f616d6f756e7400168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a492e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e64696365732900168a99801a4932657870656374206f75747075745f646174756d3a205472656173757279446174756d5631203d206f75747075745f6461746100168a99801a493065787065637420696e7075745f646174756d3a205472656173757279446174756d5631203d20696e7075745f6461746100168a99801a491d657870656374206e616d65203d3d20636f6e7374616e74732e7573647200168a99801a4928657870656374205b50616972286e616d652c20616d6f756e74295d203d206d696e745f706169727300168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491a6578706563742076616c69646174696f6e28726571756573742900168a99801a4942657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e7374616b696e675f7661756c742900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f646174610016488888888888888888896600330013018375403d370e90034dc3a4001370e90022444464653001301d3754003302100698108012444b300130060038cc004c090c084dd500248c094c098c0980064604a604c003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480326e9520024888888888a600244646600200200644b30010018a60103d87a80008992cc004c010006260186606400297ae0899801801981a001205a303200140c1222329800800c0120068008888c966002603000313259800800c01a264b3001001803c01e00f0078992cc004c0e400e00b00840d86eb8005039181b000a068303237540071598009806000c4c9660020030068992cc00400600f0078992cc004c0e400e26602000244b3001002803c4c966002003198008054006260046078006805201700b805c02d03d181d0012070804206c3758003007803a072303600140d060646ea800e2b300130170018992cc00400600d13259800800c01e00f13259800981c801c4cc04000489660020050078992cc0040063300100a800c4c008c0f000d00a402e01700b805a07a303a00240e100840d86eb000600f00740e4606c00281a0c0c8dd5001c566002603200313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b3001303c003899809800912cc00400a01513259800800c6600201b00189801181f801a01a807403a01d00e4100607a00481da01681c8dd6000c02a01481e0c0e40050371bad0013038002803a072303600140d060646ea800e2b3001300b0018992cc00400600d13259800800c01e00f0078992cc004c0e400e00b00840d86eb400600e81c8c0d800503418191baa0038acc004c028006264b300100180344c966002003007803c01e264b30013039003802c0210361bad001803a072303600140d060646ea800e2b300130090018992cc00400600d13259800800c01e00f007803c4c9660026072007005804206c375c00281c8c0d800503418191baa003802a05e40bc817902f205e40bc8178c0c0dd50014888c966002602a00313259800800c00e264b300100180240120090048992cc004c0d800e00d00540cc6eb80050361819800a062302f37540091598009804800c566002605e6ea801200700240c100240b08160c0b4dd5001c888c966002602a00313259800800c00e264b300100180240120090048992cc004c0d800e00d00540cc6eb80050361819800a062302f37540091598009804800c4c9660020030038992cc0040060090048024012264b3001303600380340150331bae00140d860660028188c0bcdd5002400902c2058302d375400691111919192cc0040063300122259800980d981a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b300130200018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c07c006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005402900540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e00281926e1d200e9112cc004c06cc0d0dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800981d000c56600266e252004303900180344c966002607e009132598009811000c56600260786ea801a01300840f5159800980b000c4c9660020030098992cc00400601500a80544c966002608600700c805a080375a00300a410c608000281f0c0f0dd500345660026042003159800981e1baa006804c02103d4021039207240e460746ea801600e81e0c050c0e4005037401903b1baa001802c01600b00540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c922259800980d981a1baa0038992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d00680344c966002607e007008803a078375a00300640fc607800281d0dd7000981d8012078303900140dc606a6ea800e002819244464b3001301c0018992cc00400600713259800800c0120090048992cc004c0f400e00d00540e86eb400600881e8c0e8005038181b1baa0048acc004c0400062b300130363754009003801206e801206640cc60686ea800e444b3001301b3034375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc00400600f007803c01e264b300130400038acc004c088c0ecdd500344c9660020030098992cc00400601500a805402a26644b300100180644c96600200300d806c03601b132598009823001c6600201500f807202a8072086375c0028230c10c0050411bae0013042002410c608000281f0c0f0dd50034021039402103d1bae0014100607a00281d8c0f400a00b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c0050324c0c4dd5000a44444453001222598009811181d9baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc0040062b300130470028cc00401a33001001804c02100e40210114021044402201100880420903045001410c6eb4004c11000a00a8228c1080050401821001400e007003801a086304000140f860786ea800e00281ca444b30013022303b375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d806c4c966002609a0071980080646600200900f8072028807202e8072094375a00300d413460940028240c12800a01700b805c02d04b1824000a08c375a002608e0050084120608a0028218dd6800982200140150451821000a0803042002801c00e007003410c608000281f0c0f0dd5001c005039488966002604460766ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b3001001805c02e0171332259800800c036264b30010018992cc00400601f13259800800c042021132598009828001c6600201f1980080245660020030118992cc004006025012809404a26644b300100180a44c96600200301580ac05602b13259800982a801c05e02c8290dd7000a0aa305200141406eb8004c1440090521827800a09a808a02e808a034808a09a375800301080820a0304d001412c609a00500e807403a01c8270c12c0050491bad001304a002805a096304800141186eb4004c11c00a0108240c1140050431bad0013044002802a08a304200141006084005003801c00e0068218c10000503e181e1baa003800a0729112cc004c088c0ecdd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c036264b3001304d0038cc004032330010048acc00400601d13259800800c03e01f00f807c4cc89660020030118992cc004006025012809404a264b3001305200380a404d04f1bae0014148609e0028268dd70009827001209e304c001412900e405100e405d00e41286eb000601b00d413460940028240c12800a01700b805c02d04b1824000a08c375a002608e0050084120608a0028218dd6800982200140150451821000a0803042002801c00e007003410c608000281f0c0f0dd5001c0050394888c966002604600313259800800c00e264b30010018acc004c10c00a33001001802c01100a401104040120090048022088304100140fc607a6ea80122b300130170018992cc00400600713259800800c56600260860051598009812981f1baa0018992cc00400600b13259800800c4c9660020030078992cc0040062b300130470028cc00400e33001001804c02100f402100f4021044402201100880420903045001410c608a005006803401a00c8230c10c005041181f9baa0018022078802208080240120090044110608200281f8c0f4dd5002400903a2074303b3754007159800980f981c1baa0088cc004c0f0c0e4dd500448896600200514c103d87a80008acc004c088006260306607c607e00497ae08cc00400e6080005337000029000a00640e481ea45300132330010010032259800800c528456600266ebcc100c0f4dd51820181e9baa301a303d3754608000260266607e6ea400d2f5c114a3133002002304100140e881f2942945038488c8cc00400400c896600200314bd7044cc896600266ebcc108c0fcdd51821181f9baa301c303f3754004602a660826ea40152f5c113304100233004004001899802002000a0783040001304100140f92301430393754607a646600200200444b30010018a5eb84103d87a80008101800044c8cc896600330013019303e375460840074a14a281e226608330014a14c103d87a8000a60103d879800040f0660826e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c11000400e2946266004004608a00281f104244cc106600294298103d87a8000a60103d879800040f0660826e9c0092f5c11330419800a51a60103d87a8000a60103d879800040f0660826e9ccc104dd400080125eb8103c20783758608060820026eb4c100008cc008008c10000503d48888ca6002003005802400d00111112cc00400e2b30010028800c54cc0fd24112657870656374205b5d203d206c6973745f6200164109159800801454cc0fd2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc004012608a0073045002cc004c11000e6eb4c11000a002802900420844109222329800800c012006800888966002005159800800c528c52820808acc00400629422b300133004304200230420018cc00400e60860053043001400d14a081e1040208091111919800800802912cc00400626608266ec0dd48029ba80044bd6f7b63044ca60026eb8c0fc0066eb4c10000660880049112cc004cdc8004801c4cc114cdd81ba9009375001000b15980099b8f0090038cc00402601100291982319bb037520146ea000400a2002803a26608a66ec0dd48019ba80023300600600141008200608400282024444646600200200a44b300100189982099bb0375200a6e980112f5bded8c113298009bae303f0019bab304000198220012444b300133720012007133045337606ea4024dd3004002c56600266e3c02400e33001009804400a46608c66ec0dd48051ba60010028800a00e89982299bb037520066e98008cc01801800504020801821000a08091191919800800802112cc00400600713233225980099b910070028acc004cdc78038014400600c81f226600a00a608a00881f0dd7181f0009bab303f001304100140fc297adef6c6092cc0040062946294103b4488888c966002604a00300289801800a07833700008007222598009811181d9baa0038992cc00400600513259800800c00e0070038992cc004c10c00e00b00441006eb40060068218c10000503e181e1baa003800a0729181e981f181f181f000cdc0a40012259800800c52000899b8048008cc008008c0fc00503c488966002604460766ea800e264b300100180144c96600200313259800800c012264b30010018992cc00400600d13259800800c4c9660020030088992cc004c12000a330010078cc004016264b3001302b0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009829001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800982b801c06603082a0dd7000a0ae305400141486eb8004c14c0090541828800a09e809a09e375800301280920a4304f00141346eb4004c13800a01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301f0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025132598009829001c5660020030138992cc00400602901480a405226644b300100180b44c96600200301780bc05e02f13259800982b801c06603082a0dd7000a0ae305400141486eb8004c14c0090541828800a09e809a09e375800301280920a4304f00141346eb4004c13800a01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001302a0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a025012899912cc00400602913259800800c05602b13259800982a801c5660020030168992cc00400602f01780bc05e26644b300100180cc4c96600200301a80d406a03513259800982d001c07203682b8dd7000a0b4305700141546eb8004c158009057182a000a0a480b20a4375800301580aa0aa305200141406eb4004c14400a0248290c13c00504d1bad001304e002807a09e304c00141286eb4004c12c00a0188260c12400504718229baa0048acc004c0b0006264b3001001805c4c96600200300c806403226644b300100180744c96600200300f807c4c966002609e007159800800c042264b3001001808c046023011899912cc00400602713259800800c05202901480a44c96600260a800701680aa0a2375c00282a0c14400504f1bae00130500024144609c00282620208260dd6000c03e01e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301e0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f8992cc004c13c00e02301041306eb400601e8278c13000504a1bad001304b00280620983049001411c608a6ea80122b3001301d0018992cc00400601713259800800c03201900c899912cc00400601d13259800800c03e01f00f899912cc00400602313259800800c04a0250128992cc004c14800e029013413c6eb40060248290c13c00504d1bad001304e002807a09e304c00141286eb4004c12c00a0188260c12400504718229baa0048acc004c070006264b3001001805c4c96600200300c8064032264b3001304c00380740350491bad00180620983049001411c608a6ea80122b300130120018992cc00400601713259800800c03201900c8992cc004c13000e01d00d41246eb40060188260c12400504718229baa00480520844108821104220844108821104218219baa003804a024804a030804a08a30460014110608c005007803c01e00e8238c1100050421822001401600b005802a08a304200141006084005003801c00e0068218c10000503e181e1baa003800a0729119808001119baf303f303c37540026e9c00a4466e0ccdc10011bad3019303b37540026eb4c060c0ecdd5000c8966002003149a264b30010018a4d1325980099b90375c607860800066eb8c0f00062660080086607e0026082005153303b4901326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f72646572001640e8607e00281e8c0fc00503c4888c8cc004004010896600200310048991991199119801001000912cc00400620071329800802cdd71821800cdd69822000ccc00c00cc1200090091823000a088375660820066eb8c0f8004cc00c00cc10c008c10400503f488c8cc00400400c896600200314bd7044cc0fcdd398019820000998010011820800a07c911919800800801912cc00400629422b30013375e60800026e9c00e2946266004004608200281d103e4888ca6002003004801a00222259800801440063300100398218014cc010c10800800500320809181e981f181f181f181f000cdc424001371e9101045553447200488888888888888888888888888a600260ae60a86ea806e60ae60a86ea8c0c4c150dd500dcc06806a444b3001301a0028cc00400e00548002444b30013004003899b80001375a606e60b46ea800e08c82b901941310544888c8cc88cc008008004896600200300389919912cc004cdc8803801456600266e3c01c00a20030064169133005005306100441686eb8c168004dd6982d800982e800a0b63301600400314800244653001001801c0090011112cc00400a200313298008024c17800f30010029bae30590019bab305a00191111192cc004c0740060051300300141746465300100180340150011112cc00400a200313298008024c1a000f30010029bae30630019bad3064001802a048401060cc0048321406d0192008305c0024169232330010010022259800800c52f5bded8c11323305a3376060ae0026e98c8cc004004dd5982c801112cc004006297adef6c608991982e99bb0305a001375060286eb4c16c004cc00c00cc17c008c17400505b19801801982e001182d000a0b09806006488c966002607860ac6ea8006264b30010018cc0040062b30013375e602460b06ea800cc16cc160dd5002456600266ebcc0d4c160dd5000982d982c1baa0038800c54cc15924013865787065637420646174756d2e64657374696e6174696f6e203d3d206d61746368696e675f726571756573742e64657374696e6174696f6e00164155153305649138657870656374206d61746368696e675f726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500164155046403d046823411a08c82e8c168c15cdd5000c111054181a182b1baa303330563754005300800848888888888ca600244646600200200444b30010018a5eb822660ca64b3001304a30633754003130673064375400315330624913965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641846600a0086eb4c198004cc008008c19c00506448888c966002609460c66ea8006264b30013375e60d060ca6ea8c1a0c194dd5182118329baa001303b33067375200a97ae08acc004c0fe60026eacc108c194dd5182118329baa001802d22108747265617375727900403513259800982598329baa0018992cc004006330010018992cc004c138c19cdd5000c4c96600266ebcc1b0c1a4dd5183618349baa001303f3306b375201297ae08acc004c10e60026eacc118c1a4dd5000c026910108747265617375727900404513259800982798349baa0018992cc004006330010018acc004cdd7981298359baa0034c103d87a800089983680299836800998369ba6330123756609060d66ea800cc044dd5982418359baa3048306b375400e97ae08a99834a48126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e65001641a105f409905f82fc17e0be8380c1b4c1a8dd5000c54cc1a124012e65787065637420496e6c696e65446174756d286f75747075745f6461746129203d206f75747075742e646174756d0016419c608e60d26ea80062a660ce920149657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d203100164199153306749143657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016419860d660d06ea80062a660cc92013e65787065637420536f6d65286f757470757429203d206c6973742e61742874782e6f7574707574732c2074726561737572795f6f75747075745f6964782900164194660126eb0c114c19cdd5004002c169022416a0b505a82d20d8306930663754003153306449013365787065637420496e6c696e65446174756d28696e7075745f6461746129203d20696e7075742e6f75747075742e646174756d0016418c608660ca6ea8c108c194dd5000c54cc18d2401536578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2074726561737572795f7363726970742c202274726561737572792229203d3d20310016418915330634914965787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d205363726970742874726561737572795f736372697074290016418860ce60c86ea80062a660c492013b65787065637420536f6d6528696e70757429203d206c6973742e61742874782e696e707574732c2074726561737572795f696e7075745f69647829001641846600a6eb0c198c18cdd50020014888888896600266ebcc1a8c19cdd5003983518339baa0068acc004cdd7982298339baa00730443067375400d13259800cc0040069464444b3001001899b894800000a294106920368992cc004cdc4802000c56600266e2400400e20031533067491216578706563742064656c697665726564203c3d206d61785f64656c697665726564001641991533067491216578706563742064656c697665726564203e3d206d696e5f64656c6976657265640016419930010019bae306b0049bae306b306c00440411533066490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641946601c6eacc110c19cdd50039806cc004dd71835002cdd718351835802cc080011222598009828000c402e3300100b801cc8c8008c038004cc1b0cdd81ba9002375000297adef6c6091111192cc004c0b40060051300300141b4653001004804401e444453001005801c0120050014018818140ad02920ce454cc19524128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d0016419115330654912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e6164647265737300164191305e375401491112cc004c1240063300122323370666e00cdc019b82003375a608860cc6ea80080052001001375a608460ca6ea8006660086eb0c198c18cdd50071bac30403063375401f375860cc60c66ea803e6eb4c104c18cdd5007cdd6980e98319baa00f982018319baa0334888889660026605c6eb0c1b0c1a4dd50251bae302330693754608c60d26ea800626644b300132980080140224464b30013055306e37540031323232980099814003800cdd6181098391baa0059bad30750039bad3075002488896600260b860ea6ea80122b300133712660266eb4c14cc1d8dd5004983c983b1baa00498009bab30533076375460a660ec6ea802a6eb8c1e400e6eb8c1e4c1e800d01e456600266e1c008dd69829983b1baa0098acc004cdc38009bad30543076375401313375e6e9c014c094c1d8dd5004c52820e68a5041cd14a0839a2a660e892014365787065637420536f6d6528726129203d2066696e645f726573657276655f617373657428726573657276655f6173736574732c20726573657276655f617373657429001641cc375860e860ea00260e800260de6ea8006294106c182618371baa3301200200140b46eb0c1b8c1acdd5182498359baa003899192cc004cdc3800cc004dd6182598369baa04e99837982518369baa304a306d375400a660de981054455534472004bd704dd6183818369baa304b306d375400a911194c00400600f00d8062002222259800801c52000899912cc0040120dd1332259800802c1c626644b300130603079375400313322598009831183d9baa001899b8098009bab3059307c375460b260f86ea8022005307f307c375400d3758605660f86ea801a660326eb4c164c1f0dd5003183f983e1baa0018074dd6982d183e1baa0069bad3059307c375400c80da6002019007802c01100c41d9079183e983d1baa0013303000b3758605260f46ea80120e083b8c1f0014cc06802cdd6983d802a0f23079004307a00441dc60ee00660f000683a91323298009839000cdd598391839800ccc084dd6183918379baa304d306f375400e46eb0c1ccc1c0dd5000cc1c8009222259800cc00400e9464444b30010018acc004cdc78022441008a518998140031983c9ba900433079375200697ae041d114a083a1026456600266e1ccdc09bad3076307337540086eb4c1d8c1ccdd5000803c4c96600266e2402000626044003153307249012a657870656374206d696e745f616d6f756e74203c3d20746f74616c5f76616c6964617465645f75736472001641c53001375860ec60e66ea8c144c1ccdd5005d20009119912cc006600260ba0034a14a283a22b3001337126605800200930010079bae307a0029bae307a307b002407d133700006003153307549012d6578706563742061637475616c5f64656c7461203e3d2065787065637465645f726573657276655f64656c7461001641d1100341d06eb0c1e0c1d4dd5001194c00404a90004896600266ebcc09cc1e0dd50011ba7003899b80001375a60aa60f06ea800a200283a90261bac307830753754004811a0d483820dc838060e4003300104e9bae3070306d3754609460da6ea801600f0064035153306b490125657870656374206d696e745f616d6f756e74203d3d20746f74616c5f64656c697665726564001641a8b3001305230110018a4001159800800c176264b300130710028992cc004c06cdd71836801440060c08358dd69836800c17906e1837800a0da41a4660526eacc068c1acdd50261bae3048306b3754609060d66ea800e2a660d29201756578706563740a2020202076616c69646174655f6d696e745f696e70757473280a2020202020206f726465725f696e707574732c0a2020202020206d696e745f72657175657374732c0a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a2020202029001641a13001005802496600260306eb4c11cc1a8dd5000c4c060dd6982418351baa0018a50419c8090cc0b4dd6183618349baa04a375c608e60d26ea8c118c1a4dd5000c151066226644b3001303f0038cc004cc018dd6183418329baa0103758608460ca6ea80466eb0c1a0c194dd5008cdd6982198329baa0119bad301f3065375402330423065375406a911112cc004cc0bcdd6183698351baa04b375c604860d46ea8c11cc1a8dd5000c660033001005802496600266e20dd6982418359baa00148002260326eb4c124c1acdd5000c52820d0404d3302e375860da60d46ea812cdd7182418351baa3047306a37540033306c3047306a3754608e60d46ea8004cc1b1301054455534472004bd702444b3001980080140224464b3001304a306f375400313233225980099b8900198009bab30503073375460a060e66ea801a6eb8c1d801e6eb8c1d8c1dc01d01b456600266e1c004c0b0dd6982818399baa0058acc004cdc39bad3076002375a60a260e66ea8016266ebcc1d8c1dc008c088c1ccdd5002c52820e08a5041c114a08380c1d4004dd6983a00098381baa0018a5041b4609a60de6ea8cc04c00800502e4660026644653001001802c02e014800888896600200714bd7044cc896600200906d899912cc0040160e11332259800982f983c1baa001899912cc004c184c1e8dd5000c4cc88cc88cc008008004896600200313308101374e66102026e9c010cc20404dd4001a5eb812f5c113298009bac3083010019bad3083013084010019842008012444b30013375e6e9c00cdd380444cc21404dd399842809ba70033308501375066e0000801d2f5c000313308501374e6610a026e9c00ccc21404dd400125eb80cc018018005080010dd6184100800a100029800807402600f00640386eb0c0a8c1ecdd50034c004dd5982c183d9baa3058307b3754011002983f183d9baa006807cc05cdd6982c183d9baa0069bac302a307b375400d375a60b260f66ea801a66060602e6eb4c160c1ecdd5003183f183d9baa001406907541e060f860f26ea8004cc0bc02cdd61814183c9baa004837a0ec307b0053301900a375a60f400a83c0c1e0010c1e4011076183b001983b801a0e83758609660da6ea8138dd6183818369baa304b306d37540093302b3756603860da6ea8138dd7182518369baa304a306d375400998008274dd7183818369baa304a306d3754009006802a01a9980f9bac3070306d3754609660da6ea80108dd6183898371baa00148888ca600260ea003375660ea60ec0033075003acc004c160c05c0122900045660020090638992cc004c1dc016264b30013021375c60e6005100183320e2375a60e600306441d060ea008839906f24444b30019800801d28c88896600200315980099b8f004489008a518998158051983e1ba90043307c375200697ae041dd14a083b9029456600266e1ccdc09bad3079307637540086eb4c1e4c1d8dd5001000c56600266e1c0066002023480024466e00004dd6982a983c1baa0024099159800998099bac30793076375460a860ec6ea80348c8cdc3cc0040166eb8c1ec0066eb8c1ecc1f00050201818991919800800806912cc0040062900044c96600266ebcc1fc004dd380244dd6983f984000800c4cc00c00cc200040090791bac307e00141f06eb0c1ecc1e0dd50011bac307a3077375400314a31533074491ff6578706563740a202020206c6973742e616c6c280a20202020202073657474696e67732e636f6e6669672e726573657276655f6173736574732c0a202020202020666e28726129207b0a20202020202020206c65742028706f6c6963792c206e616d6529203d2072612e61737365740a20202020202020206c65742061637475616c5f64656c7461203d206173736574732e7175616e746974795f6f662876616c75655f64656c74612c20706f6c6963792c206e616d65290a20202020202020206c657420757365725f7265636569707473203d206c6f6f6b75705f61737365745f73756d287065725f726573657276655f61637475616c732c2072612e613b73736574290a202020202020202061637475616c5f64656c7461203d3d202d757365725f72656365697074730a2020202020207d2c0a2020202029001641cd153307449123657870656374206d696e745f616d6f756e74203d3d2073756d6d65645f616d6f756e74001641cd06d41cd07141cc3075002454cc1ad241466578706563742076616c69646174655f72656465656d5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f617373657429001641a882aa0ce4566002607800719800998031bac3068306537540206eb0c108c194dd5008cdd6183418329baa0119bad304330653754023375a603e60ca6ea8046608460ca6ea80d52222259800998179bac306d306a37540966eb8c090c1a8dd5182398351baa0018acc00660026605c6eb0c1b4c1a8dd50259bae3048306a3754608e60d46ea800600b223259800982918361baa0018992cc004006330010018acc004cdd7982618371baa0033071306e375400915980099baf304b306e375400260e260dc6ea800e264b30013046306e375400313370e6eb4c1c8c1bcdd50009bad304c306f375400914a08360c130c1b8dd5000c17906b417506b417102541720b905c82e20e63070306d375400305a41a8609460d86ea8c124c1b0dd500120568acc004cc88ca6002003008803a00222259800801456600200314a314a083822b30010018a508acc004cc896600260ae60e06ea8006264b30013375e60ea60e46ea8004c1d4c1c8dd5183a98391baa0038acc004cdd7982818391baa001304f3072375460ea60e46ea800e266e1e60026eacc13cc1c8dd5000cdd7183a803cdd71827803a034300e375a609e60e46ea800e294106f452820de30743071375400306741b860e40046602200a6eb4c1c80063300100398398014c1cc005003452820d841c08380dd6182418351baa04b3306c3047306a3754608e60d46ea8004cc1b1301054455534472004bd7044c8ca60026eacc1bcc1c0006660546eacc06cc1b0dd50269bae3049306c3754609260d86ea800eb3001302f0068cc00401e00d48002444b3001301d375a609860de6ea800e266e00004dd6982618379baa00382da0d840b906141a49112cc004cdc3acc004c154c05000a2900045660020050608992cc004c1d000e264b3001301e375c60e00051001831a0dc375a60e000306141c460e4004838106c000c56600266e1ccdc09bad3072306f375460e40086eb4c1c8c1bcdd51839002800c4cc030dd6183918379baa304d306f375400c46460af30010059bae30740019bae3074307500140646eb0c1ccc1c0dd5000c19906c454cc1b524012165787065637420757364725f6d696e746564203d3d206d696e745f616d6f756e74001641b0306f0019800825cdd7183698351baa3047306a375400300380120148a998342481806578706563740a2020202076616c69646174655f6469726563745f726571756573745f6f757470757473280a20202020202074782e6f7574707574732c0a2020202020206d696e745f72657175657374732c0a2020202020206f75747075745f696e64696365732c0a202020202020757364725f61737365742c0a20202020290016419d15330684913f6578706563742076616c69646174655f6469726563745f6d696e745f696e70757473286f726465725f696e707574732c206d696e745f7265717565737473290016419d055419c8acc004c0c800e3300133006375860d060ca6ea8040dd6182118329baa0119bad304330653754023375a603e60ca6ea8046608460ca6ea80d5222259800998171bac306c306937540946eb8c08cc1a4dd5182318349baa0018acc004cc8a600200500691192cc004c14cc1b4dd5000c4c96600200319800800c56600266ebcc134c1bcdd5001983918379baa0048acc004cdd7982618379baa0013072306f375400713259800981e98379baa0018992cc004cdc4800cc004dd5982718389baa304e3071375400d375c60e800f375c60e860ea00e80ca266e1c004c0a8dd6982718389baa0058a5041b86eb4c1ccc1c0dd5000c52820da304d306f375400305f41b105e41b105d409905d82ec1760ba83a0c1c4c1b8dd5000c16d06b182598369baa304a306d37540048160cc0b4dd6183618349baa04a375c608e60d26ea8c118c1a4dd500099835982318349baa304630693754002660d6981054455534472004bd7044c8ca60026eacc1b8c1bc006660526eacc068c1acdd50261bae3048306b3754609060d66ea800f3001006a4001225980099b88375a609460da6ea80092000899b80001375a609460da6ea800a0b2835101b2444b30013370eb3001305430130028a4001159800801417e264b300130730038992cc004c074dd71837801440060c48368dd69837800c181070183880120de41ac00315980099b87337026eb4c1c4c1b8dd518388021bad3071306e375460e200a00313300b375860e260dc6ea8c130c1b8dd5003119182b4c0040166eb8c1cc0066eb8c1ccc1d00050181bac3072306f3754003153306c4915a6578706563740a202020206f75747075745f646174756d2e63697263756c6174696e675f737570706c79202d20696e7075745f646174756d2e63697263756c6174696e675f737570706c79203d3d206275726e5f616d6f756e74001641ad153306c4912165787065637420757364725f6d696e746564203d3d206275726e5f616d6f756e74001641ac306e00198008254dd7183618349baa30463069375400300380120128a99833a4814b6578706563742076616c69646174655f6469726563745f6275726e5f696e70757473286f726465725f696e707574732c206275726e5f72657175657374732c20757364725f6173736574290016419905441988a5041888311062111919800800801912cc00400629462b30013003306a0018998010011835800c52820c841a04b300133710002900044c074006200283090600896600266e2000520008a60103d87a8000899805001000a0ba22a6606e92013665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640d89111112cc004c09401e264b3001001814c4c96600200315980098228014566002604e60806ea8006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c0c2061132598009826001c566002605c608e6ea801a264b300100181944c966002003033819c4cc89660020030358992cc00400606d036899912cc00400607113259800800c0e6073039899912cc00400607713259800800c0f207903c899912cc00400607d13259800800c4c9660020030408992cc0040062b3001305c002899819807112cc00400a26606a01a44b30010028cc00401e330010058acc004c108c16cdd500c44c9660020030468992cc004006264b300100182444c966002003159800983200144cc8966002609000313259800800c132264b3001001826c136264b30013069003899820000912cc00400a00f13259800800c6600200313002306c003828a058828c1460a305141b460d4004834209c8330dd6000c13609a8348c19800506418311baa0058acc004c0f0006264b300100182644c96600200304d826c4c96600260d20071330400012259800801401e264b30010018cc0040062600460d800705140b1051828c1460a28368c1a800906841390661bac001826c1350691833000a0c83062375400b1598009823800c4c96600200304c8992cc00400609b04d8992cc004c1a400e26608000244b3001002803c4c96600200319800800c4c008c1b000e0a2816a0a3051828c14506d183500120d082720cc375800304d826a0d23066001419060c46ea80162b300130490018992cc00400609913259800800c13609b1332259800800c13e264b30010018acc004c1ac00a26608400644b30010028acc004c13cc1a0dd5001c4c9660020030538992cc0040060a905482a44cc89660020030568992cc0040060af05782bc4c96600260e600700f82c20e0375a00305741cc60e00028370dd6800983780141510701836800a0d630693754007052419913259800800c6600200313002306e003829a05e829c14e0a705341bc60d800483520a083420a1050828414106c1834800a0ce375800260d000504d826a0d23066001419060c46ea80162b3001303b0018992cc00400609913259800800c13609b132598009834801c4cc10000489660020050078992cc00400633001001898011836001c14502e41460a3051828a0da306a00241a104e41986eb000609b04d41a460cc0028320c188dd5002c566002607400313259800800c132264b3001001826c136264b30013069003899820000912cc00400a00f13259800800c6600200313002306c003828a05c828c1460a305141b460d4004834209c8330dd6000c13609a8348c19800506418311baa0058acc004c0e4006264b300100182644c96600200304d826c4c96600260d20071330400012259800801401e264b30010018cc0040062600460d800705140bd051828c1460a28368c1a800906841390661bac001826c1350691833000a0c83062375400b1598009817800c4c96600200304c8992cc00400609b04d8992cc004c1a400e26608000244b3001002803c4c96600200319800800c4c008c1b000e0a2817a0a3051828c14506d183500120d082720cc375800304d826a0d23066001419060c46ea80162b30013370e9008000c56600260c46ea801600504b418d04b417c82f905f20be417c82f905f20be417c3300100189981d80c912cc00400a04913259800800c13209913259800800c136264b3001001827413a09d04e899912cc0040060a113259800800c56600260d800519800800c4c01cc1b00220a2818a0a2834a0a3051828c14506d1835000a0d0375c00260d20048350c19c0050651bac0018264131068183280120c6824a046305f37540070494185049824c1260928328c1880050601831001411e08f047823a0c63060001417860b86ea806208a82ca08a813208a8132264b3001001823411a08d13230033062004375a003046418860be00482ea264b3001001822411208913230033060004375a003044418060ba00482da08282ca083041820c10505d182d000a0b0305a00281fc0fe07f03f416c60b000282b0dd6800982b80140f1058182a800a0a6375a00260a8005039415460a40028280dd6000982880140da06c8290c13c00504d1bac001304e002819c0cd04f1826000a0943048375400d031411503141246eb0006061030413060920028238c12400a05d02e81740b904a1823800a08a304700281640b205902c4120608a0028218c104dd5000c0a903e40a904240aa05502a815208c30430014104607e6ea803a2b300130190078992cc00400605313259800800c566002608a005159800981398201baa0018992cc00400605713259800800c4c96600200302d8992cc00400605d02e8992cc004c12800e2b3001302c3045375400913259800800c0c2264b30010018992cc00400606513259800800c566002609c005159800981818249baa0038992cc00400606913259800800c4c9660020030368992cc00400606f037899912cc00400607313259800800c0ea0751332259800800c0f2264b300100181ec0f607b1332259800800c0fe264b300100182041020811332259800800c10a264b3001001821c10e08713259800982f801c566002608260b46ea8042264b3001001822c4c966002003046823411a26644b300100182444c966002003049824c126264b300130650038acc00404e09513259800800c12e09704b899912cc00400609b13259800800c13a09d04e8992cc004c1a800e2b3001015827c4c966002003050828414226644b300100182944c966002003053829c14e264b3001306f0038cc00408a26608c04c44b3001002817c4c96600200305782bc4c9660020030588992cc0040060b305982cc16626644b300100182dc4c966002003159800983b80146600200313007307700882e207882e20e882e41720b905c41e060ea0028398dd7000983a00120ea307200141c06eb00060af05741cc60e000483720a881720a88360dd6800c14d06f1836000a0d4375a00260d602d05041b060d202a833a09e8338dd6800c13906a1833800a0ca375a00260cc02904b419c60c802683120948310dd6800c1250651831000a0c0375a00260c2005046418860be00282e8c16cdd50084111058411105c1bad001821a0be305c00141686eb4004c16c00a08082e0c1640050571bad001305800281ea0b2305600141506eb0004c15400a07503a415860a60028288dd6000982900140de06e8298c14000504e182800140d606b03581aa0a2304e001413060946ea800e066823a066825a067033819c0cd04f1826000a094304c002818c0c6063031413460940028240c118dd500240bd04340bd0471bac00181740b904a1823800a08a304700281640b205902c4120608a0028218c104dd5000c0a903e40a904240aa05502a815208c30430014104607e6ea803a05081e103c101b80dc06e03681b8cc88c966002603460666ea8006260686466ec0c0e0004c0e0c0e4004dd6181b981a1baa0018a9981924818b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c030cc0e0dd480225eb812f5c11301233038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c37566068606a606a606a606a606a606a606a606a606a60626ea8048dd7181a18189baa00132323259800800c566002603260646ea8006264b300100180f44c96600200301f80fc07e03f1332259800800c086264b30010018acc004c0f000a2b3001301e3037375400313259800800c08e264b30010018992cc00400604b13259800800c4c9660020030278992cc0040062b300130420028acc004c090c0f4dd5002c4c9660020030298992cc004006264b3001001815c4c96600200313259800800c0b6264b30010018992cc00400605f13259800800c4c9660020030318992cc004006264b3001001819c4c96600200313259800800c0d6264b30010018992cc00400606f13259800800c4c9660020030398992cc004006264b300100181dc4c966002003159800982b00146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607060a26ea805e264b300100181ec4c96600200303e81f40fa07d1332259800800c102264b3001001820c106083041899912cc00400608713259800800c11208904482244cc89660020030468992cc00400608f047823c11e26644b3001001824c4c96600200304a825412a0951332259800800c132264b30010018acc004c19c00a330010018acc004c124c188dd501344c96600200304e8992cc00400609f04f899912cc0040060a313259800800c56600260d80051330430032259800801466002007103882a20768992cc0040062b30013051306a375400313259800800c15a264b300100182bc15e26644b300100182cc4c96600200305a82d416a26644b300100182e44c96600200305d82ec176264b300130780038acc00401e0bd13259800800c17e0bf05f82fc4cc89660020030618992cc0040060c5062831418a264b3001307d00389808183e808c18d07a1bae00141f460f400283c0dd7000983c80420f4307700741d505e41d46eb40060ba83c0c1d40050731bad001307400282d20ea307200141c06eb0004c1c400a0af05741c860de0028368c1acdd5000c15506841560ab05582aa0e0306d00241ad05241a5052829414a0a48368c1a80050681bac0013069002827c13d06a1833800a0ca3063375404d04d418104d40d904d419104d826c13609a8340c1940050631bae0013064002419460c40028300dd7000983080120c4305f00141746eb8004c17800905f182e000a0b4375c00260b600482e0c1640050571bae0013058002416460ac00282a0c148dd500bc0f104f40f102640f102640f102640f102640f102640f102640f102640f102640f102640f102640f105340f207903c81e20ae3054001414860a800503a81d40ea07482a8c148005050182900140e207103881c20a63050001413860a000503681b40da06c8288c13800504c182700140d206903481a209e304c0014128609800503281940ca0648268c128005048182500140c2061030818209630480014118609000502e81740ba05c8248c118005044182300140b205902c816208e30440014108608800502a81540aa0548228c108005040181f1baa0058142076814207e81440a2051028410c608000281f0c10000a04d0268134099041181f000a078303e002812409204902440fc607800281d0c0e0dd5000c0890354089039408a045022811207a303a00140e06eb8004c0e400903a181b800a06a3033375400301d40c101d80ec07603a81c0c966002603260646ea8006264b30013019303337540031303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602260666ea8c040c0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c06600e6eb0c03cc0c8dd50099191980080098019bab301130343754602260686ea8008896600200314a115980099b8f375c607000206314a3133002002303900140c881b0c004004896600200314bd7044cc0d0c0c4c0d4004cc008008c0d80050331112cc004c060c0c4dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981d00146600200713259800980e800c4c9660020030078992cc0040062b3001303d0028992cc004c080006264b300100180544c966002003159800982000146600200300c805a01c805a07a805c02e01700b4104607c00281e0c0e8dd50014566002602800313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c046023132598009823801c04e0248220dd6800c0450471822000a084375a002608600500e4110608200281f8dd68009820001402d041181f000a078303a375400500940dc81b8c0e0dd5000c02103a4022011008804207c303b00140e4606e6ea800a2b300130110018acc004c0dcdd5001401e00c81c200c81a1034181a9baa001802a010802a06e802c01600b00540ec607000281b0c0e000a007003801c00d039181b000a0683032375400700140bc456600260100071323259800980498111baa302630270028a518a5040806eb4c094004c084dd500245901e203c1810181080098100022293454cc05924011856616c696461746f722072657475726e65642066616c7365001365640541" + : "592a0a010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003374a9000488c8cc00400400c88cc00c004c00800a6e1d20029b87480226e1d200a9b87480326e9520029b874803a44b30013009300e375400513232332259800980b801c0162c80a0dd6980a0009bae30140023014001300f37540051640349111111111114c00488c8cc00400400c896600200314c0103d87a80008992cc004c0100062601c6604000297ae089980180198110012038302000140792223259800980b800c4c8c96600260460050048b2040375c6042002603a6ea800e2b3001300b0018992cc004c08800626601a6eb0c08400489660020050058cc00401e6046005130013024002401c810a2c80f8c074dd5001c566002602c003132598009811000c4cc034dd61810800912cc00400a00b19800803cc08c00a260026048004803902145901f180e9baa0038acc004c0600062646644b300130240018998079bac30230012259800801401e33001009981280144c004c09800900920468b2042375a60420026044002603a6ea800e2b3001300a001899192cc004c08c00a0091640806eb4c084004c074dd5001c56600260120031323259800981180140122c8100dd69810800980e9baa0038acc004c02000626464b300130230028024590201bae3021001301d375400716406c80d901b2036406c80d901b180d9baa00291192cc004c05800626464b3001302200280245901f1bae3020001301c37540071598009805000c56600260386ea800e00516407516406880d0c068dd5001488c966002602c0031323259800981100140122c80f8dd71810000980e1baa0038acc004c02800626464b3001302200280245901f1bae3020001301c375400716406880d0c068dd500148966002602a60346ea800a2646464b30013022002899192cc004c0680062b3001302037540050068b20428acc004c03800626464b300130260028044590231bad302400130203754005159800980c800c56600260406ea800a00d16408516407880f101e180f1baa00130210038b203e3259800980f000c56600266e252004301d0018b44c030c07400501c45901f1baa30200013020001301b3754005164065223259800980b000c4c8c96600260440050048b203e375a604000260386ea800e2b3001300a0018acc004c070dd5001c00a2c80ea2c80d101a180d1baa002488888a6002600a00b2259800980d98101baa00289919192cc004c0a000a266010604e006264b3001301f0018992cc004c0a800626464b300130220018992cc004c0b400626601a60580020131640a860506ea800a2b3001301600189919194c004dd69817000cdd69817001cdd698170012444b3001303200480745902f0c0b8004c0b4004c0a0dd5001459026204c30263754002605200316409c604a6ea800a2b300130130018acc004c094dd500140162c81322c811902318119baa0018b204a302600130260013021375400516407d223259800980e000c4c966002604e00313300b30260010038b2048302237540071598009808000c4c966002604e00313259800980f18119baa00189919192cc004c0ac00a266014605400626601400200f1640a06052002605200260486ea80062c8110c0980062c8120c088dd5001c590202040302037540052259800980d98101baa0028991919192cc004c0a400a264b3001302030253754003132323322598009817001c4cc03cc0b402002a2c8158dd718158009bae302b002302b0013026375400316409060500091640986eb8c09c004c09c004c098004c084dd500145901f244446645300133223259800981118139baa001898141919bb0302c001302c302d0013758605660506ea80062c8130c8cc00400400c896600200314c0103d87a80008992cc004cdd7981480099ba548010cc0b0c050cc0b0dd480225eb812f5c11301a3302c374e66058605200266058605400297ae04bd7044cc00c00cc0b80090281816000a05437566050605260526052605260526052605260526052604a6ea8068dd7181418129baa002912cc004c084c098dd500144c8c8c8cc89660026060007133008302f0051330140020068b205a302d001375a605a004605a0026058002604e6ea800a2c812a44b30013021302637540051323232323298009bad302f0019bad302f0049bad302f003981780124444b30013034005899806181980489980c0008054590310c0bc004c0b8004c0b4004c0b0004c09cdd5001459025489660026042604c6ea800a2646464646465300137586060003375a606000b375a6060009375a6060007303000248888966002606c00d13300e303500b13301a001132332259800981c801c03e2c81b0dd7181b0009bae303600630360058b20661818000981780098170009816800981600098139baa0028b204a912cc004c084c098dd500144c8c8c8c8ca60026eb0c0bc0066eb4c0bc0126eb4c0bc00e605e00491112cc004c0d001626601860660122660300022646644b30013037003806c590341bae3034001375c606800a60680091640c4302f001302e001302d001302c001302737540051640949111119912cc004c098006264b300130310018992cc004c0a0c0b4dd5000c4c8c8c8cc8966002606e00713259800981718199baa00189919191919194c004c0f40066eb0c0f40166eb4c0f40126eb4c0f400e607a004911112cc004c10c01a26605c6eb0c10802c8966002005133030006225980080144cc0940144cc094024566002607a60846ea80462646464b3001304a00289919912cc004c10c00a264b3001304e00189981c9bac304d00122598008014012266046609e0042600260a0004826a2c8258c124dd5001c566002606e005132598009827000c4cc0e4dd61826800912cc00400a009133023304f002130013050002413516412c60926ea800e2b300130420028992cc004c1380062660726eb0c13400489660020050048998121827801098009828001209a8b209630493754007159800982200144c8c8c96600260a000513303b3758609e00644b30010028acc004c120c134dd5001c4c8c8cc896600260ac00700a8b20a6375a60a60026eb4c14c008c14c004c138dd5001c5904c44cc098c1440084c004c14800904f45904d1827000982700098249baa0038acc004c0d800a264b3001304e00189981c9bac304d0012259800801401226604a609e0042600260a0004826a2c8258c124dd5001c566002606a005132598009827000c4cc0e4dd61826800912cc00400a009133025304f002130013050002413516412c60926ea800e2b300130340028992cc004c1380062660726eb0c13400489660020050048998131827801098009828001209a8b209630493754007159800981900144c966002609c0031330393758609a00244b300100280244cc098c13c0084c004c14000904d45904b18249baa0038acc004cdc3a402000515980098249baa003800c5904a459047208e411c8239047208e411c823904718231baa0011330260021330360162259800801407e2646644b300130500018998151827800898021828002c5904d1bae304d001304e001375860980048250c12400e2c8238c120004c120004c10cdd5008c5904144c8c008c12000cdd698230012088899180118230019bad30440024109164100303d001303c001303b001303a0013039001303437540031640c8606c00b1640d06eb0c0d0004c0d0008c0d0004c0cc004c0b8dd5000c5902c1818000c5902e18161baa0078acc004c068006264b300130310018992cc004c0a0c0b4dd5000c4c8c8c966002606a00513259800981618189baa001899192cc004c0e0006264b3001302f30343754003132323232323298009bad303e0019bac303e0059bac303e0049bad303e0039bad303e00248888966002608800d13259800981d98201baa0018991919912cc004c12400e2646644b3001304c00389919912cc004c13c00e266054609c03026607403644b3001002811c4c8cc896600260a800313302e30530011300430540058b20a2375c60a200260a40026eb0c14000904e45904c1bad304c001375a609801860980171641246eb4c124004dd698248051824804c590461bad3046001375a608c004608c00260826ea80062c81f8c10c02e2c8208607c002607a002607800260760026074002606a6ea80062c8198c0dc00a2c81a8c0dc004c0c8dd5000c59030181a001c590321bac30330013033001302e37540031640b060600031640b860586ea801e2c815102a0acc004c090c0a4dd5002c66002605a60546ea8016444b30010028a6103d87a80008acc004c09c0062603a6605e606000497ae08cc00400e6062005337000029000a00640ac817245300132330010010032259800800c528456600266ebcc0c4c0b8dd5181898171baa301f302e375460620026030660606ea400d2f5c114a3133002002303200140b0817a94294502a488c8cc00400400c896600200314bd7044cc896600266ebcc0ccc0c0dd5181998181baa3021303037540046034660646ea40152f5c113303200233004004001899802002000a05c3031001303200140bd23019302a3754605c646600200200444b30010018a5eb84103d87a80008101800044c8cc89660033001301e302f375460660074a14a2817226606530014a14c103d87a8000a60103d879800040b8660646e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0d400400e2946266004004606c002818103344cc0ca600294298103d87a8000a60103d879800040b8660646e9c0092f5c11330329800a51a60103d87a8000a60103d879800040b8660646e9ccc0c8dd400080125eb8102e205c3758606260640026eb4c0c4008cc008008c0c400502e48888ca6002003005802400d00111112cc00400e2b30010028800c590334660020093036003981b00166002606a007375a606a005001401480210334888ca6002003004801a00222259800801456600200314a314a0818a2b30010018a508acc004cc010c0cc008c0cc00633001003981a0014c0d00050034528205c40c4818a4444646600200200a44b300100189981919bb0375200a6ea00112f5bded8c113298009bae30300019bad3031001981a8012444b300133720012007133036337606ea4024dd4004002c56600266e3c02400e33001009804400a46606e66ec0dd48051ba80010028800a00e89981b19bb037520066ea0008cc01801800503220641819800a06291111919800800802912cc00400626606466ec0dd48029ba60044bd6f7b63044ca60026eb8c0c00066eacc0c4006606a0049112cc004cdc8004801c4cc0d8cdd81ba9009374c01000b15980099b8f0090038cc00402601100291981b99bb037520146e9800400a2002803a26606c66ec0dd48019ba60023300600600140c881906066002818a4464646600200200844b3001001801c4c8cc896600266e4401c00a2b30013371e00e00510018032060899802802981b0022060375c605e0026eacc0c0004c0c80050300a5eb7bdb1824b30010018a518a5040b112222232598009815000c00a260060028170cdc0002001c8966002604c60566ea800a26464b30013032002801c5902f1bad3030001302c37540051640a92302e302f302f302f0019b814800244b30010018a40011337009001198010011818000a05a912cc004c098c0acdd500144c8c8c8ca60026066003303300398198012444b3001303700489980a181b0038998078010992cc004c0b8006264653001375a6072003303a0019bad3039002488966002607a005132323322598009820801c04a2c81f0dd7181f0009bae303e002303e001375860780051640e83039001303437540051598009811000c4c8ca60026eb4c0e40066074003375a60720049112cc004c0f400a264646644b3001304100380945903e1bae303e001375c607c004607c0026eb0c0f000a2c81d0607200260686ea800a2b3001302d00189919194c004dd6981d000cc0ec0066eb4c0e800e6eb4c0e8009222259800981f801c4c8c8cc896600260860070148b2080375c60800026eb8c100008c100004dd6181f001c5903c0c0e8004c0e4004c0d0dd50014566002605e003132332259800981d800c4c8c8cc8966002607e0070108b2078375c60780026eb8c0f0008c0f0004dd6181d000c590381bad30380013039001303437540051598009810800c4c8c8cc8966002607800700d8b2072375a60720026eb4c0e4008c0e4004c0d0dd500145660026040003132323298009bad303a0019bad303a0039bad303a002488966002607c00900f8b2076181d000981c800981a1baa0028acc004c07c00626464b3001303a002805c590371bad303800130343754005159800980e800c4c8c966002607400500b8b206e375a607000260686ea800a2c8191032206440c88191032206440c860646ea80062c81a060660026064002606200260586ea800a2c81524466026004466ebcc0c0c0b4dd50009ba70029119b83337040046eb4c078c0b0dd50009bad301d302c37540032259800800c5268992cc00400629344c96600266e40dd7181698188019bae302d00189980200219818000981900145902c1818000a05c303000140b522232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6068003375a606a0033300300330390024024606e00281a8dd598190019bae302f001330030033034002303200140c12232330010010032259800800c52f5c1133030374e60066062002660040046064002817a44646600200200644b30010018a508acc004cdd798188009ba70038a518998010011819000a05840bd222329800800c01200680088896600200510018cc00400e6068005330043033002001400c818a4605c605e605e605e605e003371090004dc7a45045553447200488888888888888888888888888a60026090608a6ea806e6090608a6ea8c0d8c114dd500dcc06806a444b3001301a0028cc00400e00548002444b30013004003899b80001375a607860966ea800e2c82490194590464888c8cc88cc008008004896600200300389919912cc004cdc8803801456600266e3c01c00a20030064131133005005305200441306eb8c12c004dd698260009827000a0983301600400314800244653001001801c0090011112cc00400a200313298008024c13c00f30010029bae304a0019bab304b00191111192cc004c07400600513003001413c6465300100180340150011112cc00400a200313298008024c16400f30010029bae30540019bad3055001802a048401060ae00482a9406d0192008304d002412d232330010010022259800800c52f5bded8c11323304b3376060900026e98c8cc004004dd59825001112cc004006297adef6c608991982719bb0304b001375060286eb4c130004cc00c00cc140008c13800504c1980180198268011825800a0929806006488c9660026082608e6ea80062646601e0022b30013375e602460926ea800cc130c124dd5002456600266ebcc0e8c124dd5000982618249baa0038800c59047459047182598241baa0018b208c3039304737546070608e6ea800a60100109111111111194c00488c8cc004004008896600200314bd7044cc158c966002609e60a86ea8006260b060aa6ea80062c8298cc014010dd6982b80099801001182c000a0aa9111192cc004c13cc150dd5000c4c96600266ebcc164c158dd5182c982b1baa3047305637540026080660b06ea40152f5c115980098224c004dd59823982b1baa304730563754003005a45087472656173757279004035132598009828182b1baa001899198110008992cc004c14cc160dd5000c4c96600266ebcc174c168dd5182e982d1baa00130443305c375201297ae08acc004c12260026eacc12cc168dd5000c02691108747265617375727900404513259800982a182d1baa001899198130008acc004cdd79812982e1baa0034c0103d87a800089982f0029982f0009982f1ba6330123756609a60b86ea800cc044dd59826982e1baa304d305c375400e97ae08b20b4305e305b3754003164164609860b46ea80062c82c22c82c0c170c164dd5000c59057198049bac304a3058375401000a60b460ae6ea80062c82a8c120c158dd51823982b1baa0018b20a88b20a830583055375400316414c6600a6eb0c15cc150dd50020014888888896600266ebcc16cc160dd5003982d982c1baa0068acc004cdd79825182c1baa00730493058375400d13259800cc0040069464444b3001001899b894800000a294105b20368992cc004cdc4802000c56600266e2400400e200316416116416130010019bae305c0049bae305c305d004404116415c6601c6eacc124c160dd50039806cc004dd7182d802cdd7182d982e002cc08001122259800982a800c402e3300100b801cc8c8008c038004cc174cdd81ba9002375000297adef6c6091111192cc004c0b400600513003001417c653001004804401e444453001005801c0120050014018818140ad02920b24590564590564c13cdd500524444b3001304e0018cc00488c8cdc199b803370066e0800cdd69824982b9baa00200148004004dd69823982b1baa001998021bac30573054375401c6eb0c114c150dd5007cdd6182b982a1baa00f9bad30463054375401f375a603a60a86ea803e608a60a86ea80c522222259800998171bac305d305a375409e6eb8c08cc168dd51825982d1baa001899912cc004ca600200500891192cc004c168c17cdd5000c4c8c8ca60026605000e0033758604260c66ea80166eb4c19800e6eb4c198009222259800983098331baa0048acc004cdc4998099bad30583067375401260d460ce6ea801260026eacc160c19cdd5182c18339baa00a9bae306a0039bae306a306b003407915980099b87002375a60b060ce6ea80262b30013370e0026eb4c164c19cdd5004c4cdd79ba700530253067375401314a0832a2941065452820ca8b20ca1bac3065306600130650013060375400314a082f0c144c17cdd519809001000a05a375860be60b86ea8c138c170dd5001c4c8c96600266e1c00660026eb0c140c178dd5029ccc180c13cc178dd51827982f1baa005330604c01054455534472004bd704dd61830982f1baa3050305e375400a911194c00400600f00d8062002222259800801c52000899912cc004c184c198dd5000c4c96600260c460ce6ea8006266e0260026eacc164c1a0dd5182c98341baa306b006983598341baa002983598341baa0039bac30263068375400733014375a60b260d06ea800cc1acc1a0dd5000c0266eb4c168c1a0dd5001cdd6982c98341baa0034059300100798360034c1b001660d8008803a2c8330cc0b001cdd6181298339baa0028b20ca306800233016007375a60d0002833113232332259800cc00400a9464444b30010018acc004cdc7802245008a51899813002998341ba900433068375200697ae0419114a08321024456600266e1ccdc09bad30653062375460ca0066eb4c194c188dd51832802002c4c96600266e24018006260400031641853001375860ca60c46ea8c150c188dd5004d20009119912cc006600260c00034a14a283222b3001337126605400200930010069bae30690029bae3069306a0024075133700006003164191100341906eb0c19cc190dd5001194c00404290004896600266ebcc094c19cdd50011ba7003899b80001375a60b060ce6ea800a200283290241bac306730643754004810a2c83022c8300dd598319832000998109bac30633060375460a460c06ea801c8dd6183218309baa00130630019800829cdd71830982f1baa304f305e375400b007803201a8b20b859800982b9808800c520008acc004c184006264b3001301a375c60ba0031375a60bc00316417060c000316417882d8cc0a4dd5980d182e1baa051375c609a60b86ea8c134c170dd5001c5905a4c004016009259800980c1bad304c305b375400313018375a609a60b66ea8006294105920243302d375860ba60b46ea813cdd71826182d1baa304b305a3754003164160899912cc004c11000e3300133006375860b260ac6ea8040dd61823982b1baa0119bac305930563754023375a609060ac6ea80466eb4c07cc158dd5008cc11cc158dd5019a44444b30013302f375860bc60b66ea8140dd71812182d9baa304c305b375400319800cc00401600925980099b88375a609a60b86ea800520008980c9bad304e305c375400314a082d10134cc0b8dd6182f182d9baa050375c609a60b66ea8c130c16cdd5000ccc174c130c16cdd51826182d9baa0013305d4c1054455534472004bd702444b3001980080140224464b3001304f3060375400313233225980099b8900198009bab30553064375460aa60c86ea801a6eb8c19c01e6eb8c19cc1a001d01b456600266e1c004c0b0dd6982a98321baa0058acc004cdc39bad3067002375a60ac60c86ea8016266ebcc19cc1a0008c088c190dd5002c52820c48a50418914a08310c198004dd6983280098309baa0018a50417c60a460c06ea8cc04c00800502e4660026644653001001802c02e014800888896600200714bd7044cc896600260c060ca6ea8006264b3001306130663754003133223322330020020012259800800c4cc1b4dd3998369ba70043306d375000697ae04bd7044ca60026eb0c1bc0066eb4c1bcc1c000660e00049112cc004cdd79ba7003374e011133071374e660e26e9c00ccc1c4dd419b800020074bd70000c4cc1c4dd3998389ba700333071375000497ae03300600600141b4375860dc00283626002013306d0089836803cc1b40190091bac3025306737540073001375660b060ce6ea8c160c19cdd518350034c1a8c19cdd50014c1a8c19cdd5001c02a60246eb4c160c19cdd5001cdd6181298339baa0039bad3059306737540073302b3012375a60b060ce6ea800cc1a8c19cdd5000a02a8b20ca3302b0073758604860cc6ea800a2c8320c19c008cc054018dd69833800a0ca375860a060bc6ea814cdd61830982f1baa3050305e37540093302b3756603860bc6ea814cdd71827982f1baa304f305e37540099800829cdd71830982f1baa304f305e3754009006802a01a9980f9bac3061305e375460a060bc6ea80108dd61831182f9baa00148888c8cc89660033001002a5191112cc0040062b30013371e0089101008a51899814804198359ba90043306b375200697ae0419d14a08339027456600266e1ccdc09bad30683065375460d00066eb4c1a0c194dd51834002800c56600266e1c006600201f480024466e00004dd6982c18339baa0024091159800998089bac30683065375460ae60ca6ea802c8c8cdc3cc0040126eb8c1a80066eb8c1a8c1ac00501e1817991919800800805912cc0040062900044c96600266ebcc1b8004dd380244dd698371837800c4cc00c00cc1bc0090691bac306d00141ac6eb0c1a8c19cdd50011bac30693066375400314a316418d16418d16418d16418c6eacc198c19c0056600260ba602e0091480022b300130670048992cc004c080dd71831800c4dd69832000c59062183300245906420c2306600245905c22c82c91598009820801c660026600c6eb0c164c158dd50081bac304730563754023375860b260ac6ea80466eb4c120c158dd5008cdd6980f982b1baa0119823982b1baa033488889660026605e6eb0c178c16cdd50281bae3024305b3754609860b66ea80062b30019800998171bac305e305b37540a06eb8c134c16cdd51826182d9baa001802c88c96600260ae60ba6ea80062646604a0022b30013375e60a260be6ea800cc188c17cdd5002456600266ebcc140c17cdd50009831182f9baa0038992cc004c12cc17cdd5000c4cdc39bad3063306037540026eb4c144c180dd5002452820bc3051305f375400316417516417460c260bc6ea80062c82e0c13cc174dd51827182e9baa00240ad1598009991194c0040060110074004444b30010028acc00400629462941061456600200314a115980099912cc004c170c184dd5000c4c96600266ebcc198c18cdd5000983318319baa30663063375400715980099baf30553063375400260a860c66ea8c198c18cdd5001c4cdc3cc004dd5982a18319baa0019bae30660079bae30540074068601c6eb4c150c18cdd5001c52820c28a50418460ca60c46ea80062c8300c18c008cc044014dd69831800c6600200730640029832000a0068a50417883090611bac304d305b37540a0660ba609860b66ea8c130c16cdd50009982ea601054455534472004bd7044c8ca60026eacc180c184006660546eacc06cc174dd50291bae304e305d3754609c60ba6ea800eb3001302f0068cc00401e00d48002444b3001301d375a60a260c06ea800e266e00004dd6982898301baa0038b20bc40b916416c9112cc004cdc3acc004c168c05000a29000456600260c800513259800980e9bae306000189bad30610018b20be30630028b20c2417800315980099b87337026eb4c18cc180dd518318021bad30633060375460c600a00313300c375860c660c06ea8c148c180dd5003119182e4c0040166eb8c1940066eb8c194c1980050191bac306430613754003164179164178306000198008284dd7182f182d9baa304c305b375400300380120148b20b28b20b28b20b24566002607e00719800998031bac3059305637540206eb0c11cc158dd5008cdd69824182b1baa0119bad301f3056375402330473056375406691112cc004cc0b8dd6182e982d1baa04f375c604660b46ea8c12cc168dd5000c56600266453001002803488c96600260b060bc6ea80062646604c0022b30013375e60a460c06ea800cc18cc180dd5002456600266ebcc144c180dd5000983198301baa0038992cc004c128c180dd5000c4c96600266e2400660026eacc14cc188dd5182998311baa0069bae30650079bae30653066007406513370e00260546eb4c14cc188dd5002c52820c0375a60c860c26ea8006294105f182918301baa0018b20bc8b20bc3062305f375400316417460a060bc6ea8c13cc178dd500120583302d375860ba60b46ea813cdd71826182d1baa304b305a3754002660b8609660b46ea8c12cc168dd50009982e261054455534472004bd7044c8ca60026eacc17cc180006660526eacc068c170dd50289bae304d305c3754609a60b86ea800f3001006a4001225980099b88375a609e60bc6ea80092000899b80001375a609e60bc6ea800a2c82e101b2444b30013370eb3001305930130028a4001159800983180144c96600260386eb8c17c00626eb4c1800062c82f0c18800a2c830105d000c56600266e1ccdc09bad3062305f375460c40086eb4c188c17cdd51831002800c4cc02cdd61831182f9baa3051305f375400c46460b730010059bae30640019bae3064306500140606eb0c18cc180dd5000c5905d45905d0c17c006600209f375c60ba60b46ea8c12cc168dd5000c00e004804a2c82c22c82c114a082a105420a82232330010010032259800800c528c566002600660b6003133002002305c0018a50415882c896600266e2000520008980e800c400505320a4112cc004cdc4000a400114c0103d87a8000899805001000a09e22c8140c0a4dd50028c8c8c9660026040604a6ea80062646644b3001302d0018992cc004c090c0a4dd5000c4c8c8c8cc8966002606600713259800981518179baa0018991919191919191919194c004c0f4006607a013303d008981e803cc0f401a607a00b303d004981e801cc0f400922222222259800982380544cc090c11804c4cc0900204cc09001c4cc0900184cc0900144cc0900104cc09000c4cc0900084cc0900044cc090024566002607a60846ea8056264646464653001375c6096003304c0019bae304b0059bae304b0049bae304b0039bae304b00248888896600260a400b1330333051005159800982418269baa02189919192cc004c15400a2660806eb0c15000c8966002005133033003102e8992cc004c138c14cdd5000c4c8c8c8cc896600260ba007132323322598009830801c4c02cc1840322c82f0dd7182f0009bae305e002305e001375860b800b1641686eb4c168004dd6982d001182d000982c800982a1baa0018b20a43056002415116414860a600260a6002609c6ea80862c82622c8278609600260940026092002609000260866ea80562c820a2c8220607a00260780026076002607400260720026070002606e002606c002606a00260606ea80062c8170c0c80162c8180c0c0004c0c0008c0c0004c0bc004c0a8dd5000c590281816000c5902a1bae302a001302b0013026375400316409064b300130203025375400313259800981018131baa0018981518139baa0018b204a301830263754602e604c6ea8c0a4c098dd5000c59024198061bac3016302537540344646600200260066eacc060c09cdd5180c18139baa0022259800800c528456600266e3cdd71815800812c528c4cc008008c0b0005026205230010012259800800c52f5c113302730243028001330020023029001409844b3001301f30243754005132323259800981600144cc020c0ac00c4c966002604600315980098149baa002802c5902a4566002602e00313232598009817801401e2c8160dd7181680098149baa0028acc004c08800626464b3001302f002803c5902c181680098149baa0028b204e409c8138c09cdd5000c590291815000981500098129baa0028b204611598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d1365640081", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolOrchestratorProtocolOrchestratorWithdraw { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + yieldOracleValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59339c0101002222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0069bae0059bae0049bae0039bae00248888888888888a60022a6600e92012f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c662900168a99803a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99803a492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a99803a492872656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631001648889660033001300d3754027370e90034dc3a4001370e90022444464653001301237540033016006980b0012444b300130060038992cc00400a33001370e9001488c8cc00400400c88cc00c004c00800a6e1d20089b874802a6e1d200c9112cc004c02cc064dd5001c4c9660020030028992cc004006007003801c00e26644b3001001802c4c966002003006803401a264b30013024003804401d0211bad00180320483021001407c6eb8004c080009021180f000a038301a3754007001405d3016375400491111114c004888c966002602600313259800800c00e264b300100180240120090048992cc004c0a400e00d00540986eb80050291813000a048302237540091598009805800c56600260446ea8012007002408d002407c80f8c080dd5001c888c966002602600313259800800c00e264b300100180240120090048992cc004c0a400e00d00540986eb80050291813000a048302237540091598009805800c4c9660020030038992cc0040060090048024012264b3001302900380340150261bae00140a4604c0028120c088dd5002400901f203e3020375400722259800980918101baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300130260018acc004cdc4a4008604a0030068992cc004c0ac012264b300130190018acc004c0a0dd50034026010814a2b300130110018992cc00400601313259800800c02a01500a8992cc004c0bc00e01900b40b06eb40060148178c0b000502a18141baa0068acc004c0600062b30013028375400d0098042052804204a40948128c098dd5002c01d02818079812800a046803204e3754003005802c01600a8150c09c0050251813801400e007003801a0503025001408c60426ea800e00280f244464b300130130018992cc00400600713259800800c0120090048992cc004c0a400e00d00540986eb40060088148c09800502418111baa0048acc004c02c0062b3001302237540090038012046801203e407c60406ea800d2222323298009112cc004c060c098dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003159800981900146600200d19800800c0260108092010805a010817a01100880440210331818000a05c375a002605e00500540c0605a0028158c0b400a007003801c00d02e1815800a05230273754007001409122259800980c18131baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c036264b300130380038cc00403233001004807c039018403901140390351bad001806a070303500140cc606a00500b805c02e01681b0c0cc0050311bad00130320028042066303000140b86eb4004c0bc00a00a8180c0b400502b1816801400e007003801a05c302b00140a4604e6ea800e0028122444b300130183026375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c02e01700b899912cc00400601b13259800800c4c96600200300f8992cc0040060210108992cc004c0ec00e3300100f8cc0040122b3001001808c4c966002003012809404a0251332259800800c052264b300100180ac05602b0158992cc004c10000e02f01640f46eb8005040181e800a076375c002607800481e8c0e8005038404501b404501440450381bac001808404103b181c000a06c3038002807403a01d00e40e4606c00281a0dd6800981a801402d0361819800a062375a002606400500840cc60600028170dd6800981780140150301816800a056302d002801c00e00700340b860560028148c09cdd5001c0050244889660026030604c6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b13259800981c001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a02513259800981e801c05202681d0dd7000a07a303a00140e06eb8004c0e400903a181b800a06a80720308072022807206a375800300d806a070303500140cc606a00500b805c02e01681b0c0cc0050311bad00130320028042066303000140b86eb4004c0bc00a00a8180c0b400502b1816801400e007003801a05c302b00140a4604e6ea800e0028122444b300130183026375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc00400600f007803c01e264b300130320038acc004c07cc0b4dd500344c9660020030098992cc00400601500a805402a26644b300100180644c96600200300d806c03601b13259800981c001c6600201500f807202c807206a375c00281c0c0d40050331bae001303400240d460640028180c0b8dd5003402102b402102f1bae00140c8605e0028168c0bc00a00b005802c0150301816800a056302d002801c00e00700340b860560028148c09cdd5001c0050244888c966002603200313259800800c00e264b30010018acc004c0b800a33001001802c01100e401102b4012009004802205e302c00140a860506ea80122b300130110018992cc00400600713259800800c566002605c005159800980d98149baa0018992cc00400600b13259800800c4c9660020030078992cc0040062b300130320028cc00400e33001001804c02100e402100e402102f40220110088042066303000140b86060005006803401a00c8188c0b800502c18151baa001802204e8022056802401200900440bc60580028150c0a0dd50024009025204a30263754007198009181418149814800c8896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801902448888c8cc004004014896600200310058992cc004006266008605c00400d133005302e0023300300300140b0605c002815a6e012001918141814800cdd2a400091111119191919192cc004006264b30013021302f375400513259800800c09a264b30010018992cc00400605113259800800c4c96600200302a8992cc0040062b3001303a0028acc004c09cc0d4dd5002c4c96600200302c8992cc004006264b300100181744c96600200313259800800c0c2264b30010018992cc00400606513259800800c4c9660020030348992cc004006264b300100181b44c96600200313259800800c0e2264b30010018992cc00400607513259800800c4c96600200303c8992cc004006264b300100181f44c966002003159800982700146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607660926ea805e264b300100182044c966002003041820c1060831332259800800c10e264b30010018224112089044899912cc00400608d13259800800c11e08f047823c4cc89660020030498992cc00400609504a825412a26644b300100182644c96600200304d826c13609b1332259800800c13e264b30010018acc004c17c00a330010018acc004c130c168dd501344c9660020030518992cc0040060a5052899912cc0040060a913259800800c56600260c8005133048003225980080146600200719800911919800800801912cc004006297ae08998341ba73003375860d20026600400460d4002833a446076660cc9810b4a5369676e6174757265310033066306730643754004660cc98101400033066375200297ae091833183398339833800c8c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a41000800483090611b8d0019111919912cc004c16400a2b300130593067375400314c103d87a80008a6103d87980004195159800982c001456600260b060ce6ea80062980103d87a80008a6103d87b800041951332259800982d800c530103d87b80008acc004c14c006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041a08340dd6983698351baa0038a6103d8798000419c8338dd6983598341baa00330673754002832906518329baa001300200330010039b804800a460cc60ce60ce60ce60ce60ce60ce60ce0032232330010010032259800800c5284566002600660d200314a3133002002306a001418c833a6e952002918331833983398339833800c8c198c19cc19cc19cc19cc19cc19c005222222222229800929983619b96491165369675374727563747572652e636f6e746578743a200037326608260e260dc6ea8005220100153306c3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a2000373266082608c60dc6ea8005220100153306c3372c92011b5369675374727563747572652e65787465726e616c5f6161643a2000373266082609460dc6ea8005220100153306c3372c9201165369675374727563747572652e7061796c6f61643a2000373266082601460dc6ea800522010013253306d3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a20003732660846ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241b48368dc68009bae3071306e375400266e28c024dd7182318371baa0013371460126eb8c128c1b8dd500098049bae300a306e3754003232323233225980098320014528456600260c60051980099baf30763073375400298103d87b8000a50a5141c113233225980098338014528c56600260be00513322598009830983b9baa30503078375400d13371000400313371200400283a8dd6983c983b1baa00359800982f983a9baa304e3076375400f100189807800a0e68a5041cc8398c1ccdd50009bad30773074375400860ec60e66ea800507020e03070375400260e860ea00660e660e06ea8004c1c8004c1b8dd5000c8966002003148002260106600400460e6002838244646600200200644b30010018a508acc004cdd79838183a0009803998399ba90034bd704528c4cc008008c1d400506e20e448888c8cc896600260ca60e66ea817e26464646644b3001330063051307937540080cb1598009831183c1baa307c3233001001375860a460f46ea8c1f4c1e8dd5003112cc004006297ae1103d87a80008101800044c8cc896600330013067307d37546102020074a14a283da2661000330014a14c103d87a8000a60103d879800041ec66100026e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c20c0400400e294626600400461080200283e90810144cc20006600294298103d87a8000a60103d879800041ec66100026e9c0092f5c1133080019800a51a60103d87a8000a60103d879800041ec66100026e9ccc20004dd400080125eb8107b20f6375860fe6100020026eb4c1fc008cc008008c1fc00507c4566003300133010375860f860f26ea81948cdd7983e983d1baa307d307a375460a460f46ea8004c040cc1f0dd483925eb8294294507644c9660033001307d307e001801cc048c1e8dd50334dd59807183d1baa066402113300a3756601c60f46ea8198dd7183e800c54cc1e1241896578706563740a202020207361746973666965645f7061796c6f616473280a2020202020207065726d697373696f6e2c0a2020202020207369676e6174757265735f776974685f7061796c6f6164732c0a20202020202073656c662e76616c69646974795f72616e67652c0a20202020202073656c662e7769746864726177616c732c0a2020202029001641dc64b3001306b00189983e1ba90753307c307d307a375460fa60f46ea81312f5c11598009831800c4cc1f0dd483a9983e1829183d1baa307d307a375409897ae08acc004c17c0062660f86ea41d4cc1f0c038c1e8dd5183e983d1baa04c4bd70456600266e1d200e00189983e1ba90753307c3012307a375460fa60f46ea81312f5c11598009830800c4cc1f0dd483a1983e1807983d1baa307d307a375409897ae08acc004c1800062660f86ea41d0cc1f0c008c1e8dd5183e983d1baa04c4bd70456600260d800313307c37520e6660f8602c60f46ea8c1f4c1e8dd502625eb822b3001306a00189983e1ba90733307c3056307a375460fa60f46ea81312f5c1132598009836183d1baa0018acc004cdd79808183d9baa0674c101a00089983e983f183d9baa0013307d307e307f307f307f307f307f307f307f307f307f307b375460fc60f66ea81352f5c115330794911f6578706563742073656c662e6d696e74203d3d206173736574732e7a65726f001641e115330794913e65787065637420536f6d65286d6967726174696f6e5f76616c696461746f7229203d2073657474696e67732e72656769737472792e6d6967726174696f6e001641e0600460f46ea8c148c1e8dd502620ee41dc83b907720ee41dc83b9077183c1baa307c30793754009153307749013b657870656374206e6f5f7363726970745f696e7075742873656c662e696e707574732c207969656c645f6f7261636c655f76616c696461746f7229001641d91533077491466578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e672872656465656d65722e65787472612e696e7075745f746f5f726571756573747329001641d907041d86602a6eb0c14cc1dcdd50019191983d983e0011983d982a983c9baa0013307b375260186602c60f860f26ea800400d2f5c060f660f8002460f660f860f860f860f860f80026e50dd98009826983a9baa0013077307437540bf13232323259800998029828183c1baa0030648acc006600260f660f860f860f860f860f860f860f860f860f06ea8c1ecc1e0dd50254006602060f06ea81926eacc030c1e0dd5032200c8998041bab300c307837540c86eb8c034c1e0dd51828183c1baa04a8a9983b2481a06578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e7065726d697373696f6e732e7969656c645f6f7261636c652c0a2020202020207369676e6174757265735f776974685f7061796c6f6164732c0a20202020202073656c662e76616c69646974795f72616e67652c0a20202020202073656c662e7769746864726177616c732c0a2020202029001641d506f41d46602a6eb0c13cc1dcdd50019191983d983e0011983d982a983c9baa0013307b375260186602c60f860f26ea800400d2f5c060f660f80026e50dd9800983c183a9baa0013077307437540be83888888c8cc00400401488c96600260d40031325330783372c920121436865636b696e67205369676e617475726520666f72206b65795f686173683a200037326609a6ea4005220100132598009836183d1baa001899194c004dd7184000800cdd7184000984080800cdd71840008012444a660fc9211d466f756e64207369676e61747572652c20766572696679696e672e2e2e00153307e3372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660a66ea4005220100153307e3372c9201187665726966795f65643235353139207061796c6f61643a20003732660a66ea4009220100153307e3372c92011a7665726966795f65643235353139207369676e61747572653a20003732660a66ea400d22010013253307f3372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660a93001001a60103d87a8000a60103d879800041f891010010019800800c00a006b950c20004004dd6183f183d9baa0018a9983c99b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a200037326609c6ea400922010014a083c0c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c610002002009130543307f374e00297ae089980180198408080120f4375860fe00283e8dd7183e183c9baa0028acc004c188006264a660f066e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a200037326609a6ea0c0240052201001325330793372c92010e416c6c4f6620726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e0910100100132330010010022259800800c528c5660026600c00c60fe0031330020023080010018a5041e483e8dd6183e183c9baa0028acc004c1a4006264a660f066e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a200037326609a6ea0c0240052201001325330793372c92010e416e794f6620726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e0910100100133011001233005005001375860f860f26ea800a2b3001306b001899199129983d19b96490112436865636b696e672041744c656173743a200037326609e6ea000922010013253307b3372c92011941744c656173742073617469736669656420636f756e743a20003732660a06ea000522010013253307c3372c92011041744c6561737420726573756c743a20003732660a33001001a60103d87a8000a60103d879800041ec910100100133712006002646600200200444b30010018a400113322598009980500500144c064006200283e8c20404004cc008008c2080400507f1bad307d001375860fa60fc00260f26ea800a2b3001306000189929983c19b9649111436865636b696e67204265666f72653a200037326609a6ea00052201001325330793372c92010f4265666f726520726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232598009832983d9baa0018acc004c194c1ecdd5183f98400080144cdc49bad307f307c37540020071337106eb4c1fcc1f0dd5000801a0f28a5041e460fc00260f46ea8c148c1e8dd50031bad307c30793754005159800982f800c4c94cc1e0cdcb24910436865636b696e672041667465723a200037326609a6ea00052201001325330793372c92010e416674657220726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232598009832983d9baa0018acc004c194c1ecdd5183f98400080144cdc48019bad307f307c37540031337100066eb4c1fcc1f0dd5000a0f28a5041e460fc00260f46ea8c1f4c1e8dd50031bad307c307937540051325330783372c920111436865636b696e67205363726970743a200037326609a6ea40052201001325330793372c92010f53637269707420726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232330010010072259800800c528456600266ebc00cc1f0c20004006294626600400461020200283d107e18081983e1ba90014bd701bae307c3079375400483b107620ec41d883b1076183b9baa0012259800983298399baa002899198061bac307830753754004466ebcc1e4c1d8dd5000801183b983a1baa002899912cc004c02000629462b300130080028a508acc006600266ebe600260f260ec6ea800a60f260ec6ea800646464b300130623078375460f860fa00510018992cc004c18c00626020660f86ea0c04cdd6983e983d1baa0024bd70456600260d60031002880120ee41dc60f06ea8005076183d800983b9baa001404098103d87b8000a50a5141cd1980099baf98009827183b1baa0029827183b1baa001919192cc004c188c1e0dd5183e183e80144006264b30013063001898081983e1ba83053375a60fa60f46ea80092f5c11598009835800c400a200483b9077183c1baa00141d860f600260ee6ea8005010260103d8798000a50a5141cd14a0839907320e6307730743754004601860e86ea800507118010011057410113259800800c56600260a860c46ea8006264b300100182cc4c96600200305a82d44cc896600200305c8992cc0040060bb05d82ec4cc896600200305f8992cc0040060c106083044c96600260e0007159800803c186264b3001001831418a0c5062899912cc0040060c913259800800c1960cb065832c4c96600260ea00713010307501183320e4375c00283a8c1c80050701bae001307100841c860de00e836a0c28368dd6800c1810701836800a0d6375a00260d800505d41b460d40028340dd60009834801416a0b48350c19c00506518319baa00182c20c082c41620b105841a060ca004831a0aa830a0ab05582ac1550651831000a0c0375800260c200505282920c4305f001417460b66ea809a0a082c20a081ea0a082e20a10508284141060182e800a0b6375c00260b800482e8c1680050581bae0013059002416860ae00282a8dd7000982b00120ae305400141486eb8004c14c0090541828800a09e375c00260a00048288c13800504c18251baa01781fa08e81fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa09681fc0fe07f03f413c60980028250c13000a07b03d81ec0f504d1825000a090304a00281dc0ee07703b412c60900028230c12000a07303981cc0e50491823000a088304600281bc0de06f037411c60880028210c11000a06b03581ac0d50451821000a0803042002819c0ce067033410c608000281f0c10000a063031818c0c5041181f000a078303e002817c0be05f02f40fc607800281d0c0f000a05b02d816c0b503d181d000a0703036375400b02b40cd02b40dd02b815c0ae05681d8c0e0005036181c00140a6053029814a072303600140d0606c005027813c09e04e81b8c0d000503218181baa002812a05a222329800800c0120068008888c966002604e00313259800800c01a264b3001001803c01e00f0078992cc004c0f400e00b00840e86eb800503d181d000a07030363754007159800980f800c4c9660020030068992cc00400600f0078992cc004c0f400e26604200244b3001002803c4c966002003198008054006260046080006805201700b805c02d041181f001207880420743758003007803a07a303a00140e0606c6ea800e2b300130260018992cc00400600d13259800800c01e00f13259800981e801c4cc08400489660020050078992cc0040063300100a800c4c008c10000d00a402e01700b805a082303e00240f100840e86eb000600f00740f4607400281c0c0d8dd5001c566002605000313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b30013040003899812000912cc00400a01513259800800c6600201b001898011821801a01a807403a01d00e4110608200481fa01681e8dd6000c02a0148200c0f400503b1bad001303c002803a07a303a00140e0606c6ea800e2b3001301d0018992cc00400600d13259800800c01e00f0078992cc004c0f400e00b00840e86eb400600e81e8c0e8005038181b1baa0038acc004c070006264b300100180344c966002003007803c01e264b3001303d003802c02103a1bad001803a07a303a00140e0606c6ea800e2b3001301b0018992cc00400600d13259800800c01e00f007803c4c966002607a0070058042074375c00281e8c0e8005038181b1baa003802a06640cc8199033206640cc8198c0d0dd5001409204902481220683006302e3754646644a6605e66e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea40b522010013259800981198189baa00189929981899b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800981218199baa0018992cc0040062b300130263034375400313259800800c0b2264b3001001816c0b605b02d899912cc00400605f13259800981f0014401a06081d8c0f000503a1bae001303b00240f0607200281b8c0d4dd5000c0ad03240ae05702b815a074303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4601e60666ea8c02cc0ccdd5000981a98191baa0018a9981824814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640bc646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806981a9baa300d3035375400444b30010018a508acc004cdc79bae30390010328a51899801001181d000a06640dd1300b330360014bd7044cc00c00cc0e0009031181b000a06830010013758600e605e6ea806c896600200314bd7044cc0c8c0bcc0cc004cc008008c0d00050311800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100e206a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c817902f1bac3032002375a60600026466ec0dd418180009ba73031001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a606a003337149101023a200098008054c0d800600a805100a181c00144ca6002015303500199b8a489023a200098008054c0d8006600e66008008004805100a181c001206c303800140d466e29220102207d0000340c86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900b20643758007133005375a0060051323371491102682700329800800cc02cdc68014cdc52450127000044004444b300133710004900044006264664530010069808002ccdc599b800025980099b88002480522903045206e40d066e2ccdc0000acc004cdc4000a4029148182290372068004401866e0c00520203370c002901019b8e00400240c46eb800d0351b8a4881022c200022323300100100322598009810000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000340b08160c01401491111112cc004c07003a264b300100181044c96600200315980098188014566002603c60586ea8006264b300100181144c96600200313259800800c092264b30010018992cc00400604d13259800800c09e04f13259800981c001c566002604a60666ea801a264b3001001814c4c96600200302a81544cc896600200302c8992cc00400605b02d899912cc00400605f13259800800c0c2061030899912cc00400606513259800800c0ce067033899912cc00400606b13259800800c4c9660020030378992cc0040062b30013048002899816007112cc00400a26605c01a44b30010028cc00401e330010058acc004c0e4c11cdd500c44c96600200303d8992cc004006264b300100181fc4c966002003159800982800144cc8966002607e00313259800800c10e264b30010018224112264b3001305500389981c800912cc00400a00f13259800800c66002003130023058003824205a8244122091048416460ac00482a208a8290dd6000c11208882a8c14800505018271baa0058acc004c0dc006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840b5048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b159800981f000c4c9660020030438992cc0040060890448992cc004c15400e26607200244b3001002803c4c96600200319800800c4c008c16000e09081720910488244121059182b00120a8822a0a4375800304482220aa30520014140609c6ea80162b300130400018992cc00400608713259800800c1120891332259800800c11a264b30010018acc004c15c00a26607600644b30010028acc004c118c150dd5001c4c96600200304a8992cc00400609704b825c4cc896600200304d8992cc00400609d04e82744c96600260be00700f827a0b8375a00304e417c60b800282d0dd6800982d801412d05c182c800a0ae30553754007049414913259800800c6600200313002305a0038252060825412a09504a416c60b000482b208e82a208f047823c11d058182a800a0a6375800260a800504482220aa30520014140609c6ea80162b300130350018992cc00400608713259800800c11208913259800982a801c4cc0e400489660020050078992cc0040063300100189801182c001c12102f412209104882420b23056002415104541486eb0006089044415460a40028280c138dd5002c566002606800313259800800c10e264b30010018224112264b3001305500389981c800912cc00400a00f13259800800c66002003130023058003824205e8244122091048416460ac00482a208a8290dd6000c11208882a8c14800505018271baa0058acc004c0cc006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840c1048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b15980099b8748038006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840c1048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b15980099b87480400062b3001304e375400b002821209e8212096412c825904b2096412c825904b209619800800c4cc0d006489660020050248992cc0040060870438992cc00400608913259800800c11608b045822c4cc89660020030478992cc0040062b300130580028cc0040062600e60b001104840b10484155048824412209082c8c1580050541bae0013055002415860a60028288dd6000c10e08682a0c14400904f410102318259baa003820209a82041020810404144609c0028260c13800a07d03e81f40f904f1826000a0943048375403103c411503c409d03c409d13259800800c0f607b03d899180198270021bad00181ea09c304b002412513259800800c0ee07703b899180198260021bad00181da0983049002411d038411503881c40e20708248c118005044182300140da06d03681b208e304400141086eb4004c10c00a0668220c10400503f1bad00130400028182082303e00140f06eb0004c0f400a05b02d40f8607600281c8dd6000981d00140aa05481d8c0e0005036181a1baa0068142062814206a3758003027813a070303500140cc606a005025812c09604a81b0c0cc0050311819801408e047023811a068303100140bc605a6ea800604281520428172043021810c0850321817800a05a302b375402d159800980a00744c9660020030208992cc0040062b300130310028acc004c078c0b0dd5000c4c9660020030228992cc004006264b300100181244c966002003025812c4c966002606c007159800981198189baa0048992cc00400604f13259800800c4c9660020030298992cc0040062b3001303a0028acc004c09cc0d4dd5001c4c96600200302b8992cc004006264b3001001816c4c96600200302e81744cc89660020030308992cc004006063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c0de06f037899912cc00400607313259800800c0ea07503a8992cc004c12c00e2b300130383046375402113259800800c0f2264b300100181ec0f607b1332259800800c0fe264b30010018204102081132598009828801c5660020270418992cc00400608504282144cc89660020030448992cc00400608b045822c4c96600260ac00715980080ac11a264b3001001823c11e08f1332259800800c126264b3001001825412a09513259800982d801c6600204513303f026225980080140be264b3001001827413a264b3001001827c4c96600200305082841420a11332259800800c14a264b30010018acc004c18c00a33001001898039831804414d037414d060414e0a7053829a0c83061001417c6eb8004c180009061182f000a0b8375800304e82720be305c002416904b40b904b41606eb400609482d8c1600050561bad0013057016823a0b03055015414d046414c6eb400608a82b0c14c0050511bad001305201482120a63050013413904141386eb40060808288c13800504c1bad001304d00281ea09c304b0014124608e6ea804207682220768240dd6800c0e904b1824000a08c375a002608e0050374120608a0028218dd6800982200140d10451821000a08037580026082005031818a084303f00140f46eb0004c0f800a05d02e40fc607800281d0c0f000a05902c81640b103d181d000a0703036375400702a40cd02a40dd02a81540aa05481d8c0e0005036181c00140a20510288142072303600140d060646ea801204c817a04c8198dd6000c09604a81b0c0cc0050311819801408e047023811a068303100140bc605a6ea800604281520428172043021810c0850321817800a05a302b375402d01f40a08140444b300130173025375400713259800800c00a264b30010018992cc00400600913259800800c566002605c00519800801c4c966002603800315980098159baa002803c01902c4566002602800313259800800c01e264b300100180440220110088992cc004c0c800e01500940bc6eb80050321817800a05a302b3754005159800980d800c4c9660020030078992cc004c0c400a01300840b8605e0028168c0acdd50014019028205040a060526ea800600a804200a815a00b005802c01502f1816000a054302c002801c00e00700340b460540028140c098dd5001c0050231112cc004c058c090dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981680146600200713259800980d800c4c9660020030078992cc0040062b300130300028992cc004c078006264b300100180544c966002003159800981980146600200300c805a020805a060805c02e01700b40d060620028178c0b4dd50014566002602c00313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c04602313259800981d001c04e02481b8dd6800c04503a181b800a06a375a002606c00500e40dc60680028190dd68009819801402d0341818800a05e302d375400500940a88150c0acdd5000c02102d40220110088042062302e00140b060546ea800a2b300130130018acc004c0a8dd5001401e00c815a00c813902718141baa001802a014802a054802c01600b00540b860560028148c0ac00a007003801c00d02c1814800a04e302537540070014088402e01700b805a0383019301637540091598009804001c4c8c9660026012602e6ea8c06cc07000a294629410151bad301a0013016375400916404c8098602a602c002602a0088a4d153300b49011856616c696461746f722072657475726e65642066616c7365001365640281" + : "5919cb0101002222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0069bae0059bae0049bae0039bae00248888888888896600330013008375401b370e90034dc3a4001370e90022444464653001300d3754003301100698088012444b300130060038cc004c050c044dd50024dc3a4005223233001001003223300300130020029b87480226e1d200a9b874803244b300130093012375400513232332259800980d801c0162c80c0dd6980c0009bae301800230180013013375400516404530103754002911111114c00488c96600260240031323259800981100140122c80f8dd71810000980e1baa0038acc004c0280062b3001301c37540070028b203a8b2034406860346ea800a4464b30013012001899192cc004c08800a00916407c6eb8c080004c070dd5001c56600260140031323259800981100140122c80f8dd71810000980e1baa0038b2034406860346ea800a44b30013011301a3754005132323259800981100144c8c966002602c00315980098101baa0028034590214566002601c0031323259800981300140222c8118dd6981200098101baa0028acc004c0540062b3001302037540050068b20428b203c407880f0c078dd50009810801c5901f192cc004c0780062b3001337129002180e800c5a26018603a00280e22c80f8dd518100009810000980d9baa0028b203291192cc004c04800626464b3001302200280245901f1bad3020001301c37540071598009805000c56600260386ea800e00516407516406880d0c068dd500124444646530012259800980b98101baa002899191919912cc004c0a800e266010605200a26601e00400d16409c604e0026eb4c09c008c09c004c098004c084dd500145901f48966002602e60406ea800a264646464653001375a6052003375a6052009375a605200730290024888966002605c00b13300c302d00913301300100a8b2056181480098140009813800981300098109baa0028b203e912cc004c05cc080dd500144c8c8c8c8c8ca60026eb0c0a80066eb4c0a80166eb4c0a80126eb4c0a800e6054004911112cc004c0c001a26601c605e01626602a0022646644b30013033003807c590301bae3030001375c606000c606000b1640b4302a00130290013028001302700130260013021375400516407d2259800980b98101baa002899191919194c004dd61814800cdd698148024dd69814801cc0a40092222598009817002c4cc030c0b40244cc04c0044c8cc8966002606200700d8b205c375c605c0026eb8c0b8014c0b80122c815860520026050002604e002604c00260426ea800a2c80fa44b300130173020375400513232323259800981480144c9660026038604a6ea8006264646644b3001302e003899808981680400545902b1bae302b001375c60560046056002604c6ea80062c8120c0a00122c8130dd718138009813800981300098109baa0028b203e91192cc004c060006264b300130270018998061813000801c5902418111baa0038acc004c040006264b300130270018992cc004c068c08cdd5000c4c8c8c966002605600513300c302a00313300c0010078b20503029001302900130243754003164088604c00316409060446ea800e2c810102018101baa0028cc0048c08cc090c090006460466048003374a90004888c96600260320031323259800981480140122c8130dd7181380098119baa0038acc004c044006264b300130280018998089bac30270012259800801401633001007981480144c004c0a8009007204e8b204a30233754007159800980c000c4c96600260500031330113758604e00244b3001002802c6600200f3029002898009815001200e409d16409460466ea800e2b3001301a00189919912cc004c0a80062660266eb0c0a400489660020050078cc004026605600513001302c0024024814a2c8138dd69813800981400098119baa0038acc004c03c00626464b300130290028024590261bad3027001302337540071598009807000c4c8c96600260520050048b204c375a604e00260466ea800e2b3001300d001899192cc004c0a400a0091640986eb8c09c004c08cdd5001c590212042408481090212042408460426ea80092222332259800980d98121baa002899191919912cc004c0b800e264b30013021302a37540031323232323232323232329800981c000cc0e002660700113038007981c0034c0e001660700093038003981c0012444444444b3001304200a89980d182080989980d00409980d00389980d00309980d00289980d00209980d00189980d00109980d00089980d0048acc004c0d0c0f4dd500ac4c8c8c8c8ca60026eb8c118006608e003375c608c00b375c608c009375c608c007375c608c0049111112cc004c134016266060609800a2b3001303f30483754043132323259800982800144cc0e4dd61827801912cc00400a266062006330012232330010010032259800800c52f5c1133054374e60066eb0c154004cc008008c158005053488c0bccc14930010b4a5369676e6174757265310033052305330503754004660a498101400033052375200297ae09192cc004cdc4800a405d13371666e012080010010028acc004cdc4800a41fc0713371690580099b8b001002899b8b482c804cdc599b830014820010cdc599b86001482001000904e209c371a003230523053305330530019111919912cc004c12800a2b3001304a3053375400314c103d87a80008a6103d8798000414915980098248014566002609260a66ea80062980103d87a80008a6103d87b8000414913322598009826000c530103d87b80008acc004c110006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000415482a8dd6982c982b1baa0038a6103d8798000415082a0dd6982b982a1baa00330533754002829105218289baa001300200330010039b804800a460a460a660a660a660a660a660a660a60032232330010010032259800800c5284566002600660aa00314a313300200230560014140829a6e952002918291829982998299829800c8c148c14cc14cc14cc14cc14cc14c005222222222229800919b8a489018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002416882d0dc68009bae305d305a375400266e28c028dd7181d182d1baa0013371460146eb8c0ecc168dd500098051bae3009305a37540032323232332259800982a8014528456600260a80051980099baf3062305f375400298103d87b8000a50a514175132332259800982c0014528c56600260a00051332259800982918319baa30443064375400d1337100040031337120040028310dd6983298311baa00359800982818309baa30423062375400f100189807800a0c08a5041808300c17cdd50009bad30633060375400860c460be6ea800505d20ba305c375400260c060c200660be60b86ea8004c178004c168dd5000c8888c8cc00400401488c96600260ac0031323259800982c18309baa001899194c004dd718338014dd718339834000cdd71833800ae5460ce0026eb0c194c188dd5000c52820c032330010010082259800800c5300103d87a80008992cc004cdc79bc8375c60ce0020091304333066374e00297ae0899801801983400120c4375860cc0028320dd7183198301baa0028acc004c138006264660020026eb0c190c184dd5001912cc00400629462b30013300500530650018998010011833000c52820c0418d159800982a800c4cc02cdd6183198301baa0022330040040018acc004c15c00626466e24dd6983200099198008009bac306530660022259800800c52000899912cc004cc02002000a260240031001418c60cc0026600400460ce0028320c180dd500145660026098003132332259800982898311baa0028acc004c144c188dd518331833801c4cdc49bad3066306337540040031337106eb4c198c18cdd5001000a0c28a50418460c80026eb4c190c184dd500198301baa30403060375400b1598009825800c4c8cc896600260a260c46ea800a2b300130513062375460cc60ce0071337120026eb4c198c18cdd500144cdc40009bad306630633754004830a294106118320009bad30643061375400660c06ea8c18cc180dd5002c4c8c8cc004004018896600200314a115980099baf003306230660018a518998010011833800a0c241906014660c460c660c06ea80092f5c082f105e20bc417882f105e182f1baa001911919800800801912cc00400629422b30013375e60b860c0002600e660be6ea400d2f5c114a31330020023061001416c82f122223259800982a182e9baa04e8991919912cc004cc014c108c188dd5001829c56600260a060c26ea8c194c8cc004004dd6182198319baa30663063375400a44b30010018a5eb84103d87a80008101800044c8cc8966003300130553066375460d40074a14a2832a2660d330014a14c103d87a8000a60103d87980004194660d26e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c1b000400e294626600400460da002833906a44cc1a6600294298103d87a8000a60103d87980004194660d26e9c0092f5c11330699800a51a60103d87a8000a60103d87980004194660d26e9ccc1a4dd400080125eb8106520ca375860d060d20026eb4c1a0008cc008008c1a0005065456600330013300d375860ca60c46ea814c8cdd7983318319baa306630633754608660c66ea8004c034cc194dd482e25eb8294294506044c9660033001306630670019980a9bac30443063375400a464660ce60d0004660ce608c60ca6ea8004cc19cdd498061980b183418329baa0010054bd7018339834000cc03cc18cdd502a4dd5980598319baa05440211330073756601660c66ea8150dd71833000c59061192cc004c1640062660ca6ea417ccc194c198c18cdd5183318319baa0404bd70456600260a200313306537520be660ca608660c66ea8c198c18cdd502025eb822b3001304d0018998329ba905f33065300b3063375460cc60c66ea81012f5c115980099b87480380062660ca6ea417ccc194c03cc18cdd5183318319baa0404bd704566002609e00313306537520bc660ca601860c66ea8c198c18cdd502025eb822b3001304e0018998329ba905e3306530023063375460cc60c66ea81012f5c1159800982d000c4cc194dd482e99832980918319baa30663063375408097ae08acc004c1600062660ca6ea4174cc194c110c18cdd5183318319baa0404bd7044c96600260b460c66ea80062b30013375e601a60c86ea8155300101a000899833183398321baa0013306630673068306830683068306830683068306830683064375460ce60c86ea81052f5c1164189164188600460c66ea8c10cc18cdd502020c24184830906120c24184830906118309baa3065306237540071641811641811641806e50dd98009183218329832983298329832800981f982f9baa0013061305e375409d13232325980099802182098309baa0020528acc006600260c860ca60ca60ca60ca60ca60ca60ca60ca60c26ea8c190c184dd501f4cc04cdd6182098309baa00323233065306600233065304430633754002660ca6ea4c028cc050c198c18cdd5000801a5eb80c194c198006601a60c26ea814a6eacc024c184dd5029200c8998029bab3009306137540a46eb8c028c184dd5182098309baa03e8b20be8b20be37286ecc004c188c17cdd50009830982f1baa04e417044b30013055305e37540051323300b375860c660c06ea80088cdd7983218309baa0010023062305f375400513322598009803800c528c566002600e00514a1159800cc004cdd7cc004c190c184dd50014c190c184dd5000c8c8c96600260a460c66ea8c19cc1a000a2003132598009829800c4c03ccc19cdd418091bad30683065375400497ae08acc004c16c00620051002418c8318c18cdd5000a0c43066001306237540028079300103d87b8000a50a51417d1980099baf9800982098309baa002982098309baa001919192cc004c148c18cdd51833983400144006264b3001305300189807998339ba8337006eb4c1a0c194dd50012400297ae08acc004c16c00620051002418c8318c18cdd5000a0c43066001306237540028079300103d8798000a50a51417d14a082f905f20be3062305f3754004601660be6ea800505d113259800982298271baa001899191919912cc004c16000e264646644b3001305c00389805982e0064590591bae3059001375c60b200460b20026eb0c15c0162c82a8dd6982a8009bad305500230550013054001304f375400316413460a2004827a2c8268c138004c138004c124dd5010c5904745904a0c118004c114004c110004c10c004c0f8dd500ac5903c45903f0c0e0004c0dc004c0d8004c0d4004c0d0004c0cc004c0c8004c0c4004c0c0004c0acdd5000c590291816802c5902b181580098158011815800981500098129baa0028b2046300330233754646464b3001301c3025375400313259800980e18131baa0018992cc004c078c09cdd5000c4c8c8cc8966002606000710058b205a302d001375c605a004605a00260506ea80062c8130c0a8c09cdd5000c59025180398131baa3006302637546052604c6ea80062c8120c8cc004004dd6180318131baa0172259800800c5300103d87a80008992cc004c8cc004004c014dd5980498149baa30093029375400444b30010018a508acc004cdc79bae302d0010278a518998010011817000a05040ad130073302a0014bd7044cc00c00cc0b00090261815000a05030010012259800800c52f5c113302730243028001330020023029001409860020024888888966002603801d132598009815800c4c966002603c604e6ea800626464646644b300130310038992cc004c090c0b4dd5000c4c8c8c8c8c8ca6002606e0033758606e00b375a606e009375a606e007303700248888966002607a00d1330263758607801644b3001002899814003112cc00400a26604200a2660420122b30013033303c3754023132323259800982200144c8cc89660026072005132598009824000c4cc0c4dd61823800912cc00400a009133024304900213001304a002411d16411460866ea800e2b300130310028992cc004c1200062660626eb0c11c00489660020050048998121824801098009825001208e8b208a30433754007159800981c00144c96600260900031330313758608e00244b300100280244cc094c1240084c004c12800904745904518219baa0038acc004c0e800a2646464b3001304a0028998199bac304900322598008014566002607c608e6ea800e264646644b3001305000380545904d1bad304d001375a609a004609a00260906ea800e2c823226604e6096004260026098004824a2c8238c120004c120004c10cdd5001c566002605e005132598009824000c4cc0c4dd61823800912cc00400a009133026304900213001304a002411d16411460866ea800e2b3001302e0028992cc004c1200062660626eb0c11c00489660020050048998131824801098009825001208e8b208a30433754007159800981680144c96600260900031330313758608e00244b300100280244cc09cc1240084c004c12800904745904518219baa0038acc004cdc3a401c005132598009824000c4cc0c4dd61823800912cc00400a009133027304900213001304a002411d16411460866ea800e2b30013370e9008001456600260866ea800e00316411116410482090412082410482090412082410460806ea80044cc0740084cc0b8058896600200501e89919912cc004c128006266046609200226008609400b16411c6eb8c11c004c120004dd61823001208830430038b208230420013042001303d37540231640ed13230023042003375a608000481f2264600460800066eb4c0f800903c45903a0c0dc004c0d8004c0d4004c0d0004c0cc004c0b8dd5000c5902c1818002c5902e1bac302e001302e002302e001302d0013028375400316409860540031640a0604c6ea805a2b3001301400e8992cc004c0ac006264b3001301e30273754003132323259800981780144c966002604460566ea800626464b300130320018992cc004c094c0b8dd5000c4c8c8c8c8c8ca60026eb4c0e00066eb0c0e00166eb0c0e00126eb4c0e000e6eb4c0e00092222259800981f00344c966002606260746ea8006264646644b3001304300389919912cc004c11800e2646644b30013049003899810982400c09981900d912cc00400a0451323322598009827000c4cc09cc1340044c010c1380162c8258dd7182580098260009bac304a00241211641186eb4c118004dd698230061823005c590431bad3043001375a608601460860131641006eb4c100004dd698200011820000981d9baa0018b2072303d00b8b2076181c000981b800981b000981a800981a00098179baa0018b205a30310028b205e3031001302c37540031640a8605c0071640b06eb0c0b4004c0b4004c0a0dd5000c590261815000c5902818131baa0168b204840902259800980b180f9baa00289919192cc004c09c00a26600c604c006264b3001301a0018acc004c090dd500140162c812a2b30013012001899192cc004c0a800a00f16409c6eb8c0a0004c090dd50014566002603200313232598009815001401e2c8138c0a0004c090dd50014590222044408860446ea80062c8120c094004c094004c080dd500145901e112cc004c054c078dd500144c8c8c966002604c005133008302500313259800980c800c4c96600260500031323259800980e000c4c966002605600313300d302a0010098b205030263754005159800980a000c4c8c8ca60026eb4c0b00066eb4c0b000e6eb4c0b0009222598009818002403a2c816860580026056002604c6ea800a2c812102418121baa00130270018b204a302337540051598009808800c56600260466ea800a00b1640911640848108c084dd5000c5902318120009812000980f9baa0028b203a22b30013008003899192cc004c024c048dd5180b180b8014528c5282022375a602a00260226ea80122c807900f0c040c044004c040011149a26cac80301", + Type.Tuple([PolicyId, ScriptHash, ScriptHash, ScriptHash, ScriptHash]), + [ + proxyPolicyId, + mintValidator, + stakeValidator, + managementValidator, + yieldOracleValidator, + ], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolOrchestratorProtocolOrchestratorPublish { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + yieldOracleValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59339c0101002222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0069bae0059bae0049bae0039bae00248888888888888a60022a6600e92012f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c662900168a99803a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99803a492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a99803a492872656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631001648889660033001300d3754027370e90034dc3a4001370e90022444464653001301237540033016006980b0012444b300130060038992cc00400a33001370e9001488c8cc00400400c88cc00c004c00800a6e1d20089b874802a6e1d200c9112cc004c02cc064dd5001c4c9660020030028992cc004006007003801c00e26644b3001001802c4c966002003006803401a264b30013024003804401d0211bad00180320483021001407c6eb8004c080009021180f000a038301a3754007001405d3016375400491111114c004888c966002602600313259800800c00e264b300100180240120090048992cc004c0a400e00d00540986eb80050291813000a048302237540091598009805800c56600260446ea8012007002408d002407c80f8c080dd5001c888c966002602600313259800800c00e264b300100180240120090048992cc004c0a400e00d00540986eb80050291813000a048302237540091598009805800c4c9660020030038992cc0040060090048024012264b3001302900380340150261bae00140a4604c0028120c088dd5002400901f203e3020375400722259800980918101baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300130260018acc004cdc4a4008604a0030068992cc004c0ac012264b300130190018acc004c0a0dd50034026010814a2b300130110018992cc00400601313259800800c02a01500a8992cc004c0bc00e01900b40b06eb40060148178c0b000502a18141baa0068acc004c0600062b30013028375400d0098042052804204a40948128c098dd5002c01d02818079812800a046803204e3754003005802c01600a8150c09c0050251813801400e007003801a0503025001408c60426ea800e00280f244464b300130130018992cc00400600713259800800c0120090048992cc004c0a400e00d00540986eb40060088148c09800502418111baa0048acc004c02c0062b3001302237540090038012046801203e407c60406ea800d2222323298009112cc004c060c098dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003159800981900146600200d19800800c0260108092010805a010817a01100880440210331818000a05c375a002605e00500540c0605a0028158c0b400a007003801c00d02e1815800a05230273754007001409122259800980c18131baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c036264b300130380038cc00403233001004807c039018403901140390351bad001806a070303500140cc606a00500b805c02e01681b0c0cc0050311bad00130320028042066303000140b86eb4004c0bc00a00a8180c0b400502b1816801400e007003801a05c302b00140a4604e6ea800e0028122444b300130183026375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c02e01700b899912cc00400601b13259800800c4c96600200300f8992cc0040060210108992cc004c0ec00e3300100f8cc0040122b3001001808c4c966002003012809404a0251332259800800c052264b300100180ac05602b0158992cc004c10000e02f01640f46eb8005040181e800a076375c002607800481e8c0e8005038404501b404501440450381bac001808404103b181c000a06c3038002807403a01d00e40e4606c00281a0dd6800981a801402d0361819800a062375a002606400500840cc60600028170dd6800981780140150301816800a056302d002801c00e00700340b860560028148c09cdd5001c0050244889660026030604c6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b13259800981c001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a02513259800981e801c05202681d0dd7000a07a303a00140e06eb8004c0e400903a181b800a06a80720308072022807206a375800300d806a070303500140cc606a00500b805c02e01681b0c0cc0050311bad00130320028042066303000140b86eb4004c0bc00a00a8180c0b400502b1816801400e007003801a05c302b00140a4604e6ea800e0028122444b300130183026375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc00400600f007803c01e264b300130320038acc004c07cc0b4dd500344c9660020030098992cc00400601500a805402a26644b300100180644c96600200300d806c03601b13259800981c001c6600201500f807202c807206a375c00281c0c0d40050331bae001303400240d460640028180c0b8dd5003402102b402102f1bae00140c8605e0028168c0bc00a00b005802c0150301816800a056302d002801c00e00700340b860560028148c09cdd5001c0050244888c966002603200313259800800c00e264b30010018acc004c0b800a33001001802c01100e401102b4012009004802205e302c00140a860506ea80122b300130110018992cc00400600713259800800c566002605c005159800980d98149baa0018992cc00400600b13259800800c4c9660020030078992cc0040062b300130320028cc00400e33001001804c02100e402100e402102f40220110088042066303000140b86060005006803401a00c8188c0b800502c18151baa001802204e8022056802401200900440bc60580028150c0a0dd50024009025204a30263754007198009181418149814800c8896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801902448888c8cc004004014896600200310058992cc004006266008605c00400d133005302e0023300300300140b0605c002815a6e012001918141814800cdd2a400091111119191919192cc004006264b30013021302f375400513259800800c09a264b30010018992cc00400605113259800800c4c96600200302a8992cc0040062b3001303a0028acc004c09cc0d4dd5002c4c96600200302c8992cc004006264b300100181744c96600200313259800800c0c2264b30010018992cc00400606513259800800c4c9660020030348992cc004006264b300100181b44c96600200313259800800c0e2264b30010018992cc00400607513259800800c4c96600200303c8992cc004006264b300100181f44c966002003159800982700146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607660926ea805e264b300100182044c966002003041820c1060831332259800800c10e264b30010018224112089044899912cc00400608d13259800800c11e08f047823c4cc89660020030498992cc00400609504a825412a26644b300100182644c96600200304d826c13609b1332259800800c13e264b30010018acc004c17c00a330010018acc004c130c168dd501344c9660020030518992cc0040060a5052899912cc0040060a913259800800c56600260c8005133048003225980080146600200719800911919800800801912cc004006297ae08998341ba73003375860d20026600400460d4002833a446076660cc9810b4a5369676e6174757265310033066306730643754004660cc98101400033066375200297ae091833183398339833800c8c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a41000800483090611b8d0019111919912cc004c16400a2b300130593067375400314c103d87a80008a6103d87980004195159800982c001456600260b060ce6ea80062980103d87a80008a6103d87b800041951332259800982d800c530103d87b80008acc004c14c006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041a08340dd6983698351baa0038a6103d8798000419c8338dd6983598341baa00330673754002832906518329baa001300200330010039b804800a460cc60ce60ce60ce60ce60ce60ce60ce0032232330010010032259800800c5284566002600660d200314a3133002002306a001418c833a6e952002918331833983398339833800c8c198c19cc19cc19cc19cc19cc19c005222222222229800929983619b96491165369675374727563747572652e636f6e746578743a200037326608260e260dc6ea8005220100153306c3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a2000373266082608c60dc6ea8005220100153306c3372c92011b5369675374727563747572652e65787465726e616c5f6161643a2000373266082609460dc6ea8005220100153306c3372c9201165369675374727563747572652e7061796c6f61643a2000373266082601460dc6ea800522010013253306d3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a20003732660846ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241b48368dc68009bae3071306e375400266e28c024dd7182318371baa0013371460126eb8c128c1b8dd500098049bae300a306e3754003232323233225980098320014528456600260c60051980099baf30763073375400298103d87b8000a50a5141c113233225980098338014528c56600260be00513322598009830983b9baa30503078375400d13371000400313371200400283a8dd6983c983b1baa00359800982f983a9baa304e3076375400f100189807800a0e68a5041cc8398c1ccdd50009bad30773074375400860ec60e66ea800507020e03070375400260e860ea00660e660e06ea8004c1c8004c1b8dd5000c8966002003148002260106600400460e6002838244646600200200644b30010018a508acc004cdd79838183a0009803998399ba90034bd704528c4cc008008c1d400506e20e448888c8cc896600260ca60e66ea817e26464646644b3001330063051307937540080cb1598009831183c1baa307c3233001001375860a460f46ea8c1f4c1e8dd5003112cc004006297ae1103d87a80008101800044c8cc896600330013067307d37546102020074a14a283da2661000330014a14c103d87a8000a60103d879800041ec66100026e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c20c0400400e294626600400461080200283e90810144cc20006600294298103d87a8000a60103d879800041ec66100026e9c0092f5c1133080019800a51a60103d87a8000a60103d879800041ec66100026e9ccc20004dd400080125eb8107b20f6375860fe6100020026eb4c1fc008cc008008c1fc00507c4566003300133010375860f860f26ea81948cdd7983e983d1baa307d307a375460a460f46ea8004c040cc1f0dd483925eb8294294507644c9660033001307d307e001801cc048c1e8dd50334dd59807183d1baa066402113300a3756601c60f46ea8198dd7183e800c54cc1e1241896578706563740a202020207361746973666965645f7061796c6f616473280a2020202020207065726d697373696f6e2c0a2020202020207369676e6174757265735f776974685f7061796c6f6164732c0a20202020202073656c662e76616c69646974795f72616e67652c0a20202020202073656c662e7769746864726177616c732c0a2020202029001641dc64b3001306b00189983e1ba90753307c307d307a375460fa60f46ea81312f5c11598009831800c4cc1f0dd483a9983e1829183d1baa307d307a375409897ae08acc004c17c0062660f86ea41d4cc1f0c038c1e8dd5183e983d1baa04c4bd70456600266e1d200e00189983e1ba90753307c3012307a375460fa60f46ea81312f5c11598009830800c4cc1f0dd483a1983e1807983d1baa307d307a375409897ae08acc004c1800062660f86ea41d0cc1f0c008c1e8dd5183e983d1baa04c4bd70456600260d800313307c37520e6660f8602c60f46ea8c1f4c1e8dd502625eb822b3001306a00189983e1ba90733307c3056307a375460fa60f46ea81312f5c1132598009836183d1baa0018acc004cdd79808183d9baa0674c101a00089983e983f183d9baa0013307d307e307f307f307f307f307f307f307f307f307f307b375460fc60f66ea81352f5c115330794911f6578706563742073656c662e6d696e74203d3d206173736574732e7a65726f001641e115330794913e65787065637420536f6d65286d6967726174696f6e5f76616c696461746f7229203d2073657474696e67732e72656769737472792e6d6967726174696f6e001641e0600460f46ea8c148c1e8dd502620ee41dc83b907720ee41dc83b9077183c1baa307c30793754009153307749013b657870656374206e6f5f7363726970745f696e7075742873656c662e696e707574732c207969656c645f6f7261636c655f76616c696461746f7229001641d91533077491466578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e672872656465656d65722e65787472612e696e7075745f746f5f726571756573747329001641d907041d86602a6eb0c14cc1dcdd50019191983d983e0011983d982a983c9baa0013307b375260186602c60f860f26ea800400d2f5c060f660f8002460f660f860f860f860f860f80026e50dd98009826983a9baa0013077307437540bf13232323259800998029828183c1baa0030648acc006600260f660f860f860f860f860f860f860f860f860f06ea8c1ecc1e0dd50254006602060f06ea81926eacc030c1e0dd5032200c8998041bab300c307837540c86eb8c034c1e0dd51828183c1baa04a8a9983b2481a06578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e7065726d697373696f6e732e7969656c645f6f7261636c652c0a2020202020207369676e6174757265735f776974685f7061796c6f6164732c0a20202020202073656c662e76616c69646974795f72616e67652c0a20202020202073656c662e7769746864726177616c732c0a2020202029001641d506f41d46602a6eb0c13cc1dcdd50019191983d983e0011983d982a983c9baa0013307b375260186602c60f860f26ea800400d2f5c060f660f80026e50dd9800983c183a9baa0013077307437540be83888888c8cc00400401488c96600260d40031325330783372c920121436865636b696e67205369676e617475726520666f72206b65795f686173683a200037326609a6ea4005220100132598009836183d1baa001899194c004dd7184000800cdd7184000984080800cdd71840008012444a660fc9211d466f756e64207369676e61747572652c20766572696679696e672e2e2e00153307e3372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660a66ea4005220100153307e3372c9201187665726966795f65643235353139207061796c6f61643a20003732660a66ea4009220100153307e3372c92011a7665726966795f65643235353139207369676e61747572653a20003732660a66ea400d22010013253307f3372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660a93001001a60103d87a8000a60103d879800041f891010010019800800c00a006b950c20004004dd6183f183d9baa0018a9983c99b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a200037326609c6ea400922010014a083c0c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c610002002009130543307f374e00297ae089980180198408080120f4375860fe00283e8dd7183e183c9baa0028acc004c188006264a660f066e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a200037326609a6ea0c0240052201001325330793372c92010e416c6c4f6620726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e0910100100132330010010022259800800c528c5660026600c00c60fe0031330020023080010018a5041e483e8dd6183e183c9baa0028acc004c1a4006264a660f066e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a200037326609a6ea0c0240052201001325330793372c92010e416e794f6620726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e0910100100133011001233005005001375860f860f26ea800a2b3001306b001899199129983d19b96490112436865636b696e672041744c656173743a200037326609e6ea000922010013253307b3372c92011941744c656173742073617469736669656420636f756e743a20003732660a06ea000522010013253307c3372c92011041744c6561737420726573756c743a20003732660a33001001a60103d87a8000a60103d879800041ec910100100133712006002646600200200444b30010018a400113322598009980500500144c064006200283e8c20404004cc008008c2080400507f1bad307d001375860fa60fc00260f26ea800a2b3001306000189929983c19b9649111436865636b696e67204265666f72653a200037326609a6ea00052201001325330793372c92010f4265666f726520726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232598009832983d9baa0018acc004c194c1ecdd5183f98400080144cdc49bad307f307c37540020071337106eb4c1fcc1f0dd5000801a0f28a5041e460fc00260f46ea8c148c1e8dd50031bad307c30793754005159800982f800c4c94cc1e0cdcb24910436865636b696e672041667465723a200037326609a6ea00052201001325330793372c92010e416674657220726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232598009832983d9baa0018acc004c194c1ecdd5183f98400080144cdc48019bad307f307c37540031337100066eb4c1fcc1f0dd5000a0f28a5041e460fc00260f46ea8c1f4c1e8dd50031bad307c307937540051325330783372c920111436865636b696e67205363726970743a200037326609a6ea40052201001325330793372c92010f53637269707420726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232330010010072259800800c528456600266ebc00cc1f0c20004006294626600400461020200283d107e18081983e1ba90014bd701bae307c3079375400483b107620ec41d883b1076183b9baa0012259800983298399baa002899198061bac307830753754004466ebcc1e4c1d8dd5000801183b983a1baa002899912cc004c02000629462b300130080028a508acc006600266ebe600260f260ec6ea800a60f260ec6ea800646464b300130623078375460f860fa00510018992cc004c18c00626020660f86ea0c04cdd6983e983d1baa0024bd70456600260d60031002880120ee41dc60f06ea8005076183d800983b9baa001404098103d87b8000a50a5141cd1980099baf98009827183b1baa0029827183b1baa001919192cc004c188c1e0dd5183e183e80144006264b30013063001898081983e1ba83053375a60fa60f46ea80092f5c11598009835800c400a200483b9077183c1baa00141d860f600260ee6ea8005010260103d8798000a50a5141cd14a0839907320e6307730743754004601860e86ea800507118010011057410113259800800c56600260a860c46ea8006264b300100182cc4c96600200305a82d44cc896600200305c8992cc0040060bb05d82ec4cc896600200305f8992cc0040060c106083044c96600260e0007159800803c186264b3001001831418a0c5062899912cc0040060c913259800800c1960cb065832c4c96600260ea00713010307501183320e4375c00283a8c1c80050701bae001307100841c860de00e836a0c28368dd6800c1810701836800a0d6375a00260d800505d41b460d40028340dd60009834801416a0b48350c19c00506518319baa00182c20c082c41620b105841a060ca004831a0aa830a0ab05582ac1550651831000a0c0375800260c200505282920c4305f001417460b66ea809a0a082c20a081ea0a082e20a10508284141060182e800a0b6375c00260b800482e8c1680050581bae0013059002416860ae00282a8dd7000982b00120ae305400141486eb8004c14c0090541828800a09e375c00260a00048288c13800504c18251baa01781fa08e81fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa09681fc0fe07f03f413c60980028250c13000a07b03d81ec0f504d1825000a090304a00281dc0ee07703b412c60900028230c12000a07303981cc0e50491823000a088304600281bc0de06f037411c60880028210c11000a06b03581ac0d50451821000a0803042002819c0ce067033410c608000281f0c10000a063031818c0c5041181f000a078303e002817c0be05f02f40fc607800281d0c0f000a05b02d816c0b503d181d000a0703036375400b02b40cd02b40dd02b815c0ae05681d8c0e0005036181c00140a6053029814a072303600140d0606c005027813c09e04e81b8c0d000503218181baa002812a05a222329800800c0120068008888c966002604e00313259800800c01a264b3001001803c01e00f0078992cc004c0f400e00b00840e86eb800503d181d000a07030363754007159800980f800c4c9660020030068992cc00400600f0078992cc004c0f400e26604200244b3001002803c4c966002003198008054006260046080006805201700b805c02d041181f001207880420743758003007803a07a303a00140e0606c6ea800e2b300130260018992cc00400600d13259800800c01e00f13259800981e801c4cc08400489660020050078992cc0040063300100a800c4c008c10000d00a402e01700b805a082303e00240f100840e86eb000600f00740f4607400281c0c0d8dd5001c566002605000313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b30013040003899812000912cc00400a01513259800800c6600201b001898011821801a01a807403a01d00e4110608200481fa01681e8dd6000c02a0148200c0f400503b1bad001303c002803a07a303a00140e0606c6ea800e2b3001301d0018992cc00400600d13259800800c01e00f0078992cc004c0f400e00b00840e86eb400600e81e8c0e8005038181b1baa0038acc004c070006264b300100180344c966002003007803c01e264b3001303d003802c02103a1bad001803a07a303a00140e0606c6ea800e2b3001301b0018992cc00400600d13259800800c01e00f007803c4c966002607a0070058042074375c00281e8c0e8005038181b1baa003802a06640cc8199033206640cc8198c0d0dd5001409204902481220683006302e3754646644a6605e66e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea40b522010013259800981198189baa00189929981899b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800981218199baa0018992cc0040062b300130263034375400313259800800c0b2264b3001001816c0b605b02d899912cc00400605f13259800981f0014401a06081d8c0f000503a1bae001303b00240f0607200281b8c0d4dd5000c0ad03240ae05702b815a074303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4601e60666ea8c02cc0ccdd5000981a98191baa0018a9981824814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640bc646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806981a9baa300d3035375400444b30010018a508acc004cdc79bae30390010328a51899801001181d000a06640dd1300b330360014bd7044cc00c00cc0e0009031181b000a06830010013758600e605e6ea806c896600200314bd7044cc0c8c0bcc0cc004cc008008c0d00050311800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100e206a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c817902f1bac3032002375a60600026466ec0dd418180009ba73031001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a606a003337149101023a200098008054c0d800600a805100a181c00144ca6002015303500199b8a489023a200098008054c0d8006600e66008008004805100a181c001206c303800140d466e29220102207d0000340c86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900b20643758007133005375a0060051323371491102682700329800800cc02cdc68014cdc52450127000044004444b300133710004900044006264664530010069808002ccdc599b800025980099b88002480522903045206e40d066e2ccdc0000acc004cdc4000a4029148182290372068004401866e0c00520203370c002901019b8e00400240c46eb800d0351b8a4881022c200022323300100100322598009810000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000340b08160c01401491111112cc004c07003a264b300100181044c96600200315980098188014566002603c60586ea8006264b300100181144c96600200313259800800c092264b30010018992cc00400604d13259800800c09e04f13259800981c001c566002604a60666ea801a264b3001001814c4c96600200302a81544cc896600200302c8992cc00400605b02d899912cc00400605f13259800800c0c2061030899912cc00400606513259800800c0ce067033899912cc00400606b13259800800c4c9660020030378992cc0040062b30013048002899816007112cc00400a26605c01a44b30010028cc00401e330010058acc004c0e4c11cdd500c44c96600200303d8992cc004006264b300100181fc4c966002003159800982800144cc8966002607e00313259800800c10e264b30010018224112264b3001305500389981c800912cc00400a00f13259800800c66002003130023058003824205a8244122091048416460ac00482a208a8290dd6000c11208882a8c14800505018271baa0058acc004c0dc006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840b5048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b159800981f000c4c9660020030438992cc0040060890448992cc004c15400e26607200244b3001002803c4c96600200319800800c4c008c16000e09081720910488244121059182b00120a8822a0a4375800304482220aa30520014140609c6ea80162b300130400018992cc00400608713259800800c1120891332259800800c11a264b30010018acc004c15c00a26607600644b30010028acc004c118c150dd5001c4c96600200304a8992cc00400609704b825c4cc896600200304d8992cc00400609d04e82744c96600260be00700f827a0b8375a00304e417c60b800282d0dd6800982d801412d05c182c800a0ae30553754007049414913259800800c6600200313002305a0038252060825412a09504a416c60b000482b208e82a208f047823c11d058182a800a0a6375800260a800504482220aa30520014140609c6ea80162b300130350018992cc00400608713259800800c11208913259800982a801c4cc0e400489660020050078992cc0040063300100189801182c001c12102f412209104882420b23056002415104541486eb0006089044415460a40028280c138dd5002c566002606800313259800800c10e264b30010018224112264b3001305500389981c800912cc00400a00f13259800800c66002003130023058003824205e8244122091048416460ac00482a208a8290dd6000c11208882a8c14800505018271baa0058acc004c0cc006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840c1048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b15980099b8748038006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840c1048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b15980099b87480400062b3001304e375400b002821209e8212096412c825904b2096412c825904b209619800800c4cc0d006489660020050248992cc0040060870438992cc00400608913259800800c11608b045822c4cc89660020030478992cc0040062b300130580028cc0040062600e60b001104840b10484155048824412209082c8c1580050541bae0013055002415860a60028288dd6000c10e08682a0c14400904f410102318259baa003820209a82041020810404144609c0028260c13800a07d03e81f40f904f1826000a0943048375403103c411503c409d03c409d13259800800c0f607b03d899180198270021bad00181ea09c304b002412513259800800c0ee07703b899180198260021bad00181da0983049002411d038411503881c40e20708248c118005044182300140da06d03681b208e304400141086eb4004c10c00a0668220c10400503f1bad00130400028182082303e00140f06eb0004c0f400a05b02d40f8607600281c8dd6000981d00140aa05481d8c0e0005036181a1baa0068142062814206a3758003027813a070303500140cc606a005025812c09604a81b0c0cc0050311819801408e047023811a068303100140bc605a6ea800604281520428172043021810c0850321817800a05a302b375402d159800980a00744c9660020030208992cc0040062b300130310028acc004c078c0b0dd5000c4c9660020030228992cc004006264b300100181244c966002003025812c4c966002606c007159800981198189baa0048992cc00400604f13259800800c4c9660020030298992cc0040062b3001303a0028acc004c09cc0d4dd5001c4c96600200302b8992cc004006264b3001001816c4c96600200302e81744cc89660020030308992cc004006063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c0de06f037899912cc00400607313259800800c0ea07503a8992cc004c12c00e2b300130383046375402113259800800c0f2264b300100181ec0f607b1332259800800c0fe264b30010018204102081132598009828801c5660020270418992cc00400608504282144cc89660020030448992cc00400608b045822c4c96600260ac00715980080ac11a264b3001001823c11e08f1332259800800c126264b3001001825412a09513259800982d801c6600204513303f026225980080140be264b3001001827413a264b3001001827c4c96600200305082841420a11332259800800c14a264b30010018acc004c18c00a33001001898039831804414d037414d060414e0a7053829a0c83061001417c6eb8004c180009061182f000a0b8375800304e82720be305c002416904b40b904b41606eb400609482d8c1600050561bad0013057016823a0b03055015414d046414c6eb400608a82b0c14c0050511bad001305201482120a63050013413904141386eb40060808288c13800504c1bad001304d00281ea09c304b0014124608e6ea804207682220768240dd6800c0e904b1824000a08c375a002608e0050374120608a0028218dd6800982200140d10451821000a08037580026082005031818a084303f00140f46eb0004c0f800a05d02e40fc607800281d0c0f000a05902c81640b103d181d000a0703036375400702a40cd02a40dd02a81540aa05481d8c0e0005036181c00140a20510288142072303600140d060646ea801204c817a04c8198dd6000c09604a81b0c0cc0050311819801408e047023811a068303100140bc605a6ea800604281520428172043021810c0850321817800a05a302b375402d01f40a08140444b300130173025375400713259800800c00a264b30010018992cc00400600913259800800c566002605c00519800801c4c966002603800315980098159baa002803c01902c4566002602800313259800800c01e264b300100180440220110088992cc004c0c800e01500940bc6eb80050321817800a05a302b3754005159800980d800c4c9660020030078992cc004c0c400a01300840b8605e0028168c0acdd50014019028205040a060526ea800600a804200a815a00b005802c01502f1816000a054302c002801c00e00700340b460540028140c098dd5001c0050231112cc004c058c090dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981680146600200713259800980d800c4c9660020030078992cc0040062b300130300028992cc004c078006264b300100180544c966002003159800981980146600200300c805a020805a060805c02e01700b40d060620028178c0b4dd50014566002602c00313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c04602313259800981d001c04e02481b8dd6800c04503a181b800a06a375a002606c00500e40dc60680028190dd68009819801402d0341818800a05e302d375400500940a88150c0acdd5000c02102d40220110088042062302e00140b060546ea800a2b300130130018acc004c0a8dd5001401e00c815a00c813902718141baa001802a014802a054802c01600b00540b860560028148c0ac00a007003801c00d02c1814800a04e302537540070014088402e01700b805a0383019301637540091598009804001c4c8c9660026012602e6ea8c06cc07000a294629410151bad301a0013016375400916404c8098602a602c002602a0088a4d153300b49011856616c696461746f722072657475726e65642066616c7365001365640281" + : "5919cb0101002222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0069bae0059bae0049bae0039bae00248888888888896600330013008375401b370e90034dc3a4001370e90022444464653001300d3754003301100698088012444b300130060038cc004c050c044dd50024dc3a4005223233001001003223300300130020029b87480226e1d200a9b874803244b300130093012375400513232332259800980d801c0162c80c0dd6980c0009bae301800230180013013375400516404530103754002911111114c00488c96600260240031323259800981100140122c80f8dd71810000980e1baa0038acc004c0280062b3001301c37540070028b203a8b2034406860346ea800a4464b30013012001899192cc004c08800a00916407c6eb8c080004c070dd5001c56600260140031323259800981100140122c80f8dd71810000980e1baa0038b2034406860346ea800a44b30013011301a3754005132323259800981100144c8c966002602c00315980098101baa0028034590214566002601c0031323259800981300140222c8118dd6981200098101baa0028acc004c0540062b3001302037540050068b20428b203c407880f0c078dd50009810801c5901f192cc004c0780062b3001337129002180e800c5a26018603a00280e22c80f8dd518100009810000980d9baa0028b203291192cc004c04800626464b3001302200280245901f1bad3020001301c37540071598009805000c56600260386ea800e00516407516406880d0c068dd500124444646530012259800980b98101baa002899191919912cc004c0a800e266010605200a26601e00400d16409c604e0026eb4c09c008c09c004c098004c084dd500145901f48966002602e60406ea800a264646464653001375a6052003375a6052009375a605200730290024888966002605c00b13300c302d00913301300100a8b2056181480098140009813800981300098109baa0028b203e912cc004c05cc080dd500144c8c8c8c8c8ca60026eb0c0a80066eb4c0a80166eb4c0a80126eb4c0a800e6054004911112cc004c0c001a26601c605e01626602a0022646644b30013033003807c590301bae3030001375c606000c606000b1640b4302a00130290013028001302700130260013021375400516407d2259800980b98101baa002899191919194c004dd61814800cdd698148024dd69814801cc0a40092222598009817002c4cc030c0b40244cc04c0044c8cc8966002606200700d8b205c375c605c0026eb8c0b8014c0b80122c815860520026050002604e002604c00260426ea800a2c80fa44b300130173020375400513232323259800981480144c9660026038604a6ea8006264646644b3001302e003899808981680400545902b1bae302b001375c60560046056002604c6ea80062c8120c0a00122c8130dd718138009813800981300098109baa0028b203e91192cc004c060006264b300130270018998061813000801c5902418111baa0038acc004c040006264b300130270018992cc004c068c08cdd5000c4c8c8c966002605600513300c302a00313300c0010078b20503029001302900130243754003164088604c00316409060446ea800e2c810102018101baa0028cc0048c08cc090c090006460466048003374a90004888c96600260320031323259800981480140122c8130dd7181380098119baa0038acc004c044006264b300130280018998089bac30270012259800801401633001007981480144c004c0a8009007204e8b204a30233754007159800980c000c4c96600260500031330113758604e00244b3001002802c6600200f3029002898009815001200e409d16409460466ea800e2b3001301a00189919912cc004c0a80062660266eb0c0a400489660020050078cc004026605600513001302c0024024814a2c8138dd69813800981400098119baa0038acc004c03c00626464b300130290028024590261bad3027001302337540071598009807000c4c8c96600260520050048b204c375a604e00260466ea800e2b3001300d001899192cc004c0a400a0091640986eb8c09c004c08cdd5001c590212042408481090212042408460426ea80092222332259800980d98121baa002899191919912cc004c0b800e264b30013021302a37540031323232323232323232329800981c000cc0e002660700113038007981c0034c0e001660700093038003981c0012444444444b3001304200a89980d182080989980d00409980d00389980d00309980d00289980d00209980d00189980d00109980d00089980d0048acc004c0d0c0f4dd500ac4c8c8c8c8ca60026eb8c118006608e003375c608c00b375c608c009375c608c007375c608c0049111112cc004c134016266060609800a2b3001303f30483754043132323259800982800144cc0e4dd61827801912cc00400a266062006330012232330010010032259800800c52f5c1133054374e60066eb0c154004cc008008c158005053488c0bccc14930010b4a5369676e6174757265310033052305330503754004660a498101400033052375200297ae09192cc004cdc4800a405d13371666e012080010010028acc004cdc4800a41fc0713371690580099b8b001002899b8b482c804cdc599b830014820010cdc599b86001482001000904e209c371a003230523053305330530019111919912cc004c12800a2b3001304a3053375400314c103d87a80008a6103d8798000414915980098248014566002609260a66ea80062980103d87a80008a6103d87b8000414913322598009826000c530103d87b80008acc004c110006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000415482a8dd6982c982b1baa0038a6103d8798000415082a0dd6982b982a1baa00330533754002829105218289baa001300200330010039b804800a460a460a660a660a660a660a660a660a60032232330010010032259800800c5284566002600660aa00314a313300200230560014140829a6e952002918291829982998299829800c8c148c14cc14cc14cc14cc14cc14c005222222222229800919b8a489018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002416882d0dc68009bae305d305a375400266e28c028dd7181d182d1baa0013371460146eb8c0ecc168dd500098051bae3009305a37540032323232332259800982a8014528456600260a80051980099baf3062305f375400298103d87b8000a50a514175132332259800982c0014528c56600260a00051332259800982918319baa30443064375400d1337100040031337120040028310dd6983298311baa00359800982818309baa30423062375400f100189807800a0c08a5041808300c17cdd50009bad30633060375400860c460be6ea800505d20ba305c375400260c060c200660be60b86ea8004c178004c168dd5000c8888c8cc00400401488c96600260ac0031323259800982c18309baa001899194c004dd718338014dd718339834000cdd71833800ae5460ce0026eb0c194c188dd5000c52820c032330010010082259800800c5300103d87a80008992cc004cdc79bc8375c60ce0020091304333066374e00297ae0899801801983400120c4375860cc0028320dd7183198301baa0028acc004c138006264660020026eb0c190c184dd5001912cc00400629462b30013300500530650018998010011833000c52820c0418d159800982a800c4cc02cdd6183198301baa0022330040040018acc004c15c00626466e24dd6983200099198008009bac306530660022259800800c52000899912cc004cc02002000a260240031001418c60cc0026600400460ce0028320c180dd500145660026098003132332259800982898311baa0028acc004c144c188dd518331833801c4cdc49bad3066306337540040031337106eb4c198c18cdd5001000a0c28a50418460c80026eb4c190c184dd500198301baa30403060375400b1598009825800c4c8cc896600260a260c46ea800a2b300130513062375460cc60ce0071337120026eb4c198c18cdd500144cdc40009bad306630633754004830a294106118320009bad30643061375400660c06ea8c18cc180dd5002c4c8c8cc004004018896600200314a115980099baf003306230660018a518998010011833800a0c241906014660c460c660c06ea80092f5c082f105e20bc417882f105e182f1baa001911919800800801912cc00400629422b30013375e60b860c0002600e660be6ea400d2f5c114a31330020023061001416c82f122223259800982a182e9baa04e8991919912cc004cc014c108c188dd5001829c56600260a060c26ea8c194c8cc004004dd6182198319baa30663063375400a44b30010018a5eb84103d87a80008101800044c8cc8966003300130553066375460d40074a14a2832a2660d330014a14c103d87a8000a60103d87980004194660d26e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c1b000400e294626600400460da002833906a44cc1a6600294298103d87a8000a60103d87980004194660d26e9c0092f5c11330699800a51a60103d87a8000a60103d87980004194660d26e9ccc1a4dd400080125eb8106520ca375860d060d20026eb4c1a0008cc008008c1a0005065456600330013300d375860ca60c46ea814c8cdd7983318319baa306630633754608660c66ea8004c034cc194dd482e25eb8294294506044c9660033001306630670019980a9bac30443063375400a464660ce60d0004660ce608c60ca6ea8004cc19cdd498061980b183418329baa0010054bd7018339834000cc03cc18cdd502a4dd5980598319baa05440211330073756601660c66ea8150dd71833000c59061192cc004c1640062660ca6ea417ccc194c198c18cdd5183318319baa0404bd70456600260a200313306537520be660ca608660c66ea8c198c18cdd502025eb822b3001304d0018998329ba905f33065300b3063375460cc60c66ea81012f5c115980099b87480380062660ca6ea417ccc194c03cc18cdd5183318319baa0404bd704566002609e00313306537520bc660ca601860c66ea8c198c18cdd502025eb822b3001304e0018998329ba905e3306530023063375460cc60c66ea81012f5c1159800982d000c4cc194dd482e99832980918319baa30663063375408097ae08acc004c1600062660ca6ea4174cc194c110c18cdd5183318319baa0404bd7044c96600260b460c66ea80062b30013375e601a60c86ea8155300101a000899833183398321baa0013306630673068306830683068306830683068306830683064375460ce60c86ea81052f5c1164189164188600460c66ea8c10cc18cdd502020c24184830906120c24184830906118309baa3065306237540071641811641811641806e50dd98009183218329832983298329832800981f982f9baa0013061305e375409d13232325980099802182098309baa0020528acc006600260c860ca60ca60ca60ca60ca60ca60ca60ca60c26ea8c190c184dd501f4cc04cdd6182098309baa00323233065306600233065304430633754002660ca6ea4c028cc050c198c18cdd5000801a5eb80c194c198006601a60c26ea814a6eacc024c184dd5029200c8998029bab3009306137540a46eb8c028c184dd5182098309baa03e8b20be8b20be37286ecc004c188c17cdd50009830982f1baa04e417044b30013055305e37540051323300b375860c660c06ea80088cdd7983218309baa0010023062305f375400513322598009803800c528c566002600e00514a1159800cc004cdd7cc004c190c184dd50014c190c184dd5000c8c8c96600260a460c66ea8c19cc1a000a2003132598009829800c4c03ccc19cdd418091bad30683065375400497ae08acc004c16c00620051002418c8318c18cdd5000a0c43066001306237540028079300103d87b8000a50a51417d1980099baf9800982098309baa002982098309baa001919192cc004c148c18cdd51833983400144006264b3001305300189807998339ba8337006eb4c1a0c194dd50012400297ae08acc004c16c00620051002418c8318c18cdd5000a0c43066001306237540028079300103d8798000a50a51417d14a082f905f20be3062305f3754004601660be6ea800505d113259800982298271baa001899191919912cc004c16000e264646644b3001305c00389805982e0064590591bae3059001375c60b200460b20026eb0c15c0162c82a8dd6982a8009bad305500230550013054001304f375400316413460a2004827a2c8268c138004c138004c124dd5010c5904745904a0c118004c114004c110004c10c004c0f8dd500ac5903c45903f0c0e0004c0dc004c0d8004c0d4004c0d0004c0cc004c0c8004c0c4004c0c0004c0acdd5000c590291816802c5902b181580098158011815800981500098129baa0028b2046300330233754646464b3001301c3025375400313259800980e18131baa0018992cc004c078c09cdd5000c4c8c8cc8966002606000710058b205a302d001375c605a004605a00260506ea80062c8130c0a8c09cdd5000c59025180398131baa3006302637546052604c6ea80062c8120c8cc004004dd6180318131baa0172259800800c5300103d87a80008992cc004c8cc004004c014dd5980498149baa30093029375400444b30010018a508acc004cdc79bae302d0010278a518998010011817000a05040ad130073302a0014bd7044cc00c00cc0b00090261815000a05030010012259800800c52f5c113302730243028001330020023029001409860020024888888966002603801d132598009815800c4c966002603c604e6ea800626464646644b300130310038992cc004c090c0b4dd5000c4c8c8c8c8c8ca6002606e0033758606e00b375a606e009375a606e007303700248888966002607a00d1330263758607801644b3001002899814003112cc00400a26604200a2660420122b30013033303c3754023132323259800982200144c8cc89660026072005132598009824000c4cc0c4dd61823800912cc00400a009133024304900213001304a002411d16411460866ea800e2b300130310028992cc004c1200062660626eb0c11c00489660020050048998121824801098009825001208e8b208a30433754007159800981c00144c96600260900031330313758608e00244b300100280244cc094c1240084c004c12800904745904518219baa0038acc004c0e800a2646464b3001304a0028998199bac304900322598008014566002607c608e6ea800e264646644b3001305000380545904d1bad304d001375a609a004609a00260906ea800e2c823226604e6096004260026098004824a2c8238c120004c120004c10cdd5001c566002605e005132598009824000c4cc0c4dd61823800912cc00400a009133026304900213001304a002411d16411460866ea800e2b3001302e0028992cc004c1200062660626eb0c11c00489660020050048998131824801098009825001208e8b208a30433754007159800981680144c96600260900031330313758608e00244b300100280244cc09cc1240084c004c12800904745904518219baa0038acc004cdc3a401c005132598009824000c4cc0c4dd61823800912cc00400a009133027304900213001304a002411d16411460866ea800e2b30013370e9008001456600260866ea800e00316411116410482090412082410482090412082410460806ea80044cc0740084cc0b8058896600200501e89919912cc004c128006266046609200226008609400b16411c6eb8c11c004c120004dd61823001208830430038b208230420013042001303d37540231640ed13230023042003375a608000481f2264600460800066eb4c0f800903c45903a0c0dc004c0d8004c0d4004c0d0004c0cc004c0b8dd5000c5902c1818002c5902e1bac302e001302e002302e001302d0013028375400316409860540031640a0604c6ea805a2b3001301400e8992cc004c0ac006264b3001301e30273754003132323259800981780144c966002604460566ea800626464b300130320018992cc004c094c0b8dd5000c4c8c8c8c8c8ca60026eb4c0e00066eb0c0e00166eb0c0e00126eb4c0e000e6eb4c0e00092222259800981f00344c966002606260746ea8006264646644b3001304300389919912cc004c11800e2646644b30013049003899810982400c09981900d912cc00400a0451323322598009827000c4cc09cc1340044c010c1380162c8258dd7182580098260009bac304a00241211641186eb4c118004dd698230061823005c590431bad3043001375a608601460860131641006eb4c100004dd698200011820000981d9baa0018b2072303d00b8b2076181c000981b800981b000981a800981a00098179baa0018b205a30310028b205e3031001302c37540031640a8605c0071640b06eb0c0b4004c0b4004c0a0dd5000c590261815000c5902818131baa0168b204840902259800980b180f9baa00289919192cc004c09c00a26600c604c006264b3001301a0018acc004c090dd500140162c812a2b30013012001899192cc004c0a800a00f16409c6eb8c0a0004c090dd50014566002603200313232598009815001401e2c8138c0a0004c090dd50014590222044408860446ea80062c8120c094004c094004c080dd500145901e112cc004c054c078dd500144c8c8c966002604c005133008302500313259800980c800c4c96600260500031323259800980e000c4c966002605600313300d302a0010098b205030263754005159800980a000c4c8c8ca60026eb4c0b00066eb4c0b000e6eb4c0b0009222598009818002403a2c816860580026056002604c6ea800a2c812102418121baa00130270018b204a302337540051598009808800c56600260466ea800a00b1640911640848108c084dd5000c5902318120009812000980f9baa0028b203a22b30013008003899192cc004c024c048dd5180b180b8014528c5282022375a602a00260226ea80122c807900f0c040c044004c040011149a26cac80301", + Type.Tuple([PolicyId, ScriptHash, ScriptHash, ScriptHash, ScriptHash]), + [ + proxyPolicyId, + mintValidator, + stakeValidator, + managementValidator, + yieldOracleValidator, + ], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolOrchestratorProtocolOrchestratorElse { + public Script: Script; + constructor( + proxyPolicyId: PolicyId, + mintValidator: ScriptHash, + stakeValidator: ScriptHash, + managementValidator: ScriptHash, + yieldOracleValidator: ScriptHash, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59339c0101002222229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0069bae0059bae0049bae0039bae00248888888888888a60022a6600e92012f657870656374207665726966795f6e6f6e6365287369676e65645f7061796c6f61642e6e6f6e63652c2073656c662900168a99803a49266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00168a99803a492c6578706563742073657474696e67733a2053657474696e67735631203d2070726f78792e73657474696e677300168a99803a492872656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631001648889660033001300d3754027370e90034dc3a4001370e90022444464653001301237540033016006980b0012444b300130060038992cc00400a33001370e9001488c8cc00400400c88cc00c004c00800a6e1d20089b874802a6e1d200c9112cc004c02cc064dd5001c4c9660020030028992cc004006007003801c00e26644b3001001802c4c966002003006803401a264b30013024003804401d0211bad00180320483021001407c6eb8004c080009021180f000a038301a3754007001405d3016375400491111114c004888c966002602600313259800800c00e264b300100180240120090048992cc004c0a400e00d00540986eb80050291813000a048302237540091598009805800c56600260446ea8012007002408d002407c80f8c080dd5001c888c966002602600313259800800c00e264b300100180240120090048992cc004c0a400e00d00540986eb80050291813000a048302237540091598009805800c4c9660020030038992cc0040060090048024012264b3001302900380340150261bae00140a4604c0028120c088dd5002400901f203e3020375400722259800980918101baa0038992cc00400600513259800800c4c9660020030048992cc004006264b300130260018acc004cdc4a4008604a0030068992cc004c0ac012264b300130190018acc004c0a0dd50034026010814a2b300130110018992cc00400601313259800800c02a01500a8992cc004c0bc00e01900b40b06eb40060148178c0b000502a18141baa0068acc004c0600062b30013028375400d0098042052804204a40948128c098dd5002c01d02818079812800a046803204e3754003005802c01600a8150c09c0050251813801400e007003801a0503025001408c60426ea800e00280f244464b300130130018992cc00400600713259800800c0120090048992cc004c0a400e00d00540986eb40060088148c09800502418111baa0048acc004c02c0062b3001302237540090038012046801203e407c60406ea800d2222323298009112cc004c060c098dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003159800981900146600200d19800800c0260108092010805a010817a01100880440210331818000a05c375a002605e00500540c0605a0028158c0b400a007003801c00d02e1815800a05230273754007001409122259800980c18131baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc004006264b300100180644c96600200300d806c036264b300130380038cc00403233001004807c039018403901140390351bad001806a070303500140cc606a00500b805c02e01681b0c0cc0050311bad00130320028042066303000140b86eb4004c0bc00a00a8180c0b400502b1816801400e007003801a05c302b00140a4604e6ea800e0028122444b300130183026375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c02e01700b899912cc00400601b13259800800c4c96600200300f8992cc0040060210108992cc004c0ec00e3300100f8cc0040122b3001001808c4c966002003012809404a0251332259800800c052264b300100180ac05602b0158992cc004c10000e02f01640f46eb8005040181e800a076375c002607800481e8c0e8005038404501b404501440450381bac001808404103b181c000a06c3038002807403a01d00e40e4606c00281a0dd6800981a801402d0361819800a062375a002606400500840cc60600028170dd6800981780140150301816800a056302d002801c00e00700340b860560028148c09cdd5001c0050244889660026030604c6ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b300100180440220111332259800800c02a264b30010018992cc00400601913259800800c03601b13259800981c001c6600201919800802456600200300e8992cc00400601f00f807c03e26644b3001001808c4c966002003012809404a02513259800981e801c05202681d0dd7000a07a303a00140e06eb8004c0e400903a181b800a06a80720308072022807206a375800300d806a070303500140cc606a00500b805c02e01681b0c0cc0050311bad00130320028042066303000140b86eb4004c0bc00a00a8180c0b400502b1816801400e007003801a05c302b00140a4604e6ea800e0028122444b300130183026375400713259800800c00a264b30010018992cc00400600913259800800c4c9660020030068992cc00400600f007803c01e264b300130320038acc004c07cc0b4dd500344c9660020030098992cc00400601500a805402a26644b300100180644c96600200300d806c03601b13259800981c001c6600201500f807202c807206a375c00281c0c0d40050331bae001303400240d460640028180c0b8dd5003402102b402102f1bae00140c8605e0028168c0bc00a00b005802c0150301816800a056302d002801c00e00700340b860560028148c09cdd5001c0050244888c966002603200313259800800c00e264b30010018acc004c0b800a33001001802c01100e401102b4012009004802205e302c00140a860506ea80122b300130110018992cc00400600713259800800c566002605c005159800980d98149baa0018992cc00400600b13259800800c4c9660020030078992cc0040062b300130320028cc00400e33001001804c02100e402100e402102f40220110088042066303000140b86060005006803401a00c8188c0b800502c18151baa001802204e8022056802401200900440bc60580028150c0a0dd50024009025204a30263754007198009181418149814800c8896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801902448888c8cc004004014896600200310058992cc004006266008605c00400d133005302e0023300300300140b0605c002815a6e012001918141814800cdd2a400091111119191919192cc004006264b30013021302f375400513259800800c09a264b30010018992cc00400605113259800800c4c96600200302a8992cc0040062b3001303a0028acc004c09cc0d4dd5002c4c96600200302c8992cc004006264b300100181744c96600200313259800800c0c2264b30010018992cc00400606513259800800c4c9660020030348992cc004006264b300100181b44c96600200313259800800c0e2264b30010018992cc00400607513259800800c4c96600200303c8992cc004006264b300100181f44c966002003159800982700146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002607660926ea805e264b300100182044c966002003041820c1060831332259800800c10e264b30010018224112089044899912cc00400608d13259800800c11e08f047823c4cc89660020030498992cc00400609504a825412a26644b300100182644c96600200304d826c13609b1332259800800c13e264b30010018acc004c17c00a330010018acc004c130c168dd501344c9660020030518992cc0040060a5052899912cc0040060a913259800800c56600260c8005133048003225980080146600200719800911919800800801912cc004006297ae08998341ba73003375860d20026600400460d4002833a446076660cc9810b4a5369676e6174757265310033066306730643754004660cc98101400033066375200297ae091833183398339833800c8c96600266e24005202e899b8b33700904000800801456600266e2400520fe03899b8b482c004cdc580080144cdc5a41640266e2ccdc1800a41000866e2ccdc3000a41000800483090611b8d0019111919912cc004c16400a2b300130593067375400314c103d87a80008a6103d87980004195159800982c001456600260b060ce6ea80062980103d87a80008a6103d87b800041951332259800982d800c530103d87b80008acc004c14c006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a800041a08340dd6983698351baa0038a6103d8798000419c8338dd6983598341baa00330673754002832906518329baa001300200330010039b804800a460cc60ce60ce60ce60ce60ce60ce60ce0032232330010010032259800800c5284566002600660d200314a3133002002306a001418c833a6e952002918331833983398339833800c8c198c19cc19cc19cc19cc19cc19c005222222222229800929983619b96491165369675374727563747572652e636f6e746578743a200037326608260e260dc6ea8005220100153306c3372c92011d5369675374727563747572652e626f64795f70726f7465637465643a2000373266082608c60dc6ea8005220100153306c3372c92011b5369675374727563747572652e65787465726e616c5f6161643a2000373266082609460dc6ea8005220100153306c3372c9201165369675374727563747572652e7061796c6f61643a2000373266082601460dc6ea800522010013253306d3372c92012073657269616c6973655f7369675f73747275637475726520726573756c743a20003732660846ea4005220100100133714911018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e1800520800400241b48368dc68009bae3071306e375400266e28c024dd7182318371baa0013371460126eb8c128c1b8dd500098049bae300a306e3754003232323233225980098320014528456600260c60051980099baf30763073375400298103d87b8000a50a5141c113233225980098338014528c56600260be00513322598009830983b9baa30503078375400d13371000400313371200400283a8dd6983c983b1baa00359800982f983a9baa304e3076375400f100189807800a0e68a5041cc8398c1ccdd50009bad30773074375400860ec60e66ea800507020e03070375400260e860ea00660e660e06ea8004c1c8004c1b8dd5000c8966002003148002260106600400460e6002838244646600200200644b30010018a508acc004cdd79838183a0009803998399ba90034bd704528c4cc008008c1d400506e20e448888c8cc896600260ca60e66ea817e26464646644b3001330063051307937540080cb1598009831183c1baa307c3233001001375860a460f46ea8c1f4c1e8dd5003112cc004006297ae1103d87a80008101800044c8cc896600330013067307d37546102020074a14a283da2661000330014a14c103d87a8000a60103d879800041ec66100026e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c20c0400400e294626600400461080200283e90810144cc20006600294298103d87a8000a60103d879800041ec66100026e9c0092f5c1133080019800a51a60103d87a8000a60103d879800041ec66100026e9ccc20004dd400080125eb8107b20f6375860fe6100020026eb4c1fc008cc008008c1fc00507c4566003300133010375860f860f26ea81948cdd7983e983d1baa307d307a375460a460f46ea8004c040cc1f0dd483925eb8294294507644c9660033001307d307e001801cc048c1e8dd50334dd59807183d1baa066402113300a3756601c60f46ea8198dd7183e800c54cc1e1241896578706563740a202020207361746973666965645f7061796c6f616473280a2020202020207065726d697373696f6e2c0a2020202020207369676e6174757265735f776974685f7061796c6f6164732c0a20202020202073656c662e76616c69646974795f72616e67652c0a20202020202073656c662e7769746864726177616c732c0a2020202029001641dc64b3001306b00189983e1ba90753307c307d307a375460fa60f46ea81312f5c11598009831800c4cc1f0dd483a9983e1829183d1baa307d307a375409897ae08acc004c17c0062660f86ea41d4cc1f0c038c1e8dd5183e983d1baa04c4bd70456600266e1d200e00189983e1ba90753307c3012307a375460fa60f46ea81312f5c11598009830800c4cc1f0dd483a1983e1807983d1baa307d307a375409897ae08acc004c1800062660f86ea41d0cc1f0c008c1e8dd5183e983d1baa04c4bd70456600260d800313307c37520e6660f8602c60f46ea8c1f4c1e8dd502625eb822b3001306a00189983e1ba90733307c3056307a375460fa60f46ea81312f5c1132598009836183d1baa0018acc004cdd79808183d9baa0674c101a00089983e983f183d9baa0013307d307e307f307f307f307f307f307f307f307f307f307b375460fc60f66ea81352f5c115330794911f6578706563742073656c662e6d696e74203d3d206173736574732e7a65726f001641e115330794913e65787065637420536f6d65286d6967726174696f6e5f76616c696461746f7229203d2073657474696e67732e72656769737472792e6d6967726174696f6e001641e0600460f46ea8c148c1e8dd502620ee41dc83b907720ee41dc83b9077183c1baa307c30793754009153307749013b657870656374206e6f5f7363726970745f696e7075742873656c662e696e707574732c207969656c645f6f7261636c655f76616c696461746f7229001641d91533077491466578706563742076616c69646174655f756e697175655f696e7075745f6d617070696e672872656465656d65722e65787472612e696e7075745f746f5f726571756573747329001641d907041d86602a6eb0c14cc1dcdd50019191983d983e0011983d982a983c9baa0013307b375260186602c60f860f26ea800400d2f5c060f660f8002460f660f860f860f860f860f80026e50dd98009826983a9baa0013077307437540bf13232323259800998029828183c1baa0030648acc006600260f660f860f860f860f860f860f860f860f860f06ea8c1ecc1e0dd50254006602060f06ea81926eacc030c1e0dd5032200c8998041bab300c307837540c86eb8c034c1e0dd51828183c1baa04a8a9983b2481a06578706563740a202020207361746973666965645f7061796c6f616473280a20202020202073657474696e67732e7065726d697373696f6e732e7969656c645f6f7261636c652c0a2020202020207369676e6174757265735f776974685f7061796c6f6164732c0a20202020202073656c662e76616c69646974795f72616e67652c0a20202020202073656c662e7769746864726177616c732c0a2020202029001641d506f41d46602a6eb0c13cc1dcdd50019191983d983e0011983d982a983c9baa0013307b375260186602c60f860f26ea800400d2f5c060f660f80026e50dd9800983c183a9baa0013077307437540be83888888c8cc00400401488c96600260d40031325330783372c920121436865636b696e67205369676e617475726520666f72206b65795f686173683a200037326609a6ea4005220100132598009836183d1baa001899194c004dd7184000800cdd7184000984080800cdd71840008012444a660fc9211d466f756e64207369676e61747572652c20766572696679696e672e2e2e00153307e3372c92011b7665726966795f65643235353139207075626c69635f6b65793a20003732660a66ea4005220100153307e3372c9201187665726966795f65643235353139207061796c6f61643a20003732660a66ea4009220100153307e3372c92011a7665726966795f65643235353139207369676e61747572653a20003732660a66ea400d22010013253307f3372c92011f5369676e617475726520766572696669636174696f6e20726573756c743a20003732660a93001001a60103d87a8000a60103d879800041f891010010019800800c00a006b950c20004004dd6183f183d9baa0018a9983c99b96491214e6f207369676e617475726520666f756e6420666f72206b65795f686173683a200037326609c6ea400922010014a083c0c8cc004004020896600200314c0103d87a80008992cc004cdc79bc8375c610002002009130543307f374e00297ae089980180198408080120f4375860fe00283e8dd7183e183c9baa0028acc004c188006264a660f066e59240122436865636b696e6720416c6c4f6620776974682073637269707420636f756e743a200037326609a6ea0c0240052201001325330793372c92010e416c6c4f6620726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e0910100100132330010010022259800800c528c5660026600c00c60fe0031330020023080010018a5041e483e8dd6183e183c9baa0028acc004c1a4006264a660f066e5924122436865636b696e6720416e794f6620776974682073637269707420636f756e743a200037326609a6ea0c0240052201001325330793372c92010e416e794f6620726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e0910100100133011001233005005001375860f860f26ea800a2b3001306b001899199129983d19b96490112436865636b696e672041744c656173743a200037326609e6ea000922010013253307b3372c92011941744c656173742073617469736669656420636f756e743a20003732660a06ea000522010013253307c3372c92011041744c6561737420726573756c743a20003732660a33001001a60103d87a8000a60103d879800041ec910100100133712006002646600200200444b30010018a400113322598009980500500144c064006200283e8c20404004cc008008c2080400507f1bad307d001375860fa60fc00260f26ea800a2b3001306000189929983c19b9649111436865636b696e67204265666f72653a200037326609a6ea00052201001325330793372c92010f4265666f726520726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232598009832983d9baa0018acc004c194c1ecdd5183f98400080144cdc49bad307f307c37540020071337106eb4c1fcc1f0dd5000801a0f28a5041e460fc00260f46ea8c148c1e8dd50031bad307c30793754005159800982f800c4c94cc1e0cdcb24910436865636b696e672041667465723a200037326609a6ea00052201001325330793372c92010e416674657220726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232598009832983d9baa0018acc004c194c1ecdd5183f98400080144cdc48019bad307f307c37540031337100066eb4c1fcc1f0dd5000a0f28a5041e460fc00260f46ea8c1f4c1e8dd50031bad307c307937540051325330783372c920111436865636b696e67205363726970743a200037326609a6ea40052201001325330793372c92010f53637269707420726573756c743a200037326609d3001001a60103d87a8000a60103d879800041e091010010013232330010010072259800800c528456600266ebc00cc1f0c20004006294626600400461020200283d107e18081983e1ba90014bd701bae307c3079375400483b107620ec41d883b1076183b9baa0012259800983298399baa002899198061bac307830753754004466ebcc1e4c1d8dd5000801183b983a1baa002899912cc004c02000629462b300130080028a508acc006600266ebe600260f260ec6ea800a60f260ec6ea800646464b300130623078375460f860fa00510018992cc004c18c00626020660f86ea0c04cdd6983e983d1baa0024bd70456600260d60031002880120ee41dc60f06ea8005076183d800983b9baa001404098103d87b8000a50a5141cd1980099baf98009827183b1baa0029827183b1baa001919192cc004c188c1e0dd5183e183e80144006264b30013063001898081983e1ba83053375a60fa60f46ea80092f5c11598009835800c400a200483b9077183c1baa00141d860f600260ee6ea8005010260103d8798000a50a5141cd14a0839907320e6307730743754004601860e86ea800507118010011057410113259800800c56600260a860c46ea8006264b300100182cc4c96600200305a82d44cc896600200305c8992cc0040060bb05d82ec4cc896600200305f8992cc0040060c106083044c96600260e0007159800803c186264b3001001831418a0c5062899912cc0040060c913259800800c1960cb065832c4c96600260ea00713010307501183320e4375c00283a8c1c80050701bae001307100841c860de00e836a0c28368dd6800c1810701836800a0d6375a00260d800505d41b460d40028340dd60009834801416a0b48350c19c00506518319baa00182c20c082c41620b105841a060ca004831a0aa830a0ab05582ac1550651831000a0c0375800260c200505282920c4305f001417460b66ea809a0a082c20a081ea0a082e20a10508284141060182e800a0b6375c00260b800482e8c1680050581bae0013059002416860ae00282a8dd7000982b00120ae305400141486eb8004c14c0090541828800a09e375c00260a00048288c13800504c18251baa01781fa08e81fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa03681fa09681fc0fe07f03f413c60980028250c13000a07b03d81ec0f504d1825000a090304a00281dc0ee07703b412c60900028230c12000a07303981cc0e50491823000a088304600281bc0de06f037411c60880028210c11000a06b03581ac0d50451821000a0803042002819c0ce067033410c608000281f0c10000a063031818c0c5041181f000a078303e002817c0be05f02f40fc607800281d0c0f000a05b02d816c0b503d181d000a0703036375400b02b40cd02b40dd02b815c0ae05681d8c0e0005036181c00140a6053029814a072303600140d0606c005027813c09e04e81b8c0d000503218181baa002812a05a222329800800c0120068008888c966002604e00313259800800c01a264b3001001803c01e00f0078992cc004c0f400e00b00840e86eb800503d181d000a07030363754007159800980f800c4c9660020030068992cc00400600f0078992cc004c0f400e26604200244b3001002803c4c966002003198008054006260046080006805201700b805c02d041181f001207880420743758003007803a07a303a00140e0606c6ea800e2b300130260018992cc00400600d13259800800c01e00f13259800981e801c4cc08400489660020050078992cc0040063300100a800c4c008c10000d00a402e01700b805a082303e00240f100840e86eb000600f00740f4607400281c0c0d8dd5001c566002605000313259800800c01a264b3001001803c01e00f1332259800800c026264b3001001805402a264b30013040003899812000912cc00400a01513259800800c6600201b001898011821801a01a807403a01d00e4110608200481fa01681e8dd6000c02a0148200c0f400503b1bad001303c002803a07a303a00140e0606c6ea800e2b3001301d0018992cc00400600d13259800800c01e00f0078992cc004c0f400e00b00840e86eb400600e81e8c0e8005038181b1baa0038acc004c070006264b300100180344c966002003007803c01e264b3001303d003802c02103a1bad001803a07a303a00140e0606c6ea800e2b3001301b0018992cc00400600d13259800800c01e00f007803c4c966002607a0070058042074375c00281e8c0e8005038181b1baa003802a06640cc8199033206640cc8198c0d0dd5001409204902481220683006302e3754646644a6605e66e592412467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660086ea40b522010013259800981198189baa00189929981899b9649113666f756e642070726f7879207574786f3a3a200037326600c00291010013259800981218199baa0018992cc0040062b300130263034375400313259800800c0b2264b3001001816c0b605b02d899912cc00400605f13259800981f0014401a06081d8c0f000503a1bae001303b00240f0607200281b8c0d4dd5000c0ad03240ae05702b815a074303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4601e60666ea8c02cc0ccdd5000981a98191baa0018a9981824814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640bc646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806981a9baa300d3035375400444b30010018a508acc004cdc79bae30390010328a51899801001181d000a06640dd1300b330360014bd7044cc00c00cc0e0009031181b000a06830010013758600e605e6ea806c896600200314bd7044cc0c8c0bcc0cc004cc008008c0d00050311800800911192cc00400e2646466446601200466e29220101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100e206a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c817902f1bac3032002375a60600026466ec0dd418180009ba73031001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a606a003337149101023a200098008054c0d800600a805100a181c00144ca6002015303500199b8a489023a200098008054c0d8006600e66008008004805100a181c001206c303800140d466e29220102207d0000340c86eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900b20643758007133005375a0060051323371491102682700329800800cc02cdc68014cdc52450127000044004444b300133710004900044006264664530010069808002ccdc599b800025980099b88002480522903045206e40d066e2ccdc0000acc004cdc4000a4029148182290372068004401866e0c00520203370c002901019b8e00400240c46eb800d0351b8a4881022c200022323300100100322598009810000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000340b08160c01401491111112cc004c07003a264b300100181044c96600200315980098188014566002603c60586ea8006264b300100181144c96600200313259800800c092264b30010018992cc00400604d13259800800c09e04f13259800981c001c566002604a60666ea801a264b3001001814c4c96600200302a81544cc896600200302c8992cc00400605b02d899912cc00400605f13259800800c0c2061030899912cc00400606513259800800c0ce067033899912cc00400606b13259800800c4c9660020030378992cc0040062b30013048002899816007112cc00400a26605c01a44b30010028cc00401e330010058acc004c0e4c11cdd500c44c96600200303d8992cc004006264b300100181fc4c966002003159800982800144cc8966002607e00313259800800c10e264b30010018224112264b3001305500389981c800912cc00400a00f13259800800c66002003130023058003824205a8244122091048416460ac00482a208a8290dd6000c11208882a8c14800505018271baa0058acc004c0dc006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840b5048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b159800981f000c4c9660020030438992cc0040060890448992cc004c15400e26607200244b3001002803c4c96600200319800800c4c008c16000e09081720910488244121059182b00120a8822a0a4375800304482220aa30520014140609c6ea80162b300130400018992cc00400608713259800800c1120891332259800800c11a264b30010018acc004c15c00a26607600644b30010028acc004c118c150dd5001c4c96600200304a8992cc00400609704b825c4cc896600200304d8992cc00400609d04e82744c96600260be00700f827a0b8375a00304e417c60b800282d0dd6800982d801412d05c182c800a0ae30553754007049414913259800800c6600200313002305a0038252060825412a09504a416c60b000482b208e82a208f047823c11d058182a800a0a6375800260a800504482220aa30520014140609c6ea80162b300130350018992cc00400608713259800800c11208913259800982a801c4cc0e400489660020050078992cc0040063300100189801182c001c12102f412209104882420b23056002415104541486eb0006089044415460a40028280c138dd5002c566002606800313259800800c10e264b30010018224112264b3001305500389981c800912cc00400a00f13259800800c66002003130023058003824205e8244122091048416460ac00482a208a8290dd6000c11208882a8c14800505018271baa0058acc004c0cc006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840c1048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b15980099b8748038006264b3001001821c4c96600200304482244c96600260aa0071330390012259800801401e264b30010018cc0040062600460b000704840c1048824412209082c8c15800905441150521bac00182241110551829000a0a0304e375400b15980099b87480400062b3001304e375400b002821209e8212096412c825904b2096412c825904b209619800800c4cc0d006489660020050248992cc0040060870438992cc00400608913259800800c11608b045822c4cc89660020030478992cc0040062b300130580028cc0040062600e60b001104840b10484155048824412209082c8c1580050541bae0013055002415860a60028288dd6000c10e08682a0c14400904f410102318259baa003820209a82041020810404144609c0028260c13800a07d03e81f40f904f1826000a0943048375403103c411503c409d03c409d13259800800c0f607b03d899180198270021bad00181ea09c304b002412513259800800c0ee07703b899180198260021bad00181da0983049002411d038411503881c40e20708248c118005044182300140da06d03681b208e304400141086eb4004c10c00a0668220c10400503f1bad00130400028182082303e00140f06eb0004c0f400a05b02d40f8607600281c8dd6000981d00140aa05481d8c0e0005036181a1baa0068142062814206a3758003027813a070303500140cc606a005025812c09604a81b0c0cc0050311819801408e047023811a068303100140bc605a6ea800604281520428172043021810c0850321817800a05a302b375402d159800980a00744c9660020030208992cc0040062b300130310028acc004c078c0b0dd5000c4c9660020030228992cc004006264b300100181244c966002003025812c4c966002606c007159800981198189baa0048992cc00400604f13259800800c4c9660020030298992cc0040062b3001303a0028acc004c09cc0d4dd5001c4c96600200302b8992cc004006264b3001001816c4c96600200302e81744cc89660020030308992cc004006063031899912cc00400606713259800800c0d2069034899912cc00400606d13259800800c0de06f037899912cc00400607313259800800c0ea07503a8992cc004c12c00e2b300130383046375402113259800800c0f2264b300100181ec0f607b1332259800800c0fe264b30010018204102081132598009828801c5660020270418992cc00400608504282144cc89660020030448992cc00400608b045822c4c96600260ac00715980080ac11a264b3001001823c11e08f1332259800800c126264b3001001825412a09513259800982d801c6600204513303f026225980080140be264b3001001827413a264b3001001827c4c96600200305082841420a11332259800800c14a264b30010018acc004c18c00a33001001898039831804414d037414d060414e0a7053829a0c83061001417c6eb8004c180009061182f000a0b8375800304e82720be305c002416904b40b904b41606eb400609482d8c1600050561bad0013057016823a0b03055015414d046414c6eb400608a82b0c14c0050511bad001305201482120a63050013413904141386eb40060808288c13800504c1bad001304d00281ea09c304b0014124608e6ea804207682220768240dd6800c0e904b1824000a08c375a002608e0050374120608a0028218dd6800982200140d10451821000a08037580026082005031818a084303f00140f46eb0004c0f800a05d02e40fc607800281d0c0f000a05902c81640b103d181d000a0703036375400702a40cd02a40dd02a81540aa05481d8c0e0005036181c00140a20510288142072303600140d060646ea801204c817a04c8198dd6000c09604a81b0c0cc0050311819801408e047023811a068303100140bc605a6ea800604281520428172043021810c0850321817800a05a302b375402d01f40a08140444b300130173025375400713259800800c00a264b30010018992cc00400600913259800800c566002605c00519800801c4c966002603800315980098159baa002803c01902c4566002602800313259800800c01e264b300100180440220110088992cc004c0c800e01500940bc6eb80050321817800a05a302b3754005159800980d800c4c9660020030078992cc004c0c400a01300840b8605e0028168c0acdd50014019028205040a060526ea800600a804200a815a00b005802c01502f1816000a054302c002801c00e00700340b460540028140c098dd5001c0050231112cc004c058c090dd5001c4c9660020030028992cc004006264b300100180244c966002003159800981680146600200713259800980d800c4c9660020030078992cc0040062b300130300028992cc004c078006264b300100180544c966002003159800981980146600200300c805a020805a060805c02e01700b40d060620028178c0b4dd50014566002602c00313259800800c02a264b3001001805c02e0171332259800800c036264b3001001807403a01d1332259800800c042264b3001001808c04602313259800981d001c04e02481b8dd6800c04503a181b800a06a375a002606c00500e40dc60680028190dd68009819801402d0341818800a05e302d375400500940a88150c0acdd5000c02102d40220110088042062302e00140b060546ea800a2b300130130018acc004c0a8dd5001401e00c815a00c813902718141baa001802a014802a054802c01600b00540b860560028148c0ac00a007003801c00d02c1814800a04e302537540070014088402e01700b805a0383019301637540091598009804001c4c8c9660026012602e6ea8c06cc07000a294629410151bad301a0013016375400916404c8098602a602c002602a0088a4d153300b49011856616c696461746f722072657475726e65642066616c7365001365640281" + : "5919cb0101002222229800aba2aba1aba0aab9faab9eaab9dab9a9bae0069bae0059bae0049bae0039bae00248888888888896600330013008375401b370e90034dc3a4001370e90022444464653001300d3754003301100698088012444b300130060038cc004c050c044dd50024dc3a4005223233001001003223300300130020029b87480226e1d200a9b874803244b300130093012375400513232332259800980d801c0162c80c0dd6980c0009bae301800230180013013375400516404530103754002911111114c00488c96600260240031323259800981100140122c80f8dd71810000980e1baa0038acc004c0280062b3001301c37540070028b203a8b2034406860346ea800a4464b30013012001899192cc004c08800a00916407c6eb8c080004c070dd5001c56600260140031323259800981100140122c80f8dd71810000980e1baa0038b2034406860346ea800a44b30013011301a3754005132323259800981100144c8c966002602c00315980098101baa0028034590214566002601c0031323259800981300140222c8118dd6981200098101baa0028acc004c0540062b3001302037540050068b20428b203c407880f0c078dd50009810801c5901f192cc004c0780062b3001337129002180e800c5a26018603a00280e22c80f8dd518100009810000980d9baa0028b203291192cc004c04800626464b3001302200280245901f1bad3020001301c37540071598009805000c56600260386ea800e00516407516406880d0c068dd500124444646530012259800980b98101baa002899191919912cc004c0a800e266010605200a26601e00400d16409c604e0026eb4c09c008c09c004c098004c084dd500145901f48966002602e60406ea800a264646464653001375a6052003375a6052009375a605200730290024888966002605c00b13300c302d00913301300100a8b2056181480098140009813800981300098109baa0028b203e912cc004c05cc080dd500144c8c8c8c8c8ca60026eb0c0a80066eb4c0a80166eb4c0a80126eb4c0a800e6054004911112cc004c0c001a26601c605e01626602a0022646644b30013033003807c590301bae3030001375c606000c606000b1640b4302a00130290013028001302700130260013021375400516407d2259800980b98101baa002899191919194c004dd61814800cdd698148024dd69814801cc0a40092222598009817002c4cc030c0b40244cc04c0044c8cc8966002606200700d8b205c375c605c0026eb8c0b8014c0b80122c815860520026050002604e002604c00260426ea800a2c80fa44b300130173020375400513232323259800981480144c9660026038604a6ea8006264646644b3001302e003899808981680400545902b1bae302b001375c60560046056002604c6ea80062c8120c0a00122c8130dd718138009813800981300098109baa0028b203e91192cc004c060006264b300130270018998061813000801c5902418111baa0038acc004c040006264b300130270018992cc004c068c08cdd5000c4c8c8c966002605600513300c302a00313300c0010078b20503029001302900130243754003164088604c00316409060446ea800e2c810102018101baa0028cc0048c08cc090c090006460466048003374a90004888c96600260320031323259800981480140122c8130dd7181380098119baa0038acc004c044006264b300130280018998089bac30270012259800801401633001007981480144c004c0a8009007204e8b204a30233754007159800980c000c4c96600260500031330113758604e00244b3001002802c6600200f3029002898009815001200e409d16409460466ea800e2b3001301a00189919912cc004c0a80062660266eb0c0a400489660020050078cc004026605600513001302c0024024814a2c8138dd69813800981400098119baa0038acc004c03c00626464b300130290028024590261bad3027001302337540071598009807000c4c8c96600260520050048b204c375a604e00260466ea800e2b3001300d001899192cc004c0a400a0091640986eb8c09c004c08cdd5001c590212042408481090212042408460426ea80092222332259800980d98121baa002899191919912cc004c0b800e264b30013021302a37540031323232323232323232329800981c000cc0e002660700113038007981c0034c0e001660700093038003981c0012444444444b3001304200a89980d182080989980d00409980d00389980d00309980d00289980d00209980d00189980d00109980d00089980d0048acc004c0d0c0f4dd500ac4c8c8c8c8ca60026eb8c118006608e003375c608c00b375c608c009375c608c007375c608c0049111112cc004c134016266060609800a2b3001303f30483754043132323259800982800144cc0e4dd61827801912cc00400a266062006330012232330010010032259800800c52f5c1133054374e60066eb0c154004cc008008c158005053488c0bccc14930010b4a5369676e6174757265310033052305330503754004660a498101400033052375200297ae09192cc004cdc4800a405d13371666e012080010010028acc004cdc4800a41fc0713371690580099b8b001002899b8b482c804cdc599b830014820010cdc599b86001482001000904e209c371a003230523053305330530019111919912cc004c12800a2b3001304a3053375400314c103d87a80008a6103d8798000414915980098248014566002609260a66ea80062980103d87a80008a6103d87b8000414913322598009826000c530103d87b80008acc004c110006264b30013371000600314c0103d87980008acc004cdc4000801c530103d87b80008a6103d87a8000415482a8dd6982c982b1baa0038a6103d8798000415082a0dd6982b982a1baa00330533754002829105218289baa001300200330010039b804800a460a460a660a660a660a660a660a660a60032232330010010032259800800c5284566002600660aa00314a313300200230560014140829a6e952002918291829982998299829800c8c148c14cc14cc14cc14cc14cc14c005222222222229800919b8a489018400337146464b300133712002901744cdc599b80483000400400a2b300133712002907f01c4cdc5a41e00266e2c00400a266e2d20f2013371666e0c0052080043371666e18005208004002416882d0dc68009bae305d305a375400266e28c028dd7181d182d1baa0013371460146eb8c0ecc168dd500098051bae3009305a37540032323232332259800982a8014528456600260a80051980099baf3062305f375400298103d87b8000a50a514175132332259800982c0014528c56600260a00051332259800982918319baa30443064375400d1337100040031337120040028310dd6983298311baa00359800982818309baa30423062375400f100189807800a0c08a5041808300c17cdd50009bad30633060375400860c460be6ea800505d20ba305c375400260c060c200660be60b86ea8004c178004c168dd5000c8888c8cc00400401488c96600260ac0031323259800982c18309baa001899194c004dd718338014dd718339834000cdd71833800ae5460ce0026eb0c194c188dd5000c52820c032330010010082259800800c5300103d87a80008992cc004cdc79bc8375c60ce0020091304333066374e00297ae0899801801983400120c4375860cc0028320dd7183198301baa0028acc004c138006264660020026eb0c190c184dd5001912cc00400629462b30013300500530650018998010011833000c52820c0418d159800982a800c4cc02cdd6183198301baa0022330040040018acc004c15c00626466e24dd6983200099198008009bac306530660022259800800c52000899912cc004cc02002000a260240031001418c60cc0026600400460ce0028320c180dd500145660026098003132332259800982898311baa0028acc004c144c188dd518331833801c4cdc49bad3066306337540040031337106eb4c198c18cdd5001000a0c28a50418460c80026eb4c190c184dd500198301baa30403060375400b1598009825800c4c8cc896600260a260c46ea800a2b300130513062375460cc60ce0071337120026eb4c198c18cdd500144cdc40009bad306630633754004830a294106118320009bad30643061375400660c06ea8c18cc180dd5002c4c8c8cc004004018896600200314a115980099baf003306230660018a518998010011833800a0c241906014660c460c660c06ea80092f5c082f105e20bc417882f105e182f1baa001911919800800801912cc00400629422b30013375e60b860c0002600e660be6ea400d2f5c114a31330020023061001416c82f122223259800982a182e9baa04e8991919912cc004cc014c108c188dd5001829c56600260a060c26ea8c194c8cc004004dd6182198319baa30663063375400a44b30010018a5eb84103d87a80008101800044c8cc8966003300130553066375460d40074a14a2832a2660d330014a14c103d87a8000a60103d87980004194660d26e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c1b000400e294626600400460da002833906a44cc1a6600294298103d87a8000a60103d87980004194660d26e9c0092f5c11330699800a51a60103d87a8000a60103d87980004194660d26e9ccc1a4dd400080125eb8106520ca375860d060d20026eb4c1a0008cc008008c1a0005065456600330013300d375860ca60c46ea814c8cdd7983318319baa306630633754608660c66ea8004c034cc194dd482e25eb8294294506044c9660033001306630670019980a9bac30443063375400a464660ce60d0004660ce608c60ca6ea8004cc19cdd498061980b183418329baa0010054bd7018339834000cc03cc18cdd502a4dd5980598319baa05440211330073756601660c66ea8150dd71833000c59061192cc004c1640062660ca6ea417ccc194c198c18cdd5183318319baa0404bd70456600260a200313306537520be660ca608660c66ea8c198c18cdd502025eb822b3001304d0018998329ba905f33065300b3063375460cc60c66ea81012f5c115980099b87480380062660ca6ea417ccc194c03cc18cdd5183318319baa0404bd704566002609e00313306537520bc660ca601860c66ea8c198c18cdd502025eb822b3001304e0018998329ba905e3306530023063375460cc60c66ea81012f5c1159800982d000c4cc194dd482e99832980918319baa30663063375408097ae08acc004c1600062660ca6ea4174cc194c110c18cdd5183318319baa0404bd7044c96600260b460c66ea80062b30013375e601a60c86ea8155300101a000899833183398321baa0013306630673068306830683068306830683068306830683064375460ce60c86ea81052f5c1164189164188600460c66ea8c10cc18cdd502020c24184830906120c24184830906118309baa3065306237540071641811641811641806e50dd98009183218329832983298329832800981f982f9baa0013061305e375409d13232325980099802182098309baa0020528acc006600260c860ca60ca60ca60ca60ca60ca60ca60ca60c26ea8c190c184dd501f4cc04cdd6182098309baa00323233065306600233065304430633754002660ca6ea4c028cc050c198c18cdd5000801a5eb80c194c198006601a60c26ea814a6eacc024c184dd5029200c8998029bab3009306137540a46eb8c028c184dd5182098309baa03e8b20be8b20be37286ecc004c188c17cdd50009830982f1baa04e417044b30013055305e37540051323300b375860c660c06ea80088cdd7983218309baa0010023062305f375400513322598009803800c528c566002600e00514a1159800cc004cdd7cc004c190c184dd50014c190c184dd5000c8c8c96600260a460c66ea8c19cc1a000a2003132598009829800c4c03ccc19cdd418091bad30683065375400497ae08acc004c16c00620051002418c8318c18cdd5000a0c43066001306237540028079300103d87b8000a50a51417d1980099baf9800982098309baa002982098309baa001919192cc004c148c18cdd51833983400144006264b3001305300189807998339ba8337006eb4c1a0c194dd50012400297ae08acc004c16c00620051002418c8318c18cdd5000a0c43066001306237540028079300103d8798000a50a51417d14a082f905f20be3062305f3754004601660be6ea800505d113259800982298271baa001899191919912cc004c16000e264646644b3001305c00389805982e0064590591bae3059001375c60b200460b20026eb0c15c0162c82a8dd6982a8009bad305500230550013054001304f375400316413460a2004827a2c8268c138004c138004c124dd5010c5904745904a0c118004c114004c110004c10c004c0f8dd500ac5903c45903f0c0e0004c0dc004c0d8004c0d4004c0d0004c0cc004c0c8004c0c4004c0c0004c0acdd5000c590291816802c5902b181580098158011815800981500098129baa0028b2046300330233754646464b3001301c3025375400313259800980e18131baa0018992cc004c078c09cdd5000c4c8c8cc8966002606000710058b205a302d001375c605a004605a00260506ea80062c8130c0a8c09cdd5000c59025180398131baa3006302637546052604c6ea80062c8120c8cc004004dd6180318131baa0172259800800c5300103d87a80008992cc004c8cc004004c014dd5980498149baa30093029375400444b30010018a508acc004cdc79bae302d0010278a518998010011817000a05040ad130073302a0014bd7044cc00c00cc0b00090261815000a05030010012259800800c52f5c113302730243028001330020023029001409860020024888888966002603801d132598009815800c4c966002603c604e6ea800626464646644b300130310038992cc004c090c0b4dd5000c4c8c8c8c8c8ca6002606e0033758606e00b375a606e009375a606e007303700248888966002607a00d1330263758607801644b3001002899814003112cc00400a26604200a2660420122b30013033303c3754023132323259800982200144c8cc89660026072005132598009824000c4cc0c4dd61823800912cc00400a009133024304900213001304a002411d16411460866ea800e2b300130310028992cc004c1200062660626eb0c11c00489660020050048998121824801098009825001208e8b208a30433754007159800981c00144c96600260900031330313758608e00244b300100280244cc094c1240084c004c12800904745904518219baa0038acc004c0e800a2646464b3001304a0028998199bac304900322598008014566002607c608e6ea800e264646644b3001305000380545904d1bad304d001375a609a004609a00260906ea800e2c823226604e6096004260026098004824a2c8238c120004c120004c10cdd5001c566002605e005132598009824000c4cc0c4dd61823800912cc00400a009133026304900213001304a002411d16411460866ea800e2b3001302e0028992cc004c1200062660626eb0c11c00489660020050048998131824801098009825001208e8b208a30433754007159800981680144c96600260900031330313758608e00244b300100280244cc09cc1240084c004c12800904745904518219baa0038acc004cdc3a401c005132598009824000c4cc0c4dd61823800912cc00400a009133027304900213001304a002411d16411460866ea800e2b30013370e9008001456600260866ea800e00316411116410482090412082410482090412082410460806ea80044cc0740084cc0b8058896600200501e89919912cc004c128006266046609200226008609400b16411c6eb8c11c004c120004dd61823001208830430038b208230420013042001303d37540231640ed13230023042003375a608000481f2264600460800066eb4c0f800903c45903a0c0dc004c0d8004c0d4004c0d0004c0cc004c0b8dd5000c5902c1818002c5902e1bac302e001302e002302e001302d0013028375400316409860540031640a0604c6ea805a2b3001301400e8992cc004c0ac006264b3001301e30273754003132323259800981780144c966002604460566ea800626464b300130320018992cc004c094c0b8dd5000c4c8c8c8c8c8ca60026eb4c0e00066eb0c0e00166eb0c0e00126eb4c0e000e6eb4c0e00092222259800981f00344c966002606260746ea8006264646644b3001304300389919912cc004c11800e2646644b30013049003899810982400c09981900d912cc00400a0451323322598009827000c4cc09cc1340044c010c1380162c8258dd7182580098260009bac304a00241211641186eb4c118004dd698230061823005c590431bad3043001375a608601460860131641006eb4c100004dd698200011820000981d9baa0018b2072303d00b8b2076181c000981b800981b000981a800981a00098179baa0018b205a30310028b205e3031001302c37540031640a8605c0071640b06eb0c0b4004c0b4004c0a0dd5000c590261815000c5902818131baa0168b204840902259800980b180f9baa00289919192cc004c09c00a26600c604c006264b3001301a0018acc004c090dd500140162c812a2b30013012001899192cc004c0a800a00f16409c6eb8c0a0004c090dd50014566002603200313232598009815001401e2c8138c0a0004c090dd50014590222044408860446ea80062c8120c094004c094004c080dd500145901e112cc004c054c078dd500144c8c8c966002604c005133008302500313259800980c800c4c96600260500031323259800980e000c4c966002605600313300d302a0010098b205030263754005159800980a000c4c8c8ca60026eb4c0b00066eb4c0b000e6eb4c0b0009222598009818002403a2c816860580026056002604c6ea800a2c812102418121baa00130270018b204a302337540051598009808800c56600260466ea800a00b1640911640848108c084dd5000c5902318120009812000980f9baa0028b203a22b30013008003899192cc004c024c048dd5180b180b8014528c5282022375a602a00260226ea80122c807900f0c040c044004c040011149a26cac80301", + Type.Tuple([PolicyId, ScriptHash, ScriptHash, ScriptHash, ScriptHash]), + [ + proxyPolicyId, + mintValidator, + stakeValidator, + managementValidator, + yieldOracleValidator, + ], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolStakeProtocolStakeWithdraw { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594a1d010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692013765787065637420726571756573742e64657374696e6174696f6e2e6164647265737320213d207969656c645f706f745f6164647265737300168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495d6578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d20726571756573742e616d6f756e7400168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491765787065637420757364725f6d696e746564203d3d203000168a99801a490f65787065637420666565203e3d203000168a99801a4944657870656374207661756c745f646174756d5f6f75742e646966667573696f6e5f656e64203d3d207661756c745f646174756d5f696e2e646966667573696f6e5f656e6400168a99801a4948657870656374207661756c745f646174756d5f6f75742e646966667573696f6e5f7374617274203d3d207661756c745f646174756d5f696e2e646966667573696f6e5f737461727400168a99801a4944657870656374207661756c745f646174756d5f6f75742e70656e64696e675f7969656c64203d3d207661756c745f646174756d5f696e2e70656e64696e675f7969656c6400168a99801a49756578706563740a2020202076616c69646174655f7661756c745f6e6f5f74726173685f746f6b656e73280a2020202020207661756c745f696e7075742c0a2020202020207661756c745f6f75747075742c0a20202020202073657474696e67732e72656769737472792e757364722c0a202020202900168a99801a49b06578706563740a20202020216c6973742e616e79280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a2020202020202020696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2073657474696e67732e636f6e6669672e756e7374616b65645f7969656c645f706f742e7061796d656e745f63726564656e7469616c0a2020202020207d2c0a202020202900168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f6461746100164888888888888888888896600330013019375403f370e90034dc3a4001370e90022444464653001301e3754003302200698110012444b300130060038cc004c094c088dd500248c098c09cc09c0064604c604e003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba5480026e95200248888888888ca6002444b30013015302f375400713259800800c00a264b30010018992cc00400600913259800800c566002607000519800801c4c966002603400313259800800c01e264b30010018acc004c0ec00a264b3001301d0018992cc00400601513259800800c566002607c00519800800c032016807201681da01700b805c02d03f181e000a074303837540051598009809000c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c966002608a0070138092084375a003011411460840028200dd680098208014039042181f800a07a375a002607c00500b40fc607800281d0c0e0dd50014025035206a3036375400300840e1008804402201081e0c0e4005037181a9baa0028acc004c03c0062b300130353754005007803206c803206440c860666ea800600a804200a81aa00b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4888c966002602c00313259800800c00e264b300100180240120090048992cc004c0e000e00d00540d46eb8005038181a800a066303137540091598009805800c56600260626ea801200700240c900240b88170c0bcdd5001c888ca6002003004801a0022223259800980c800c4c9660020030068992cc00400600f007803c01e264b3001303b003802c0210381bae00140ec607000281b0c0d0dd5001c566002601c00313259800800c01a264b3001001803c01e264b3001303b003899809000912cc00400a00f13259800800c6600201500189801181f001a014805c02e01700b40fc607800481d201081c0dd6000c01e00e81d8c0e0005036181a1baa0038acc004c060006264b300100180344c966002003007803c4c96600260760071330120012259800801401e264b30010018cc00402a00313002303e003402900b805c02e01681f8c0f000903a40210381bac001803c01d03b181c000a06c30343754007159800980d000c4c9660020030068992cc00400600f007803c4cc89660020030098992cc00400601500a8992cc004c0f800e26602a00244b300100280544c96600200319800806c006260046082006806a01d00e8074039042181f801207a805a076375800300a805207c303b00140e46eb4004c0e800a00e81d8c0e0005036181a1baa0038acc004c034006264b300100180344c966002003007803c01e264b3001303b003802c0210381bad001803a076303800140d860686ea800e2b3001300c0018992cc00400600d13259800800c01e00f0078992cc004c0ec00e00b00840e06eb400600e81d8c0e0005036181a1baa0038acc004c02c006264b300100180344c966002003007803c01e00f13259800981d801c01601081c0dd7000a076303800140d860686ea800e00a8189031206240c4818903120623032375400491119192cc0040063300122259800980d181a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b3001301f0018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c078006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005403100540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e0028192444b3001301a3034375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607400315980099b8948010c0e400600d13259800981f80244c9660026042003159800981e1baa006804c02103d4566002602c00313259800800c026264b3001001805402a015132598009821801c0320168200dd6800c0290431820000a07c303c375400d1598009810000c56600260786ea801a01300840f500840e481c9039181d1baa005803a0783014303900140dd00640ec6ea800600b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c005032488966002603460686ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981f801c02200e81e0dd6800c01903f181e000a074375c002607600481e0c0e4005037181a9baa003800a064911192cc004c06c006264b3001001801c4c9660020030048024012264b3001303d003803401503a1bad001802207a303a00140e0606c6ea80122b300130100018acc004c0d8dd5002400e00481ba0048199033181a1baa0039112cc004c068c0d0dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b3001001803c01e00f0078992cc004c10000e2b30013021303b375400d13259800800c026264b3001001805402a01500a899912cc00400601913259800800c03601b00d806c4c966002608c00719800805403e01c80a201c8218dd7000a08c304300141046eb8004c1080090431820000a07c303c375400d00840e500840f46eb8005040181e800a076303d002802c01600b00540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c9303137540029111114c00488966002604060746ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c11800a330010068cc00400601300840390084041008410d00880440220108238c1100050421bad0013043002802a088304100140fc6082005003801c00e0068210c0fc00503d181d9baa003800a0709112cc004c080c0e8dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b132598009826001c6600201919800802403e01c80a201c80b201c8248dd6800c03504c1824800a08e3049002805c02e01700b4128608e0028228dd6800982300140210471822000a084375a00260860050054110608200281f8c10400a007003801c00d042181f800a07a303b375400700140e1222598009810181d1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002609e00719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c96600260a800701780b20a2375c00282a0c14400504f1bae00130500024144609c002826202280ba02280ca0228260dd6000c0420208278c13000504a1826001403a01d00e807209a304a00141206eb4004c12400a0168250c11c0050451bad0013046002804208e304400141086eb4004c10c00a00a8220c10400503f1820801400e007003801a084303f00140f460766ea800e00281c2444b30013020303a375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c13000e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c14400e02901341386eb80050511827000a098375c002609a0048270c12c0050494039014403901640390491bac001806c03504c1824800a08e3049002805c02e01700b4128608e0028228dd6800982300140210471822000a084375a00260860050054110608200281f8c10400a007003801c00d042181f800a07a303b375400700140e122232598009810800c4c9660020030038992cc0040062b300130420028cc00400600b004402900440fd00480240120088218c10000503e181e1baa0048acc004c058006264b3001001801c4c966002003159800982100145660026046607a6ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c11800a330010038cc004006013008403d008403d008410d00880440220108238c1100050421822001401a00d006803208a30420014100607c6ea800600881da00881fa00900480240110431820000a07c303c375400900240e481c8c0e8dd5001c566002603a606e6ea801e264664464b30013021303b375400313322598009811981e9baa0018cc004dd69820981f1baa0019820981f1baa301a303e375400d2225980080145300103d87a80008acc004c0980062602e66086608800497ae08cc00400e608a005337000029000a00640f8821244646600200200644b30010018a508acc004c00cc1140062946266004004608c00281f9043488966002603660806ea8c110c8cc00400400c896600200314bd708103d87a80008101800044c8cc8966003300130203045375460920074a14a2821a26609130014a14c103d87a8000a60103d8798000410c660906e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12c00400e29462660040046098002822904944cc122600294298103d87a8000a60103d8798000410c660906e9c0092f5c11330489800a51a60103d87a8000a60103d8798000410c660906e9ccc120dd400080125eb8104320863758608e60900026eb4c11c008cc008008c11c00504444ca6002003004801d200040044444b30010038acc00400a2003153304349112657870656374205b5d203d206c6973745f6200164119159800801454cc10d2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc0040126092007304900299912cc004c01c00a266e0000cdd6981198239baa0028a99822a4811a6578706563742076616c69646174696f6e2872657175657374290016411060900066eb4c120009004208c4119153303f49012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e646963657329001640f9222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01904444cc014014c12c0110441bae3044001375a608a002608e0028228c8c8cc004004018896600200300389919912cc004cdc8804801456600266e3c02400a20030064115133005005304c00441146eb8c114004dd598230009824000a08c14bd6f7b6300a400122259800981318201baa0038992cc00400600513259800800c00e007003899912cc00400600b13259800800c01a00d006899912cc00400601113259800800c026013009899912cc00400601713259800800c03201900c8992cc004c14400e01d00d41386eb40060188288c13800504c1bad001304d002804a09c304b00141246eb4004c12800a00c8258c1200050461bad0013047002801a0903045001410c60826ea800e00281f24608460866086608660866086608660860032232330010010032259800800c52f5c1133225980099baf304730443754608e60886ea8c080c110dd5001180c998231ba90054bd7044cc118008cc0100100062660080080028208c114004c11800504348c108c10cc10cc10c0064444646600200200a44b300100189982319bb0375200a6ea00112f5bded8c113298009bae30440019bad304500198248012444b30013372001200713304a337606ea4024dd4004002c56600266e3c02400e33001009804400a46609666ec0dd48051ba80010028800a00e89982519bb037520066ea0008cc018018005045208a1823800a08a91111919800800802912cc00400626608c66ec0dd48029ba60044bd6f7b63044ca60026eb8c1100066eacc11400660920049112cc004cdc8004801c4cc128cdd81ba9009374c01000b15980099b8f0090038cc00402601100291982599bb037520146e9800400a2002803a26609466ec0dd48019ba60023300600600141148228608e002822a4b30010018a518a50410112222232598009814800c00a260060028208cdc0002001cdc0a400122232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6090003375a609200333003003304d002402460960028248dd598230019bae304300133003003304800230460014111222329800800c012006800888966002005159800800c528c528208a8acc00400629422b300133004304700230470018cc00400e60900053048001400d14a08209045208a9112cc004c098c100dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800982680146600200f19800802c4c966002605e00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b300130570038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001305c00380cc0610591bae001417060b200282b8dd7000982c00120b23056001415101341506eb0006025012415c60a80028290dd68009829801403d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604800313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b300130570038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001305c00380cc0610591bae001417060b200282b8dd7000982c00120b23056001415101341506eb0006025012415c60a80028290dd68009829801403d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002605c00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a0251332259800800c052264b300100180ac056264b3001305a0038acc00400602d13259800800c05e02f01780bc4cc89660020030198992cc00400603501a80d406a264b3001305f00380e406d05c1bae001417c60b800282d0dd7000982d80120b83059001415d016415c6eb000602b015416860ae00282a8dd6800982b0014049057182a000a0a4375a00260a600500f415060a20028278dd6800982800140310511827000a098304a37540091598009818000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c15000e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c16400e02d01541586eb8005059182b000a0a8375c00260aa00482b0c14c00505140410511bac001807c03d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f13259800982a001c0460208288dd6800c03d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604400313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a02513259800982b801c05202682a0dd6800c049057182a000a0a4375a00260a600500f415060a20028278dd6800982800140310511827000a098304a37540091598009810800c4c96600200300b8992cc00400601900c80644c96600260a200700e806a09c375a00300c4144609c0028260c128dd5002456600266e1d200e0018992cc00400601713259800800c03201900c8992cc004c14400e01d00d41386eb40060188288c13800504c18251baa004805208e411c8239047208e411c823904718241baa003804a02e804a034804a094304b00141246096005007803c01e00e8260c1240050471824801401600b005802a09430470014114608e005003801c00e0068240c11400504318209baa003800a07c912cc00400629344c966002003149a264b3001337206eb8c104c11400cdd71820800c4cc010010cc110004c11800a2a660809201326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f72646572001640fc60880028210c1100050414dc4a40013710900024444444444444444444453001305237540293013013914c004cc0500088cdd7982c982b1baa305930563754606460ac6ea8004c0accc160dd480125eb8294294505248896600266e24dd69819182b1baa00248002200713370200664653001375a60b6003375a60b660b80033259800981f182c1baa001899912cc004c100c168dd5000c56600266e24cdc09bad305e305b375400200490405d5b81c400a2a660b2920129657870656374206869202d206c6f203c3d206d61785f646966667573696f6e5f726174655f7370616e0016416115330594912865787065637420536f6d6528686929203d206765745f74785f75707065725f626f756e6428747829001641606eb4c170c164dd5000992cc004c0d0c164dd5000c4c0c0cc170c174c168dd5000a5eb822980103d87a8000415c60b860b26ea8c0d4c164dd5180a182c9baa0048a9982ba492865787065637420536f6d65286c6f29203d206765745f74785f6c6f7765725f626f756e64287478290016415864b30013033305837540031302f3305b305c3059375400297ae08a6103d87a8000415860b660b06ea8c16cc160dd51809982c1baa0039bad305b0024888966002b30013371200290004528c4cdc480180120b28a400115980099b890020048800c4c8cdc199b803370066e08008cdc0802001800a400200266e0400c01105920b2182d800982d182b1baa002414d22329800800c00e00480088896600200510018994c00401260ba00798008014dd7182c000cdd5982c800c88888c966002602a00300289801800a0b832329800800c01a00a80088896600200510018994c00401260ce00798008014dd71831000cdd69831800c01501b20083065002418ca0268081004182d80120b291919800800801112cc004006297adef6c608991982c99bb03056001374c64660020026eacc160008896600200314bd6f7b63044c8cc170cdd8182c8009ba8300e375a60b40026600600660bc00460b800282d0cc00c00cc16c008c1640050574888966002607800314a3133712002646600200200a44b30010018a4001133225980099baf305e305b375400400f13370000330013756606e60b66ea800a6eb8c17801a6eb8c0dc01901844005058182e00099801001182e800a0b441513003003488888888ca600244646600200200444b30010018a5eb822660c464b30013046306037540031306430613754003153305f4913965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641786600a0086eb4c18c004cc008008c19000506148888c966002608c60c06ea8006264b30013375e60ca60c46ea8c194c188dd5181f18311baa001303733064375200a97ae08acc004c0f260026eacc0f8c188dd5181f18311baa001802d2210d7374616b696e675f7661756c7400407d13259800982398311baa0018992cc004006330010018998331ba898009bab304030643754608060c86ea800e00d4890455534472004084660cc002660cc00697ae082ba04082bc15e0af05741a460cc60c66ea80060aa8300c0fcc188dd5181f18311baa0018a998302481566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d15330604914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea80062a660be92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641786600a00800322223259800982318301baa0018992cc004cdd7983298311baa306530623754002606e660c86ea40152f5c1159800981e4c004dd5981f18311baa001802d2210d7374616b696e675f7661756c7400407d13259800982398311baa0018992cc004006330010018acc004cdd7980e98321baa0034c103d87a80008998331ba898009bab304030643754007006a4410455534472004084660cc002660cc00697ae08a99831248126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500164185057408105782bc15e0ae8348c198c18cdd5000c54cc18524012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d00164180607e60c46ea80062a660c092014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d153306049141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea80062a660be92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641786600a008003222222225980099baf30673064375400e60ce60c86ea801a2b30013375e608260c86ea801cc100c190dd500344c9660033001001a5191112cc0040062603000514a0833101844c96600266e240100062b30013371200200710018a998322481216578706563742064656c697665726564203c3d206d61785f64656c6976657265640016418d1533064491216578706563742064656c697665726564203e3d206d696e5f64656c6976657265640016418d30010019bae30680049bae3068306900440891533063490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641886601a6eacc100c190dd500398064c004dd71833802cdd718339834002cc060011222598009826000c402e3300100b801cc8c8008c038004cc1a4cdd81ba9002375000297adef6c6091111192cc004c08c0060051300300141a8653001004804401e444453001005801c01200500140188129408501e20c8454cc18924128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d0016418515330624912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e61646472657373001641852229800998041bab303b305f3754004600e6eacc0ecc17cdd5181d982f9baa003a5191112cc0040062b30013371e008911008a518acc004cdc7802002c4cdc7801a4410455534472008a50418083022941060202448888966002607401d19800998029bac3064306137540446eb0c0f4c184dd50144dd6183218309baa028981e98309baa0314889660026601e6eb0c19cc190dd50221bae306730643754608060c86ea80062b30019800998119bac306730643754088466ebcc1a0c194dd5183418329baa30413065375400260d060ca6ea8c104c194dd5182118329baa002a50a514185132598009809800c4c8c8cc88cc89660026034005159800acc004c14000a294626032002834226644b3001980080140324464b30013054306f375400313259800800c6600200315980099baf302a3071375400660e860e26ea80122b30013375e609a60e26ea8004c1d0c1c4dd5001c56600266e24dd6982698389baa00398009bab304d30713754609a60e26ea80126eb8c1d00166eb8c13401502e44c966002609660e26ea8006264b30013370e6eb4c1d8004dd6982798399baa005899b87375a60ec60ee0026eb4c140c1ccdd5002c52820e03072375400314a08378c138c1c4dd5000c1a106e419d06e419906e419502241960cb065832a0ec30733070375400306241b4609860de6ea8c12cc1bcdd5001203e899194c004c1c800730013758609860de6ea813e660e2609660de6ea8c12cc1bcdd500619838a60106457355534472004bd704c12cc1bcdd5182618379baa00c4888ca6002003008809404500111112cc00400e2900044cc8966002009070899912cc0040160e713322598009830983d9baa0018992cc006600266ebcc20004c1f4dd5184000983e9baa00500ca50a5141e91337013001375660b260fa6ea8c164c1f4dd5003c00661000260fa6ea8016023375a60b260fa6ea801601b375a60b460fa6ea8016b3001306201489bad3059307d375400b13370666e08dd6982c983e9baa00501401341e880f26002017006802400d00b41e107a183f983e1baa00183b20f2307e0053301f00b375a60fa00a83d8c1ec010c1f0011079183c801983d001a0ee4dd698390012444b30019800983a983b0064c1d4c1d80126eb8c138c1c8dd5182718391baa00f404915980099b87375a609c60e46ea800cdd6982718391baa00b8acc004cdc39bad304f307237540066eb4c13cc1c8dd5005c56600266e1cdd6981598391baa003375a605660e46ea802e2646644b300130240018acc004cdc39bad30783075375400c66e000300162b30013370f30013756607660ea6ea81566eb8c144c1d4dd51828983a9baa012a4410573555344720040c800b159800982d4c004dd5981d983a9baa0559bae30513075375460a260ea6ea804a91104555344720040c9198009bac3052307537540ab30513075375460a460ea6ea804a660ee60a260ea6ea8c144c1d4dd50091983ba61054455534472004bd70400501c4199072454cc1cd2412c6578706563742073757364725f6d696e746564203d3d20746f74616c5f73757364725f64656c697665726564001641c91533073491606578706563740a202020207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f7265202b20746f74616c5f73757364725f64656c697665726564001641c906541c8b3001302100a8acc004cdc499b8200300933704002015149a2a660e29215f6578706563740a2020202020207661756c745f757364725f696e202a2063697263756c6174696e675f73757364725f6265666f7265203e3d20746f74616c5f73757364725f64656c697665726564202a20736574746c65645f6265666f7265001641c115980099b890030018a4d153307149012d657870656374207661756c745f757364725f696e203e3d20746f74616c5f73757364725f64656c697665726564001641c08380cdc080780099b8100100a830a0de83020de82fa0de82f20de1839000cc004dd6182518369baa04d9bae3026306d3754609260da6ea802a6eb8c124c1b4dd5182498369baa00a817a01e8a99835a481466578706563742076616c69646174655f7374616b655f696e70757473286f726465725f696e707574732c207374616b655f72657175657374732c20757364725f617373657429001641a86604a6eb0c1b8c1acdd50259bae3048306b3754608e60d66ea8020cc1b4c11cc1acdd5182398359baa0083306d4c01054455534472004bd70454cc1a52413a6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c20736574746c65645f6265666f7265203e2030001641a11533069491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001641a06eb4c1b0c1a4dd50014c004006005049404c60d40026eb4c1a8008c1a800660026eb0c1a0c194dd5022cdd7180f18329baa304130653754005375c608260ca6ea8c104c194dd500140a5008454cc18d2411c65787065637420746f74616c5f757364725f7374616b6564203e2030001641893001003801496600260266eb4c104c194dd5000c56600260266eb4c108c194dd5000c4c128dd6981598329baa0018a50418914a08311022413d061413906122b3001303900e8cc004cc014dd6183218309baa0223758607a60c26ea80a26eb0c190c184dd50144c0f4c184dd5018a444b30013300f375860ce60c86ea8110dd7183398321baa304030643754003159800cc004cc08cdd6183398321baa04423375e60d060ca6ea8c1a0c194dd5182098329baa001306830653754608260ca6ea8c108c194dd5001528528a0c28992cc004c04c0062646466446644b300130190038acc004c06400a2b300130190018994c004dd69837800cdd698379838000ccc1b8c120c1b0dd5182418361baa0093306e4c106457355534472004bd704cc098dd6183798361baa04c375c609260d86ea8c120c1b0dd5004a4444b30019800800c03e4464b300130573072375400313259800800c6600200315980099baf302d3074375400660ee60e86ea80122b30013375e60a060e86ea8004c1dcc1d0dd5001c56600266e24dd69828183a1baa00398009bab30503074375460a060e86ea80126eb8c1dc01a6eb8c14001903144c966002609a60e86ea800626464b30013370e6eb4c1e8008dd69829983b9baa0068acc004cdc39bad307a001375a60a860ee6ea801a266e1cdd6983d183d8009bad303d3077375400d14a083a22941074183d000983a9baa0018a5041c860a260e86ea80060d6838a0d4838a0d2838a0d0812a0d106883441a1079183b18399baa001832a0e0304f30723754609c60e46ea8009022456600266e1e60026eacc0d8c1c0dd50284dd7182618381baa304c3070375401b48810573555344720040b46048019132329800983a800e60026eb0c13cc1c8dd50294cc1d0c138c1c8dd5182718391baa00f330744c1054455534472004bd704c138c1c8dd5182798391baa00f4888ca600200300780ac05100111112cc00400e2900044cc8966002009073899912cc0040160ed13322598009832183f1baa0018992cc006600266ebcc20c04c20004dd51841809840009baa00500ca50a5141f51337013001375660b86100026ea8c170c20004dd5003c0066106026100026ea8016025375a60b86100026ea801601b375a60ba6100026ea801666e04cdc199b82375a60b86100026ea801405805cdd698231840009baa0054085300100b8034012006805a0f683e8c20804c1fcdd5000c1e507c184080802998110059bad30800100541f860fc00860fe00883e0c1f000cc1f400d07a26eb4c1d400922259800cc004c1e0c1e403e60f060f2009375c60a260ea6ea8c144c1d4dd5009202a8acc004cdc39bad3051307537540066eb4c144c1d4dd5007456600266e1cdd69829183a9baa003375a60a460ea6ea803a2b30013370e6eb4c0b8c1d4dd50019bad302e3075375401d132598009812800c56600266e1c008cdc0807004c56600266e1cdd6983c983b1baa0043370201a025159800982dcc004dd5981e183b1baa0569bae30523076375460a460ec6ea804e91104555344720040cd198009bac3053307637540ad30523076375460a660ec6ea804e660f060a460ec6ea8c148c1d8dd50099983c261054455534472004bd704cdc0005000a03a833a0e68a9983a24815d6578706563740a202020207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e6564001641cd153307449143657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20746f74616c5f65786368616e67655f76616c7565001641cd06641cc66e04cdc0804001004c191072418d072418907241850720c1d400660026eb0c134c1c0dd50284dd7181498381baa304c3070375401b375c609860e06ea8c130c1c0dd5006c0c9012454cc1b92412a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e6564001641b5153306e4914b6578706563742076616c69646174655f756e7374616b655f696e70757473286f726465725f696e707574732c20756e7374616b655f72657175657374732c2073757364725f617373657429001641b4329800800c02e97ae10101000081010000200222259800801440063300100398390014c8c966002603e6eb4c0d8c1c0dd5001456600266e24dd6981b18381baa0020018998391ba8337006eb4c1cc00cdd6981b18381baa00233072375066e00dd69839983a001800a5eb822a660dc92012065787065637420722e666f7266656974203c3d20726571756573745f75736472001641b5153306e4911565787065637420722e666f7266656974203e3d2030001641b466e0ccdc11bad304b306f375400200a00c60e2004801906f454cc1a524011965787065637420736574746c65645f6265666f7265203e2030001641a11533069491236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001641a115330694911c657870656374207661756c745f757364725f6265666f7265203e2030001641a06eb4c1b0c1a4dd50014c004006005049404c60d40026eb4c1a8008c1a800660026eb0c1a0c194dd5022cdd7180f18329baa304130653754005375c608260ca6ea8c104c194dd500140a5008454cc18d2411d65787065637420746f74616c5f73757364725f6275726e6564203e2030001641893001003801496600260266eb4c104c194dd5000c4c04cdd6982118329baa0018a504188811209e830a09c830914a082f105e0896600266e2000520008a6103d87a8000899804801000a0b422a6607892013665787065637420536f6d65287661756c745f6f75747075745f69647829203d2065787472612e7661756c745f6f75747075745f696478001640ec6eb4c0fcc0f0dd5000981f98201820182018201820181e1baa0038a9981d24813465787065637420536f6d65287661756c745f696e7075745f69647829203d2065787472612e7661756c745f696e7075745f696478001640e4600260766ea8008c0f0c0e4dd50009181e981f181f181f181f000981d981c1baa0078a9981b2493665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640d49111112cc004c08c01e264b3001001813c4c96600200315980098220014566002604a607e6ea8006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c0ba05d132598009825801c5660026058608c6ea801a264b300100181844c966002003031818c4cc89660020030338992cc004006069034899912cc00400606d13259800800c0de06f037899912cc00400607313259800800c0ea07503a899912cc00400607913259800800c4c96600200303e8992cc0040062b3001305b002899819007112cc00400a26606801a44b30010028cc00401e330010058acc004c100c168dd500c44c9660020030448992cc004006264b300100182344c966002003159800983180144cc8966002608c00313259800800c12a264b3001001825c12e264b3001306800389981f800912cc00400a00f13259800800c6600200313002306b003827a058827c13e09f04f41b060d2004833a0988328dd6000c12e0968340c19400506318309baa0058acc004c0ec006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40b104f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b1598009822800c4c96600200304a8992cc00400609704b8992cc004c1a000e26607e00244b3001002803c4c96600200319800800c4c008c1ac00e09e816a09f04f827c13d06c183480120ce82620ca375800304b825a0d03065001418c60c26ea80162b300130470018992cc00400609513259800800c12e0971332259800800c136264b30010018acc004c1a800a26608200644b30010028acc004c134c19cdd5001c4c9660020030518992cc0040060a505282944cc89660020030548992cc0040060ab05582ac4c96600260e400700f82b20de375a00305541c860de0028368dd68009837001414906f1836000a0d430683754007050419513259800800c6600200313002306d003828a05e828c1460a305141b860d6004834a09c833a09d04e827413906b1834000a0cc375800260ce00504b825a0d03065001418c60c26ea80162b3001303a0018992cc00400609513259800800c12e097132598009834001c4cc0fc00489660020050078992cc00400633001001898011835801c13d02e413e09f04f827a0d83069002419d04c41946eb000609704b41a060ca0028318c184dd5002c566002607200313259800800c12a264b3001001825c12e264b3001306800389981f800912cc00400a00f13259800800c6600200313002306b003827a05c827c13e09f04f41b060d2004833a0988328dd6000c12e0968340c19400506318309baa0058acc004c0e0006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40bd04f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b15980099b8748038006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40bd04f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b15980099b87480400062b30013061375400b002824a0c4824a0bc417882f105e20bc417882f105e20bc19800800c4cc0e806489660020050248992cc00400609504a8992cc00400609713259800800c13209904c82644cc896600200304e8992cc0040062b3001306b0028cc0040062600e60d601104f40c504f41a104f827c13e09e8360c1a40050671bae001306800241a460cc0028320dd6000c12a0948338c190009062411d023182f1baa003823a0c0823c11e08f047419060c200282f8c18400a08b045822c115062182f800a0ba305b375403104341610434099043409913259800800c112089044899180198308021bad00182220c2305e002417113259800800c10a0850428991801982f8021bad00182120be305c002416903f416103f81fc0fe07e82e0c164005057182c80140f607b03d81ea0b4305700141546eb4004c15800a07482b8c1500050521bad001305300281ba0a83051001413c6eb0004c14000a0690344144609c0028260dd6000982680140c60628270c12c00504918239baa006817a088817a090375800302e817209630480014118609000502c81640b20588248c118005044182300140aa05502a815208e3044001410860806ea800605081ea050820a05102881440a10451821000a080303e375401b159800980c003c4c9660020030278992cc0040062b300130440028acc004c094c0fcdd5000c4c9660020030298992cc004006264b3001001815c4c96600200302c81644c9660026092007159800981518221baa0048992cc00400605d13259800800c4c9660020030308992cc0040062b3001304d0028acc004c0b8c120dd5001c4c9660020030328992cc004006264b300100181a44c96600200303581ac4cc89660020030378992cc004006071038899912cc00400607513259800800c0ee07703b899912cc00400607b13259800800c0fa07d03e899912cc00400608113259800800c1060830418992cc004c17800e2b3001303f3059375402113259800800c10e264b300100182241120891332259800800c11a264b3001001823c11e08f132598009832001c5660020270488992cc004006093049824c4cc896600200304b8992cc00400609904c82644c96600260d200715980080ac136264b3001001827413a09d1332259800800c142264b3001001828c1460a3132598009837001c66002045133045026225980080140be264b300100182ac156264b300100182b44c96600200305782bc15e0af1332259800800c166264b30010018acc004c1d800a3300100189803983b004416903c4169073416a0b505a82d20ee307400141c86eb8004c1cc0090741838800a0de375800305582aa0e4306f00241b505240b905241ac6eb40060a28370c1ac0050691bad001306a01682720d63068015419904d41986eb40060988348c1980050641bad0013065014824a0cc3063013418504841846eb400608e8320c18400505f1bad001306000282220c2305e001417060b46ea804208482ba08482d8dd6800c10505e182d800a0b2375a00260b400503e416c60b000282b0dd6800982b80140ed058182a800a0a6375800260a800503881c20aa305200141406eb0004c14400a06b0354148609e0028268c13c00a067033819c0cd0501826800a0963049375400703141190314129031818c0c60628270c12c005049182580140be05f02f817a0983049001411c608a6ea801205a821205a8230dd6000c0b20588248c118005044182300140aa05502a815208e3044001410860806ea800605081ea050820a05102881440a10451821000a080303e375401b02640ec81d880d406a03501a40dc664464b30013019303337540031303432337606070002607060720026eb0c0dcc0d0dd5000c54cc0c924018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c02ccc0e0dd480225eb812f5c11300c33038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c37566068606a606a606a606a606a606a606a606a606a60626ea8044dd7181a18189baa00132323259800800c566002603060646ea8006264b300100180ec4c96600200301e80f407a03d1332259800800c082264b30010018acc004c0f000a2b3001301d3037375400313259800800c08a264b30010018992cc00400604913259800800c4c9660020030268992cc0040062b300130420028acc004c08cc0f4dd5002c4c9660020030288992cc004006264b300100181544c96600200313259800800c0b2264b30010018992cc00400605d13259800800c4c9660020030308992cc004006264b300100181944c96600200313259800800c0d2264b30010018992cc00400606d13259800800c4c9660020030388992cc004006264b300100181d44c966002003159800982b00146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002606e60a26ea805e264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c1260931332259800800c12e264b30010018acc004c19c00a330010018acc004c120c188dd501344c96600200304d8992cc00400609d04e899912cc0040060a113259800800c56600260d800513304300322598008014660020071038829a07a8992cc0040062b30013050306a375400313259800800c156264b300100182b415a26644b300100182c44c96600200305982cc16626644b300100182dc4c96600200305c82e4172264b300130780038acc00401e0bb13259800800c17a0bd05e82f44cc89660020030608992cc0040060c3061830c186264b3001307d00389808183e808c18907a1bae00141f460f400283c0dd7000983c80420f4307700741d505d41d46eb40060b883c0c1d40050731bad001307400282ca0ea307200141c06eb0004c1c400a0ad05641c860de0028368c1acdd5000c15106841520a905482a20e0306d00241ad05141a5051828c1460a28368c1a80050681bac0013069002827413906a1833800a0ca3063375404d04c418104c40d504c419104c82641320988340c1940050631bae0013064002419460c40028300dd7000983080120c4305f00141746eb8004c17800905f182e000a0b4375c00260b600482e0c1640050571bae0013058002416460ac00282a0c148dd500bc0ed04f40ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed05340ee07703b81da0ae3054001414860a800503981cc0e607282a8c148005050182900140de06f03781ba0a63050001413860a000503581ac0d606a8288c13800504c182700140ce067033819a09e304c00141286098005031818c0c60628268c128005048182500140be05f02f817a09630480014118609000502d816c0b605a8248c118005044182300140ae05702b815a08e304400141086088005029814c0a60528228c108005040181f1baa005813a076813a07e813c09e04f027410c608000281f0c10000a04b025812c095041181f000a078303e002811c08e04702340fc607800281d0c0e0dd5000c08503540850394086043021810a07a303a00140e06eb8004c0e400903a181b800a06a3033375400301c40c101c80e407203881c0c966002603060646ea8006264b30013018303337540031303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602060666ea8c03cc0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c064660020026eb0c03cc0ccdd5009912cc0040062980103d87a80008992cc004c8cc004004c014dd59809181b1baa30123036375400444b30010018a508acc004cdc79bae303a0010338a51899801001181d800a06840e11300b330370014bd7044cc00c00cc0e4009032181b800a06a30010012259800800c52f5c11330343031303500133002002303600140cc2223259800980a800c4c9660020030038992cc0040060090048024012264b3001303700380340150341bae00140dc60680028190c0c0dd50024566002601400313259800800c00e264b300100180240120090048992cc004c0dc00e00d00540d06eb8005037181a000a0643030375400900240b48168c0b8dd5001a2b30013008003899192cc004c024c08cdd5181398140014528c5282042375a604c00260446ea80122c80f901f0c084c088004c084011149a2a6602e9211856616c696461746f722072657475726e65642066616c7365001365640581" + : "5927b4010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba5480026e952002912cc004c024c038dd500144c8c8cc8966002602e0070058b2028375a60280026eb8c050008c050004c03cdd500145900d24444444444530012223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300b0018992cc004c08400626601a6eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc034dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998079bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b3001300a001899192cc004c08800a00916407c6eb4c080004c070dd5001c56600260120031323259800981100140122c80f8dd69810000980e1baa0038acc004c02000626464b3001302200280245901f1bae3020001301c375400716406880d101a2034406880d101a180d1baa00291192cc004c05400626464b3001302100280245901e1bae301f001301b37540071598009805000c56600260366ea800e00516407116406480c8c064dd5001488c966002602a0031323259800981080140122c80f0dd7180f800980d9baa0038acc004c02800626464b3001302100280245901e1bae301f001301b375400716406480c8c064dd500148966002602860326ea800a2646464b30013021002899192cc004c0640062b3001301f37540050068b20408acc004c03800626464b300130250028044590221bad3023001301f3754005159800980c000c566002603e6ea800a00d16408116407480e901d180e9baa00130200038b203c3259800980e800c56600266e252004301c0018b44c030c07000501b45901e1baa301f001301f001301a3754005164061223259800980a800c4c8c96600260420050048b203c375a603e00260366ea800e2b3001300a0018acc004c06cdd5001c00a2c80e22c80c9019180c9baa00248888a6002600a00b2259800980c980f1baa00289919192cc004c09800a266010604a006264b3001301d0018992cc004c0a000626464b300130200018992cc004c0ac00626601a60540020131640a0604c6ea800a2b3001301500189919194c004dd69816000cdd69816001cdd698160012444b3001303000480745902d0c0b0004c0ac004c098dd5001459024204830243754002604e00316409460466ea800a2b300130120018acc004c08cdd500140162c81222c810902118109baa0018b204630240013024001301f3754005164075223259800980d000c4c966002604a00313300a30240010038b2044302037540071598009807800c4c966002604a00313259800980e18109baa00189919192cc004c0a400a266014605000626601400200f164098604e002604e00260446ea80062c8100c0900062c8110c080dd5001c5901e203c301e37540052259800980c980f1baa0028991919192cc004c09c00a264b3001301e30233754003132323322598009816001c4cc03cc0ac02002a2c8148dd718148009bae3029002302900130243754003164088604c0091640906eb8c094004c094004c090004c07cdd500145901d244446645300133223259800981018129baa001898131919bb0302a001302a302b00137586052604c6ea80062c8120c8cc00400400c896600200314c0103d87a80008992cc004cdd7981380099ba548010cc0a8c048cc0a8dd480225eb812f5c1130133302a374e66054604e00266054605000297ae04bd7044cc00c00cc0b00090261815000a0503756604c604e604e604e604e604e604e604e604e604e60466ea8060dd7181318119baa002912cc004c07cc090dd500144c8c8c8cc8966002605c007133008302d0051330130020068b2056302b001375a605600460560026054002604a6ea800a2c811a44b3001301f302437540051323232323298009bad302d0019bad302d0049bad302d003981680124444b30013032005899806181880489980b80080545902f0c0b4004c0b0004c0ac004c0a8004c094dd500145902348966002603e60486ea800a264646464646530013758605c003375a605c00b375a605c009375a605c007302e00248888966002606800d13300e303300b133019001132332259800981b801c03e2c81a0dd7181a0009bae303400630340058b20621817000981680098160009815800981500098129baa0028b2046912cc004c07cc090dd500144c8c8c8c8ca60026eb0c0b40066eb4c0b40126eb4c0b400e605a00491112cc004c0c8016266018606201226602e0022646644b30013035003806c590321bae3032001375c606400a60640091640bc302d001302c001302b001302a0013025375400516408c9111119912cc004c090006264b3001302f0018992cc004c098c0acdd5000c4c8c8c8cc8966002606a00713259800981618189baa00189919191919194c004c0ec0066eb0c0ec0166eb4c0ec0126eb4c0ec00e6076004911112cc004c10401a26605a6eb0c10002c896600200513302f006225980080144cc0940144cc094024566002607660806ea80462646464b3001304800289919912cc004c10400a264b3001304c00189981c1bac304b00122598008014012266046609a00426002609c004825a2c8248c11cdd5001c566002606c005132598009826000c4cc0e0dd61825800912cc00400a009133023304d00213001304e002412d164124608e6ea800e2b300130400028992cc004c1300062660706eb0c12c0048966002005004899812182680109800982700120968b209230473754007159800982100144c8c8c966002609c00513303a3758609a00644b30010028acc004c118c12cdd5001c4c8c8cc896600260a800700a8b20a2375a60a20026eb4c144008c144004c130dd5001c5904a44cc098c13c0084c004c14000904d45904b1826000982600098239baa0038acc004c0d400a264b3001304c00189981c1bac304b0012259800801401226604a609a00426002609c004825a2c8248c11cdd5001c5660026068005132598009826000c4cc0e0dd61825800912cc00400a009133025304d00213001304e002412d164124608e6ea800e2b300130330028992cc004c1300062660706eb0c12c0048966002005004899813182680109800982700120968b20923047375400715980099b874803800a264b3001304c00189981c1bac304b0012259800801401226604c609a00426002609c004825a2c8248c11cdd5001c56600266e1d20100028acc004c11cdd5001c0062c82422c8229045208a41148229045208a41148228c110dd500089981300109981a80b112cc00400a03f1323322598009827000c4cc0a8c1340044c010c1380162c8258dd7182580098260009bac304a0024120608e007164114608c002608c00260826ea80462c81fa2646004608c0066eb4c11000904244c8c008c11000cdd6982100120808b207c181d800981d000981c800981c000981b80098191baa0018b206030340058b20643758606400260640046064002606200260586ea80062c8150c0b80062c8160c0a8dd5003c5660026032003132598009817800c4c966002604c60566ea80062646464b300130330028992cc004c0a8c0bcdd5000c4c8c966002606c00313259800981698191baa00189919191919194c004dd6981e000cdd6181e002cdd6181e0024dd6981e001cdd6981e001244444b300130420068992cc004c0e4c0f8dd5000c4c8c8cc8966002608e0071323322598009825001c4c8cc8966002609a00713302a304c01813303901b2259800801408e2646644b300130520018998171828800898021829002c5904f1bae304f00130500013758609c00482622c8250dd698250009bad304a00c304a00b8b208e375a608e0026eb4c11c028c11c0262c8220dd698220009bad30440023044001303f37540031640f460820171640fc303c001303b001303a00130390013038001303337540031640c4606a0051640cc606a00260606ea80062c8170c0c800e2c8180dd61818800981880098161baa0018b2054302e0018b2058302a375400f1640a081405660026044604e6ea8016264664464b30013026302b37540031332259800981418169baa0018cc004dd6981898171baa001981898171baa301f302e375400d2225980080145300103d87a80008acc004c0ac0062603866066606800497ae08cc00400e606a005337000029000a00640bc819244646600200200644b30010018a508acc004c00cc0d40062946266004004606c0028181033488966002604060606ea8c0d0c8cc00400400c896600200314bd708103d87a80008101800044c8cc8966003300130253035375460720074a14a281a226607130014a14c103d87a8000a60103d879800040d0660706e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0ec00400e2946266004004607800281b103944cc0e2600294298103d87a8000a60103d879800040d0660706e9c0092f5c11330389800a51a60103d87a8000a60103d879800040d0660706e9ccc0e0dd400080125eb8103420683758606e60700026eb4c0dc008cc008008c0dc00503444ca6002003004801d200040044444b30010038acc00400a20031640d9198008024c0e400e6072005332259800980380144cdc00019bad3028303737540051640d460700066eb4c0e0009004206c8b205e91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c81aa26600a00a607600881a8dd7181a0009bad3035001303700140d464646600200200c44b3001001801c4c8cc896600266e4402400a2b30013371e0120051001803206c899802802981e002206c375c606a0026eacc0d8004c0e00050360a5eb7bdb18052000912cc004c0a8c0bcdd500144c8c8c8ca60026eb4c0dc0066eb4c0dc0126eb4c0dc00e6eb4c0dc009222259800981e002c0262c81c8606e002606c002606a00260606ea800a2c81724606460666066606660666066606660660032232330010010032259800800c52f5c1133225980099baf303730343754606e60686ea8c094c0d0dd5001180f1981b1ba90054bd7044cc0d8008cc0100100062660080080028190c0d4004c0d800503348c0c8c0ccc0ccc0cc0064444646600200200a44b300100189981b19bb0375200a6ea00112f5bded8c113298009bae30340019bad3035001981c8012444b30013372001200713303a337606ea4024dd4004002c56600266e3c02400e33001009804400a46607666ec0dd48051ba80010028800a00e89981d19bb037520066ea0008cc018018005036206c181b800a06a91111919800800802912cc00400626606c66ec0dd48029ba60044bd6f7b63044ca60026eb8c0d00066eacc0d400660720049112cc004cdc8004801c4cc0e8cdd81ba9009374c01000b15980099b8f0090038cc00402601100291981d99bb037520146e9800400a2002803a26607466ec0dd48019ba60023300600600140d881b0606e00281aa4b30010018a518a5040c112222232598009817000c00a260060028190cdc0002001cdc0a400122232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6070003375a607200333003003303d0024024607600281c8dd5981b0019bae3033001330030033038002303600140d1222329800800c012006800888966002005159800800c528c528206a8acc00400629422b300133004303700230370018cc00400e60700053038001400d14a08191035206a912cc004c0a8c0bcdd500144c8c8c8ca6002606e0033037003981b8012444b3001303b00489980d181d00389980a8010992cc004c0c8006264653001375a607a003303e0019bad303d0024889660026082005132323322598009822801c04a2c8210dd718210009bae30420023042001375860800051640f8303d001303837540051598009813800c4c8ca60026eb4c0f4006607c003375a607a0049112cc004c10400a264646644b300130450038094590421bae3042001375c608400460840026eb0c10000a2c81f0607a00260706ea800a2b3001303100189919194c004dd6981f000cc0fc0066eb4c0f800e6eb4c0f80092222598009821801c4c8c8cc8966002608e0070148b2088375c60880026eb8c110008c110004dd61821001c590400c0f8004c0f4004c0e0dd500145660026066003132332259800981f800c4c8c8cc896600260860070108b2080375c60800026eb8c100008c100004dd6181f000c5903c1bad303c001303d001303837540051598009813000c4c8c8cc8966002608000700d8b207a375a607a0026eb4c0f4008c0f4004c0e0dd50014566002604a003132323298009bad303e0019bad303e0039bad303e002488966002608400900f8b207e181f000981e800981c1baa0028acc004c09000626464b3001303e002805c5903b1bad303c0013038375400515980099b874803800626464b3001303e002805c5903b1bad303c001303837540051640d881b1036206c40d881b1036206c303637540031640e0303700130360013035001303037540051640b92259800800c5268992cc00400629344c96600266e40dd71818981a8019bae30310018998020021981a000981b001459030181a000a064303400140c5371290004dc4240009111111111111111111114c004c108dd500a4c04c04e4530013301400223375e6092608c6ea8c124c118dd5181b98231baa001303033048375200497ae0a50a51410d2225980099b89375a606e608c6ea800920008801c4cdc080199194c004dd69825800cdd698259826000cc966002608660906ea800626644b30013045304a375400315980099b89337026eb4c138c12cdd500080124101756e0710028b20928b2092375a609860926ea8004c966002607260926ea80062606a66098609a60946ea80052f5c114c103d87a80004120609860926ea8c0e8c124dd5180a18249baa0048b208e3259800981c18241baa0018981a19825982618249baa0014bd7045300103d87a8000411c609660906ea8c12cc120dd5180998241baa0039bad304b0024888966002b30013371200290004528c4cdc480180120948a400115980099b890020048800c4c8cdc199b803370066e08008cdc0802001800a400200266e0400c01104a20941825800982518231baa002411122329800800c00e00480088896600200510018994c004012609a00798008014dd71824000cdd59824800c88888c966002602a00300289801800a09a32329800800c01a00a80088896600200510018994c00401260ae00798008014dd71829000cdd69829800c01501b20083055002414ca02680810041825801209291919800800801112cc004006297adef6c608991982499bb03046001374c64660020026eacc120008896600200314bd6f7b63044c8cc130cdd818248009ba8300e375a609400266006006609c00460980028250cc00c00cc12c008c1240050474888966002608200314a3133712002646600200200a44b30010018a4001133225980099baf304e304b375400400f13370000330013756607860966ea800a6eb8c13801a6eb8c0f0019018440050491826000998010011826800a09441153003003488888888ca600244646600200200444b30010018a5eb822660a464b3001304b30503754003130543051375400316413c6600a0086eb4c14c004cc008008c15000505148888c966002609660a06ea8006264b30013375e60aa60a46ea8c154c148dd5182198291baa001303c33054375200a97ae08acc004c10660026eacc10cc148dd5182198291baa001802d2210d7374616b696e675f7661756c7400407d13259800982618291baa0018991981000089982b1ba898009bab304530543754608a60a86ea800e00d48810455534472004084660ac002660ac00697ae0305630533754003164144608860a46ea8c10cc148dd5000c59050459050182a18289baa0018b209e330050040019111192cc004c12cc140dd5000c4c96600266ebcc154c148dd5182a98291baa001303c33054375200a97ae08acc004c10660026eacc10cc148dd5000c01691010d7374616b696e675f7661756c7400407d13259800982618291baa001899198100008acc004cdd7980e982a1baa0034c0103d87a800089982b1ba898009bab304530543754007006a4410455534472004084660ac002660ac00697ae08b20a4305630533754003164144608860a46ea80062c82822c8280c150c144dd5000c5904f19802802000c888888896600266ebcc15cc150dd5003982b982a1baa0068acc004cdd79823182a1baa00730453054375400d13259800cc0040069464444b30010018980c001452820ae40611325980099b890040018acc004cdc4800801c40062c82a22c82a26002003375c60b0009375c60b060b200881122c8298cc034dd59822982a1baa007300c98009bae30570059bae30573058005980c0022444b300130510018805c66002017003991900118070009982c99bb037520046ea00052f5bded8c12222232598009811800c00a2600600282d8ca6002009008803c8888a600200b003802400a00280310252810a03c41548b20a48b20a49114c004cc020dd5982018279baa002300737566080609e6ea8c100c13cdd5001d28c88896600200315980099b8f0044881008a518acc004cdc7802002c4cdc7801a4410455534472008a504144828a2941051202448888966002607e01d19800998029bac3054305137540446eb0c108c144dd50144dd6182a18289baa028982118289baa0304889660026601e6eb0c15cc150dd50249bae305730543754608a60a86ea80062b30019800998119bac305730543754092466ebcc160c154dd5182c182a9baa30463055375400260b060aa6ea8c118c154dd51823982a9baa002a50a514149132598009809800c4c8c8cc88cc89660026034005159800acc004c15400a29462603200282ca26644b3001980080140324464b30013059305f37540031323302200115980099baf302a3061375400660c860c26ea80122b30013375e60a460c26ea8004c190c184dd5001c56600266e24dd6982918309baa00398009bab30523061375460a460c26ea80126eb8c1900166eb8c14801502e44c96600260a060c26ea8006264b30013370e6eb4c198004dd6982a18319baa005899b87375a60cc60ce0026eb4c154c18cdd5002c52820c23062375400314a08300c14cc184dd5000c5905f45905f45905f183198301baa0018b20bc3051305f375460a060be6ea800901f44c8c8cc896600330013064306500b98321832801cdd7182918309baa30523061375401c808a2b30013370e6eb4c148c184dd50011bad30523061375401515980099b87375a60a660c26ea8008dd6982998309baa00a8acc004cdc39bad302a306137540046eb4c0a8c184dd500544c8cc8966002604600315980099b87375a60ce60c86ea8014cdc0005802456600266e1e60026eacc0e8c190dd502ccdd7182a98321baa30553064375402348810573555344720040c4009159800982f4c004dd5981d18321baa0599bae30553064375460aa60c86ea804691104555344720040c5198009bac3056306437540b330553064375460ac60c86ea8046660cc60aa60c86ea8c154c190dd500899833261054455534472004bd70400501b4590624590624590624590622cc004c0800262b30013371266e08008020cdc1000804c5268b20c08acc004cdc4801000c5268b20c0418066e04038004cdc09bad30640040098b20be8b20be8b20be8b20be306200198009bac3051305f37540a9330613050305f375460a060be6ea8030cc185300106457355534472004bd704c140c17cdd51828982f9baa00c4888ca6002003008809404500111112cc00400e2900044cc896600260c460ce6ea80062b3001980099baf306b3068375460d660d06ea800801e94294506644cdc04c004dd5982c98341baa30593068375460d600b306b30683754003306b3068375400500c9bad3059306837540050089bad305a30683754005598009831007c4dd6982c98341baa002899b83337046eb4c164c1a0dd500100780720cc406530010069836002cc1b001260d800680322c83322c8330c1a4008cc06c01cdd69834800a0ce1831000cc004dd61827982e9baa0529bae3026305d3754609c60ba6ea802a6eb8c138c174dd51827182e9baa00a817a01e8b20b633025375860bc60b66ea8140dd71826982d9baa304c305b3754010660ba609860b66ea8c130c16cdd50041982ea601054455534472004bd704590594590591bad305c3059375400530010018014139013182d0009bad305a002305a00198009bac305830553754095375c603c60aa6ea8c118c154dd50014dd71823182a9baa304630553754005029402116414d3001003801496600260266eb4c118c154dd5000c56600260266eb4c11cc154dd5000c4c13cdd69815982a9baa0018a50414d14a0829902245905245905222b3001303e00e8cc004cc014dd6182a18289baa0223758608460a26ea80a26eb0c150c144dd50144c108c144dd50182444b30013300f375860ae60a86ea8124dd7182b982a1baa304530543754003159800cc004cc08cdd6182b982a1baa04923375e60b060aa6ea8c160c154dd51823182a9baa001305830553754608c60aa6ea8c11cc154dd5001528528a0a48992cc004c04c0062646466446644b300130190038acc004c06400a2b300130190018994c004dd6982f800cdd6982f9830000ccc178c134c170dd51826982e1baa0093305e4c0106457355534472004bd704cc098dd6182f982e1baa051375c609c60b86ea8c134c170dd5004a4444b30019800800c03e4464b3001305c306237540031323302500115980099baf302d3064375400660ce60c86ea80122b30013375e60aa60c86ea8004c19cc190dd5001c56600266e24dd6982a98321baa00398009bab30553064375460aa60c86ea80126eb8c19c01a6eb8c15401903144c96600260a460c86ea800626464b30013370e6eb4c1a8008dd6982c18339baa0068acc004cdc39bad306a001375a60b260ce6ea801a266e1cdd6983518358009bad303d3067375400d14a0832a2941065183500098329baa0018a50418c60ac60c86ea80062c83122c83122c8310c198c18cdd5000c59061182a18311baa30533062375400481122b30013370f30013756606c60c06ea81566eb8c144c180dd5182898301baa00da450573555344720040b46048019132323259800cc004c198c19c03660cc60ce005375c60a860c66ea8c150c18cdd500820268acc004cdc39bad3054306337540026eb4c150c18cdd5006456600266e1cdd6982a98319baa001375a60aa60c66ea80322b30013370e6eb4c0b0c18cdd50009bad302c30633754019132598009811800c56600266e1cdd6983380219b8100c0078acc004cdc39bad30673064375400466e0402c0422b3001305e98009bab303a306437540b3375c60aa60c86ea8c154c190dd5008d220104555344720040c5198009bac3056306437540b330553064375460ac60c86ea8046660cc60aa60c86ea8c154c190dd500899833261054455534472004bd704cdc0004000a0368b20c48b20c48b20c48b20c43370266e0401a60026eb0c154c18cdd502c4cc194c150c18cdd5182a18319baa010330654c01054455534472004bd704c150c18cdd5182a98319baa0104888ca600200300880b405500111112cc00400e2900044cc896600260cc60d66ea80062b3001980099baf306f306c375460de60d86ea800801e94294506a44cdc04c004dd5982e98361baa305d306c375460de00b306f306c3754003306f306c375400500e9bad305d306c37540050089bad305e306c37540053370266e0ccdc11bad305d306c37540040240266eb4c108c1b0dd5001203a98008034c1c001660e0009307000340191641a91641a860da0046603e00e6eb4c1b400506b001e2c830a2c830a2c830a2c8308c194004c19400660026eb0c148c180dd502acdd7181498301baa30513060375401b375c60a260c06ea8c144c180dd5006c0c901245905e45905e0ca600200300ba5eb84101000081010000200222259800801440063300100398310014c8c966002603e6eb4c0d8c180dd5001456600266e24dd6981b18301baa0020018998311ba8337006eb4c18c00cdd6981b18301baa00233062375066e00dd698319832001800a5eb822c82f22c82f0cdc199b82375a60a060be6ea8004014018c18400900320be8b20b28b20b28b20b2375a60b860b26ea800a60020030028272026305a001375a60b400460b40033001375860b060aa6ea812a6eb8c078c154dd51823182a9baa0029bae304630553754608c60aa6ea800a05280422c829a600200700292cc004c04cdd69823182a9baa001898099bad30473055375400314a082990224590524590522294104f209e112cc004cdc4000a400114c0103d87a8000899804801000a09622c8160dd6981798161baa001302f30303030303030303030302c37540071640a8600260566ea8008c0b0c0a4dd5000918169817181718171817000981598141baa0058b204c3027375400a32323259800980f18119baa00189919912cc004c0ac006264b300130223027375400313232323322598009818801c4c9660026050605a6ea80062646464646464646464653001303b001981d804cc0ec022607600f303b006981d802cc0ec0126076007303b002488888888966002608a0151330243044013133024008133024007133024006133024005133024004133024003133024002133024001133024009159800981d98201baa015899191919194c004dd71824800cc1280066eb8c1240166eb8c1240126eb8c12400e6eb8c124009222222598009828002c4cc0ccc13c014566002608c60966ea80862646464b3001305300289981f9bac3052003225980080144cc0cc00c40ba264b3001304c305137540031323232332259800982d801c4c8c8cc896600260be0071300b305f00c8b20b8375c60b80026eb8c170008c170004dd6182d002c590581bad3058001375a60b000460b000260ae00260a46ea80062c8280c1500090524590501828800982880098261baa0218b20948b209a182480098240009823800982300098209baa0158b207e8b2084181d800981d000981c800981c000981b800981b000981a800981a000981980098171baa0018b205830300058b205c302e001302e002302e001302d0013028375400316409860540031640a06eb8c0a0004c0a4004c090dd5000c59022192cc004c078c08cdd5000c4c966002603c60486ea800626050604a6ea80062c8118c058c090dd5180a98121baa30273024375400316408864660020026eb0c054c090dd500c912cc0040062980103d87a80008992cc004c8cc004004c014dd5980c18139baa30183027375400444b30010018a508acc004cdc79bae302b0010258a518998010011816000a04c40a513011330280014bd7044cc00c00cc0a80090241814000a04c30010012259800800c52f5c113302530223026001330020023027001409044b3001301d30223754005132323259800981500144cc020c0a400c4c966002604200315980098139baa002802c590284566002602c00313232598009816801401e2c8150dd7181580098139baa0028acc004c08000626464b3001302d002803c5902a181580098139baa0028b204a40948128c094dd5000c590271814000981400098119baa0028b204211598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d13656400801", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolStakeProtocolStakePublish { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594a1d010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692013765787065637420726571756573742e64657374696e6174696f6e2e6164647265737320213d207969656c645f706f745f6164647265737300168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495d6578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d20726571756573742e616d6f756e7400168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491765787065637420757364725f6d696e746564203d3d203000168a99801a490f65787065637420666565203e3d203000168a99801a4944657870656374207661756c745f646174756d5f6f75742e646966667573696f6e5f656e64203d3d207661756c745f646174756d5f696e2e646966667573696f6e5f656e6400168a99801a4948657870656374207661756c745f646174756d5f6f75742e646966667573696f6e5f7374617274203d3d207661756c745f646174756d5f696e2e646966667573696f6e5f737461727400168a99801a4944657870656374207661756c745f646174756d5f6f75742e70656e64696e675f7969656c64203d3d207661756c745f646174756d5f696e2e70656e64696e675f7969656c6400168a99801a49756578706563740a2020202076616c69646174655f7661756c745f6e6f5f74726173685f746f6b656e73280a2020202020207661756c745f696e7075742c0a2020202020207661756c745f6f75747075742c0a20202020202073657474696e67732e72656769737472792e757364722c0a202020202900168a99801a49b06578706563740a20202020216c6973742e616e79280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a2020202020202020696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2073657474696e67732e636f6e6669672e756e7374616b65645f7969656c645f706f742e7061796d656e745f63726564656e7469616c0a2020202020207d2c0a202020202900168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f6461746100164888888888888888888896600330013019375403f370e90034dc3a4001370e90022444464653001301e3754003302200698110012444b300130060038cc004c094c088dd500248c098c09cc09c0064604c604e003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba5480026e95200248888888888ca6002444b30013015302f375400713259800800c00a264b30010018992cc00400600913259800800c566002607000519800801c4c966002603400313259800800c01e264b30010018acc004c0ec00a264b3001301d0018992cc00400601513259800800c566002607c00519800800c032016807201681da01700b805c02d03f181e000a074303837540051598009809000c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c966002608a0070138092084375a003011411460840028200dd680098208014039042181f800a07a375a002607c00500b40fc607800281d0c0e0dd50014025035206a3036375400300840e1008804402201081e0c0e4005037181a9baa0028acc004c03c0062b300130353754005007803206c803206440c860666ea800600a804200a81aa00b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4888c966002602c00313259800800c00e264b300100180240120090048992cc004c0e000e00d00540d46eb8005038181a800a066303137540091598009805800c56600260626ea801200700240c900240b88170c0bcdd5001c888ca6002003004801a0022223259800980c800c4c9660020030068992cc00400600f007803c01e264b3001303b003802c0210381bae00140ec607000281b0c0d0dd5001c566002601c00313259800800c01a264b3001001803c01e264b3001303b003899809000912cc00400a00f13259800800c6600201500189801181f001a014805c02e01700b40fc607800481d201081c0dd6000c01e00e81d8c0e0005036181a1baa0038acc004c060006264b300100180344c966002003007803c4c96600260760071330120012259800801401e264b30010018cc00402a00313002303e003402900b805c02e01681f8c0f000903a40210381bac001803c01d03b181c000a06c30343754007159800980d000c4c9660020030068992cc00400600f007803c4cc89660020030098992cc00400601500a8992cc004c0f800e26602a00244b300100280544c96600200319800806c006260046082006806a01d00e8074039042181f801207a805a076375800300a805207c303b00140e46eb4004c0e800a00e81d8c0e0005036181a1baa0038acc004c034006264b300100180344c966002003007803c01e264b3001303b003802c0210381bad001803a076303800140d860686ea800e2b3001300c0018992cc00400600d13259800800c01e00f0078992cc004c0ec00e00b00840e06eb400600e81d8c0e0005036181a1baa0038acc004c02c006264b300100180344c966002003007803c01e00f13259800981d801c01601081c0dd7000a076303800140d860686ea800e00a8189031206240c4818903120623032375400491119192cc0040063300122259800980d181a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b3001301f0018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c078006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005403100540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e0028192444b3001301a3034375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607400315980099b8948010c0e400600d13259800981f80244c9660026042003159800981e1baa006804c02103d4566002602c00313259800800c026264b3001001805402a015132598009821801c0320168200dd6800c0290431820000a07c303c375400d1598009810000c56600260786ea801a01300840f500840e481c9039181d1baa005803a0783014303900140dd00640ec6ea800600b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c005032488966002603460686ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981f801c02200e81e0dd6800c01903f181e000a074375c002607600481e0c0e4005037181a9baa003800a064911192cc004c06c006264b3001001801c4c9660020030048024012264b3001303d003803401503a1bad001802207a303a00140e0606c6ea80122b300130100018acc004c0d8dd5002400e00481ba0048199033181a1baa0039112cc004c068c0d0dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b3001001803c01e00f0078992cc004c10000e2b30013021303b375400d13259800800c026264b3001001805402a01500a899912cc00400601913259800800c03601b00d806c4c966002608c00719800805403e01c80a201c8218dd7000a08c304300141046eb8004c1080090431820000a07c303c375400d00840e500840f46eb8005040181e800a076303d002802c01600b00540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c9303137540029111114c00488966002604060746ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c11800a330010068cc00400601300840390084041008410d00880440220108238c1100050421bad0013043002802a088304100140fc6082005003801c00e0068210c0fc00503d181d9baa003800a0709112cc004c080c0e8dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b132598009826001c6600201919800802403e01c80a201c80b201c8248dd6800c03504c1824800a08e3049002805c02e01700b4128608e0028228dd6800982300140210471822000a084375a00260860050054110608200281f8c10400a007003801c00d042181f800a07a303b375400700140e1222598009810181d1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002609e00719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c96600260a800701780b20a2375c00282a0c14400504f1bae00130500024144609c002826202280ba02280ca0228260dd6000c0420208278c13000504a1826001403a01d00e807209a304a00141206eb4004c12400a0168250c11c0050451bad0013046002804208e304400141086eb4004c10c00a00a8220c10400503f1820801400e007003801a084303f00140f460766ea800e00281c2444b30013020303a375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c13000e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c14400e02901341386eb80050511827000a098375c002609a0048270c12c0050494039014403901640390491bac001806c03504c1824800a08e3049002805c02e01700b4128608e0028228dd6800982300140210471822000a084375a00260860050054110608200281f8c10400a007003801c00d042181f800a07a303b375400700140e122232598009810800c4c9660020030038992cc0040062b300130420028cc00400600b004402900440fd00480240120088218c10000503e181e1baa0048acc004c058006264b3001001801c4c966002003159800982100145660026046607a6ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c11800a330010038cc004006013008403d008403d008410d00880440220108238c1100050421822001401a00d006803208a30420014100607c6ea800600881da00881fa00900480240110431820000a07c303c375400900240e481c8c0e8dd5001c566002603a606e6ea801e264664464b30013021303b375400313322598009811981e9baa0018cc004dd69820981f1baa0019820981f1baa301a303e375400d2225980080145300103d87a80008acc004c0980062602e66086608800497ae08cc00400e608a005337000029000a00640f8821244646600200200644b30010018a508acc004c00cc1140062946266004004608c00281f9043488966002603660806ea8c110c8cc00400400c896600200314bd708103d87a80008101800044c8cc8966003300130203045375460920074a14a2821a26609130014a14c103d87a8000a60103d8798000410c660906e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12c00400e29462660040046098002822904944cc122600294298103d87a8000a60103d8798000410c660906e9c0092f5c11330489800a51a60103d87a8000a60103d8798000410c660906e9ccc120dd400080125eb8104320863758608e60900026eb4c11c008cc008008c11c00504444ca6002003004801d200040044444b30010038acc00400a2003153304349112657870656374205b5d203d206c6973745f6200164119159800801454cc10d2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc0040126092007304900299912cc004c01c00a266e0000cdd6981198239baa0028a99822a4811a6578706563742076616c69646174696f6e2872657175657374290016411060900066eb4c120009004208c4119153303f49012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e646963657329001640f9222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01904444cc014014c12c0110441bae3044001375a608a002608e0028228c8c8cc004004018896600200300389919912cc004cdc8804801456600266e3c02400a20030064115133005005304c00441146eb8c114004dd598230009824000a08c14bd6f7b6300a400122259800981318201baa0038992cc00400600513259800800c00e007003899912cc00400600b13259800800c01a00d006899912cc00400601113259800800c026013009899912cc00400601713259800800c03201900c8992cc004c14400e01d00d41386eb40060188288c13800504c1bad001304d002804a09c304b00141246eb4004c12800a00c8258c1200050461bad0013047002801a0903045001410c60826ea800e00281f24608460866086608660866086608660860032232330010010032259800800c52f5c1133225980099baf304730443754608e60886ea8c080c110dd5001180c998231ba90054bd7044cc118008cc0100100062660080080028208c114004c11800504348c108c10cc10cc10c0064444646600200200a44b300100189982319bb0375200a6ea00112f5bded8c113298009bae30440019bad304500198248012444b30013372001200713304a337606ea4024dd4004002c56600266e3c02400e33001009804400a46609666ec0dd48051ba80010028800a00e89982519bb037520066ea0008cc018018005045208a1823800a08a91111919800800802912cc00400626608c66ec0dd48029ba60044bd6f7b63044ca60026eb8c1100066eacc11400660920049112cc004cdc8004801c4cc128cdd81ba9009374c01000b15980099b8f0090038cc00402601100291982599bb037520146e9800400a2002803a26609466ec0dd48019ba60023300600600141148228608e002822a4b30010018a518a50410112222232598009814800c00a260060028208cdc0002001cdc0a400122232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6090003375a609200333003003304d002402460960028248dd598230019bae304300133003003304800230460014111222329800800c012006800888966002005159800800c528c528208a8acc00400629422b300133004304700230470018cc00400e60900053048001400d14a08209045208a9112cc004c098c100dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800982680146600200f19800802c4c966002605e00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b300130570038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001305c00380cc0610591bae001417060b200282b8dd7000982c00120b23056001415101341506eb0006025012415c60a80028290dd68009829801403d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604800313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b300130570038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001305c00380cc0610591bae001417060b200282b8dd7000982c00120b23056001415101341506eb0006025012415c60a80028290dd68009829801403d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002605c00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a0251332259800800c052264b300100180ac056264b3001305a0038acc00400602d13259800800c05e02f01780bc4cc89660020030198992cc00400603501a80d406a264b3001305f00380e406d05c1bae001417c60b800282d0dd7000982d80120b83059001415d016415c6eb000602b015416860ae00282a8dd6800982b0014049057182a000a0a4375a00260a600500f415060a20028278dd6800982800140310511827000a098304a37540091598009818000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c15000e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c16400e02d01541586eb8005059182b000a0a8375c00260aa00482b0c14c00505140410511bac001807c03d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f13259800982a001c0460208288dd6800c03d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604400313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a02513259800982b801c05202682a0dd6800c049057182a000a0a4375a00260a600500f415060a20028278dd6800982800140310511827000a098304a37540091598009810800c4c96600200300b8992cc00400601900c80644c96600260a200700e806a09c375a00300c4144609c0028260c128dd5002456600266e1d200e0018992cc00400601713259800800c03201900c8992cc004c14400e01d00d41386eb40060188288c13800504c18251baa004805208e411c8239047208e411c823904718241baa003804a02e804a034804a094304b00141246096005007803c01e00e8260c1240050471824801401600b005802a09430470014114608e005003801c00e0068240c11400504318209baa003800a07c912cc00400629344c966002003149a264b3001337206eb8c104c11400cdd71820800c4cc010010cc110004c11800a2a660809201326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f72646572001640fc60880028210c1100050414dc4a40013710900024444444444444444444453001305237540293013013914c004cc0500088cdd7982c982b1baa305930563754606460ac6ea8004c0accc160dd480125eb8294294505248896600266e24dd69819182b1baa00248002200713370200664653001375a60b6003375a60b660b80033259800981f182c1baa001899912cc004c100c168dd5000c56600266e24cdc09bad305e305b375400200490405d5b81c400a2a660b2920129657870656374206869202d206c6f203c3d206d61785f646966667573696f6e5f726174655f7370616e0016416115330594912865787065637420536f6d6528686929203d206765745f74785f75707065725f626f756e6428747829001641606eb4c170c164dd5000992cc004c0d0c164dd5000c4c0c0cc170c174c168dd5000a5eb822980103d87a8000415c60b860b26ea8c0d4c164dd5180a182c9baa0048a9982ba492865787065637420536f6d65286c6f29203d206765745f74785f6c6f7765725f626f756e64287478290016415864b30013033305837540031302f3305b305c3059375400297ae08a6103d87a8000415860b660b06ea8c16cc160dd51809982c1baa0039bad305b0024888966002b30013371200290004528c4cdc480180120b28a400115980099b890020048800c4c8cdc199b803370066e08008cdc0802001800a400200266e0400c01105920b2182d800982d182b1baa002414d22329800800c00e00480088896600200510018994c00401260ba00798008014dd7182c000cdd5982c800c88888c966002602a00300289801800a0b832329800800c01a00a80088896600200510018994c00401260ce00798008014dd71831000cdd69831800c01501b20083065002418ca0268081004182d80120b291919800800801112cc004006297adef6c608991982c99bb03056001374c64660020026eacc160008896600200314bd6f7b63044c8cc170cdd8182c8009ba8300e375a60b40026600600660bc00460b800282d0cc00c00cc16c008c1640050574888966002607800314a3133712002646600200200a44b30010018a4001133225980099baf305e305b375400400f13370000330013756606e60b66ea800a6eb8c17801a6eb8c0dc01901844005058182e00099801001182e800a0b441513003003488888888ca600244646600200200444b30010018a5eb822660c464b30013046306037540031306430613754003153305f4913965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641786600a0086eb4c18c004cc008008c19000506148888c966002608c60c06ea8006264b30013375e60ca60c46ea8c194c188dd5181f18311baa001303733064375200a97ae08acc004c0f260026eacc0f8c188dd5181f18311baa001802d2210d7374616b696e675f7661756c7400407d13259800982398311baa0018992cc004006330010018998331ba898009bab304030643754608060c86ea800e00d4890455534472004084660cc002660cc00697ae082ba04082bc15e0af05741a460cc60c66ea80060aa8300c0fcc188dd5181f18311baa0018a998302481566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d15330604914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea80062a660be92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641786600a00800322223259800982318301baa0018992cc004cdd7983298311baa306530623754002606e660c86ea40152f5c1159800981e4c004dd5981f18311baa001802d2210d7374616b696e675f7661756c7400407d13259800982398311baa0018992cc004006330010018acc004cdd7980e98321baa0034c103d87a80008998331ba898009bab304030643754007006a4410455534472004084660cc002660cc00697ae08a99831248126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500164185057408105782bc15e0ae8348c198c18cdd5000c54cc18524012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d00164180607e60c46ea80062a660c092014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d153306049141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea80062a660be92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641786600a008003222222225980099baf30673064375400e60ce60c86ea801a2b30013375e608260c86ea801cc100c190dd500344c9660033001001a5191112cc0040062603000514a0833101844c96600266e240100062b30013371200200710018a998322481216578706563742064656c697665726564203c3d206d61785f64656c6976657265640016418d1533064491216578706563742064656c697665726564203e3d206d696e5f64656c6976657265640016418d30010019bae30680049bae3068306900440891533063490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641886601a6eacc100c190dd500398064c004dd71833802cdd718339834002cc060011222598009826000c402e3300100b801cc8c8008c038004cc1a4cdd81ba9002375000297adef6c6091111192cc004c08c0060051300300141a8653001004804401e444453001005801c01200500140188129408501e20c8454cc18924128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d0016418515330624912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e61646472657373001641852229800998041bab303b305f3754004600e6eacc0ecc17cdd5181d982f9baa003a5191112cc0040062b30013371e008911008a518acc004cdc7802002c4cdc7801a4410455534472008a50418083022941060202448888966002607401d19800998029bac3064306137540446eb0c0f4c184dd50144dd6183218309baa028981e98309baa0314889660026601e6eb0c19cc190dd50221bae306730643754608060c86ea80062b30019800998119bac306730643754088466ebcc1a0c194dd5183418329baa30413065375400260d060ca6ea8c104c194dd5182118329baa002a50a514185132598009809800c4c8c8cc88cc89660026034005159800acc004c14000a294626032002834226644b3001980080140324464b30013054306f375400313259800800c6600200315980099baf302a3071375400660e860e26ea80122b30013375e609a60e26ea8004c1d0c1c4dd5001c56600266e24dd6982698389baa00398009bab304d30713754609a60e26ea80126eb8c1d00166eb8c13401502e44c966002609660e26ea8006264b30013370e6eb4c1d8004dd6982798399baa005899b87375a60ec60ee0026eb4c140c1ccdd5002c52820e03072375400314a08378c138c1c4dd5000c1a106e419d06e419906e419502241960cb065832a0ec30733070375400306241b4609860de6ea8c12cc1bcdd5001203e899194c004c1c800730013758609860de6ea813e660e2609660de6ea8c12cc1bcdd500619838a60106457355534472004bd704c12cc1bcdd5182618379baa00c4888ca6002003008809404500111112cc00400e2900044cc8966002009070899912cc0040160e713322598009830983d9baa0018992cc006600266ebcc20004c1f4dd5184000983e9baa00500ca50a5141e91337013001375660b260fa6ea8c164c1f4dd5003c00661000260fa6ea8016023375a60b260fa6ea801601b375a60b460fa6ea8016b3001306201489bad3059307d375400b13370666e08dd6982c983e9baa00501401341e880f26002017006802400d00b41e107a183f983e1baa00183b20f2307e0053301f00b375a60fa00a83d8c1ec010c1f0011079183c801983d001a0ee4dd698390012444b30019800983a983b0064c1d4c1d80126eb8c138c1c8dd5182718391baa00f404915980099b87375a609c60e46ea800cdd6982718391baa00b8acc004cdc39bad304f307237540066eb4c13cc1c8dd5005c56600266e1cdd6981598391baa003375a605660e46ea802e2646644b300130240018acc004cdc39bad30783075375400c66e000300162b30013370f30013756607660ea6ea81566eb8c144c1d4dd51828983a9baa012a4410573555344720040c800b159800982d4c004dd5981d983a9baa0559bae30513075375460a260ea6ea804a91104555344720040c9198009bac3052307537540ab30513075375460a460ea6ea804a660ee60a260ea6ea8c144c1d4dd50091983ba61054455534472004bd70400501c4199072454cc1cd2412c6578706563742073757364725f6d696e746564203d3d20746f74616c5f73757364725f64656c697665726564001641c91533073491606578706563740a202020207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f7265202b20746f74616c5f73757364725f64656c697665726564001641c906541c8b3001302100a8acc004cdc499b8200300933704002015149a2a660e29215f6578706563740a2020202020207661756c745f757364725f696e202a2063697263756c6174696e675f73757364725f6265666f7265203e3d20746f74616c5f73757364725f64656c697665726564202a20736574746c65645f6265666f7265001641c115980099b890030018a4d153307149012d657870656374207661756c745f757364725f696e203e3d20746f74616c5f73757364725f64656c697665726564001641c08380cdc080780099b8100100a830a0de83020de82fa0de82f20de1839000cc004dd6182518369baa04d9bae3026306d3754609260da6ea802a6eb8c124c1b4dd5182498369baa00a817a01e8a99835a481466578706563742076616c69646174655f7374616b655f696e70757473286f726465725f696e707574732c207374616b655f72657175657374732c20757364725f617373657429001641a86604a6eb0c1b8c1acdd50259bae3048306b3754608e60d66ea8020cc1b4c11cc1acdd5182398359baa0083306d4c01054455534472004bd70454cc1a52413a6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c20736574746c65645f6265666f7265203e2030001641a11533069491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001641a06eb4c1b0c1a4dd50014c004006005049404c60d40026eb4c1a8008c1a800660026eb0c1a0c194dd5022cdd7180f18329baa304130653754005375c608260ca6ea8c104c194dd500140a5008454cc18d2411c65787065637420746f74616c5f757364725f7374616b6564203e2030001641893001003801496600260266eb4c104c194dd5000c56600260266eb4c108c194dd5000c4c128dd6981598329baa0018a50418914a08311022413d061413906122b3001303900e8cc004cc014dd6183218309baa0223758607a60c26ea80a26eb0c190c184dd50144c0f4c184dd5018a444b30013300f375860ce60c86ea8110dd7183398321baa304030643754003159800cc004cc08cdd6183398321baa04423375e60d060ca6ea8c1a0c194dd5182098329baa001306830653754608260ca6ea8c108c194dd5001528528a0c28992cc004c04c0062646466446644b300130190038acc004c06400a2b300130190018994c004dd69837800cdd698379838000ccc1b8c120c1b0dd5182418361baa0093306e4c106457355534472004bd704cc098dd6183798361baa04c375c609260d86ea8c120c1b0dd5004a4444b30019800800c03e4464b300130573072375400313259800800c6600200315980099baf302d3074375400660ee60e86ea80122b30013375e60a060e86ea8004c1dcc1d0dd5001c56600266e24dd69828183a1baa00398009bab30503074375460a060e86ea80126eb8c1dc01a6eb8c14001903144c966002609a60e86ea800626464b30013370e6eb4c1e8008dd69829983b9baa0068acc004cdc39bad307a001375a60a860ee6ea801a266e1cdd6983d183d8009bad303d3077375400d14a083a22941074183d000983a9baa0018a5041c860a260e86ea80060d6838a0d4838a0d2838a0d0812a0d106883441a1079183b18399baa001832a0e0304f30723754609c60e46ea8009022456600266e1e60026eacc0d8c1c0dd50284dd7182618381baa304c3070375401b48810573555344720040b46048019132329800983a800e60026eb0c13cc1c8dd50294cc1d0c138c1c8dd5182718391baa00f330744c1054455534472004bd704c138c1c8dd5182798391baa00f4888ca600200300780ac05100111112cc00400e2900044cc8966002009073899912cc0040160ed13322598009832183f1baa0018992cc006600266ebcc20c04c20004dd51841809840009baa00500ca50a5141f51337013001375660b86100026ea8c170c20004dd5003c0066106026100026ea8016025375a60b86100026ea801601b375a60ba6100026ea801666e04cdc199b82375a60b86100026ea801405805cdd698231840009baa0054085300100b8034012006805a0f683e8c20804c1fcdd5000c1e507c184080802998110059bad30800100541f860fc00860fe00883e0c1f000cc1f400d07a26eb4c1d400922259800cc004c1e0c1e403e60f060f2009375c60a260ea6ea8c144c1d4dd5009202a8acc004cdc39bad3051307537540066eb4c144c1d4dd5007456600266e1cdd69829183a9baa003375a60a460ea6ea803a2b30013370e6eb4c0b8c1d4dd50019bad302e3075375401d132598009812800c56600266e1c008cdc0807004c56600266e1cdd6983c983b1baa0043370201a025159800982dcc004dd5981e183b1baa0569bae30523076375460a460ec6ea804e91104555344720040cd198009bac3053307637540ad30523076375460a660ec6ea804e660f060a460ec6ea8c148c1d8dd50099983c261054455534472004bd704cdc0005000a03a833a0e68a9983a24815d6578706563740a202020207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e6564001641cd153307449143657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20746f74616c5f65786368616e67655f76616c7565001641cd06641cc66e04cdc0804001004c191072418d072418907241850720c1d400660026eb0c134c1c0dd50284dd7181498381baa304c3070375401b375c609860e06ea8c130c1c0dd5006c0c9012454cc1b92412a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e6564001641b5153306e4914b6578706563742076616c69646174655f756e7374616b655f696e70757473286f726465725f696e707574732c20756e7374616b655f72657175657374732c2073757364725f617373657429001641b4329800800c02e97ae10101000081010000200222259800801440063300100398390014c8c966002603e6eb4c0d8c1c0dd5001456600266e24dd6981b18381baa0020018998391ba8337006eb4c1cc00cdd6981b18381baa00233072375066e00dd69839983a001800a5eb822a660dc92012065787065637420722e666f7266656974203c3d20726571756573745f75736472001641b5153306e4911565787065637420722e666f7266656974203e3d2030001641b466e0ccdc11bad304b306f375400200a00c60e2004801906f454cc1a524011965787065637420736574746c65645f6265666f7265203e2030001641a11533069491236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001641a115330694911c657870656374207661756c745f757364725f6265666f7265203e2030001641a06eb4c1b0c1a4dd50014c004006005049404c60d40026eb4c1a8008c1a800660026eb0c1a0c194dd5022cdd7180f18329baa304130653754005375c608260ca6ea8c104c194dd500140a5008454cc18d2411d65787065637420746f74616c5f73757364725f6275726e6564203e2030001641893001003801496600260266eb4c104c194dd5000c4c04cdd6982118329baa0018a504188811209e830a09c830914a082f105e0896600266e2000520008a6103d87a8000899804801000a0b422a6607892013665787065637420536f6d65287661756c745f6f75747075745f69647829203d2065787472612e7661756c745f6f75747075745f696478001640ec6eb4c0fcc0f0dd5000981f98201820182018201820181e1baa0038a9981d24813465787065637420536f6d65287661756c745f696e7075745f69647829203d2065787472612e7661756c745f696e7075745f696478001640e4600260766ea8008c0f0c0e4dd50009181e981f181f181f181f000981d981c1baa0078a9981b2493665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640d49111112cc004c08c01e264b3001001813c4c96600200315980098220014566002604a607e6ea8006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c0ba05d132598009825801c5660026058608c6ea801a264b300100181844c966002003031818c4cc89660020030338992cc004006069034899912cc00400606d13259800800c0de06f037899912cc00400607313259800800c0ea07503a899912cc00400607913259800800c4c96600200303e8992cc0040062b3001305b002899819007112cc00400a26606801a44b30010028cc00401e330010058acc004c100c168dd500c44c9660020030448992cc004006264b300100182344c966002003159800983180144cc8966002608c00313259800800c12a264b3001001825c12e264b3001306800389981f800912cc00400a00f13259800800c6600200313002306b003827a058827c13e09f04f41b060d2004833a0988328dd6000c12e0968340c19400506318309baa0058acc004c0ec006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40b104f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b1598009822800c4c96600200304a8992cc00400609704b8992cc004c1a000e26607e00244b3001002803c4c96600200319800800c4c008c1ac00e09e816a09f04f827c13d06c183480120ce82620ca375800304b825a0d03065001418c60c26ea80162b300130470018992cc00400609513259800800c12e0971332259800800c136264b30010018acc004c1a800a26608200644b30010028acc004c134c19cdd5001c4c9660020030518992cc0040060a505282944cc89660020030548992cc0040060ab05582ac4c96600260e400700f82b20de375a00305541c860de0028368dd68009837001414906f1836000a0d430683754007050419513259800800c6600200313002306d003828a05e828c1460a305141b860d6004834a09c833a09d04e827413906b1834000a0cc375800260ce00504b825a0d03065001418c60c26ea80162b3001303a0018992cc00400609513259800800c12e097132598009834001c4cc0fc00489660020050078992cc00400633001001898011835801c13d02e413e09f04f827a0d83069002419d04c41946eb000609704b41a060ca0028318c184dd5002c566002607200313259800800c12a264b3001001825c12e264b3001306800389981f800912cc00400a00f13259800800c6600200313002306b003827a05c827c13e09f04f41b060d2004833a0988328dd6000c12e0968340c19400506318309baa0058acc004c0e0006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40bd04f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b15980099b8748038006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40bd04f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b15980099b87480400062b30013061375400b002824a0c4824a0bc417882f105e20bc417882f105e20bc19800800c4cc0e806489660020050248992cc00400609504a8992cc00400609713259800800c13209904c82644cc896600200304e8992cc0040062b3001306b0028cc0040062600e60d601104f40c504f41a104f827c13e09e8360c1a40050671bae001306800241a460cc0028320dd6000c12a0948338c190009062411d023182f1baa003823a0c0823c11e08f047419060c200282f8c18400a08b045822c115062182f800a0ba305b375403104341610434099043409913259800800c112089044899180198308021bad00182220c2305e002417113259800800c10a0850428991801982f8021bad00182120be305c002416903f416103f81fc0fe07e82e0c164005057182c80140f607b03d81ea0b4305700141546eb4004c15800a07482b8c1500050521bad001305300281ba0a83051001413c6eb0004c14000a0690344144609c0028260dd6000982680140c60628270c12c00504918239baa006817a088817a090375800302e817209630480014118609000502c81640b20588248c118005044182300140aa05502a815208e3044001410860806ea800605081ea050820a05102881440a10451821000a080303e375401b159800980c003c4c9660020030278992cc0040062b300130440028acc004c094c0fcdd5000c4c9660020030298992cc004006264b3001001815c4c96600200302c81644c9660026092007159800981518221baa0048992cc00400605d13259800800c4c9660020030308992cc0040062b3001304d0028acc004c0b8c120dd5001c4c9660020030328992cc004006264b300100181a44c96600200303581ac4cc89660020030378992cc004006071038899912cc00400607513259800800c0ee07703b899912cc00400607b13259800800c0fa07d03e899912cc00400608113259800800c1060830418992cc004c17800e2b3001303f3059375402113259800800c10e264b300100182241120891332259800800c11a264b3001001823c11e08f132598009832001c5660020270488992cc004006093049824c4cc896600200304b8992cc00400609904c82644c96600260d200715980080ac136264b3001001827413a09d1332259800800c142264b3001001828c1460a3132598009837001c66002045133045026225980080140be264b300100182ac156264b300100182b44c96600200305782bc15e0af1332259800800c166264b30010018acc004c1d800a3300100189803983b004416903c4169073416a0b505a82d20ee307400141c86eb8004c1cc0090741838800a0de375800305582aa0e4306f00241b505240b905241ac6eb40060a28370c1ac0050691bad001306a01682720d63068015419904d41986eb40060988348c1980050641bad0013065014824a0cc3063013418504841846eb400608e8320c18400505f1bad001306000282220c2305e001417060b46ea804208482ba08482d8dd6800c10505e182d800a0b2375a00260b400503e416c60b000282b0dd6800982b80140ed058182a800a0a6375800260a800503881c20aa305200141406eb0004c14400a06b0354148609e0028268c13c00a067033819c0cd0501826800a0963049375400703141190314129031818c0c60628270c12c005049182580140be05f02f817a0983049001411c608a6ea801205a821205a8230dd6000c0b20588248c118005044182300140aa05502a815208e3044001410860806ea800605081ea050820a05102881440a10451821000a080303e375401b02640ec81d880d406a03501a40dc664464b30013019303337540031303432337606070002607060720026eb0c0dcc0d0dd5000c54cc0c924018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c02ccc0e0dd480225eb812f5c11300c33038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c37566068606a606a606a606a606a606a606a606a606a60626ea8044dd7181a18189baa00132323259800800c566002603060646ea8006264b300100180ec4c96600200301e80f407a03d1332259800800c082264b30010018acc004c0f000a2b3001301d3037375400313259800800c08a264b30010018992cc00400604913259800800c4c9660020030268992cc0040062b300130420028acc004c08cc0f4dd5002c4c9660020030288992cc004006264b300100181544c96600200313259800800c0b2264b30010018992cc00400605d13259800800c4c9660020030308992cc004006264b300100181944c96600200313259800800c0d2264b30010018992cc00400606d13259800800c4c9660020030388992cc004006264b300100181d44c966002003159800982b00146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002606e60a26ea805e264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c1260931332259800800c12e264b30010018acc004c19c00a330010018acc004c120c188dd501344c96600200304d8992cc00400609d04e899912cc0040060a113259800800c56600260d800513304300322598008014660020071038829a07a8992cc0040062b30013050306a375400313259800800c156264b300100182b415a26644b300100182c44c96600200305982cc16626644b300100182dc4c96600200305c82e4172264b300130780038acc00401e0bb13259800800c17a0bd05e82f44cc89660020030608992cc0040060c3061830c186264b3001307d00389808183e808c18907a1bae00141f460f400283c0dd7000983c80420f4307700741d505d41d46eb40060b883c0c1d40050731bad001307400282ca0ea307200141c06eb0004c1c400a0ad05641c860de0028368c1acdd5000c15106841520a905482a20e0306d00241ad05141a5051828c1460a28368c1a80050681bac0013069002827413906a1833800a0ca3063375404d04c418104c40d504c419104c82641320988340c1940050631bae0013064002419460c40028300dd7000983080120c4305f00141746eb8004c17800905f182e000a0b4375c00260b600482e0c1640050571bae0013058002416460ac00282a0c148dd500bc0ed04f40ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed05340ee07703b81da0ae3054001414860a800503981cc0e607282a8c148005050182900140de06f03781ba0a63050001413860a000503581ac0d606a8288c13800504c182700140ce067033819a09e304c00141286098005031818c0c60628268c128005048182500140be05f02f817a09630480014118609000502d816c0b605a8248c118005044182300140ae05702b815a08e304400141086088005029814c0a60528228c108005040181f1baa005813a076813a07e813c09e04f027410c608000281f0c10000a04b025812c095041181f000a078303e002811c08e04702340fc607800281d0c0e0dd5000c08503540850394086043021810a07a303a00140e06eb8004c0e400903a181b800a06a3033375400301c40c101c80e407203881c0c966002603060646ea8006264b30013018303337540031303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602060666ea8c03cc0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c064660020026eb0c03cc0ccdd5009912cc0040062980103d87a80008992cc004c8cc004004c014dd59809181b1baa30123036375400444b30010018a508acc004cdc79bae303a0010338a51899801001181d800a06840e11300b330370014bd7044cc00c00cc0e4009032181b800a06a30010012259800800c52f5c11330343031303500133002002303600140cc2223259800980a800c4c9660020030038992cc0040060090048024012264b3001303700380340150341bae00140dc60680028190c0c0dd50024566002601400313259800800c00e264b300100180240120090048992cc004c0dc00e00d00540d06eb8005037181a000a0643030375400900240b48168c0b8dd5001a2b30013008003899192cc004c024c08cdd5181398140014528c5282042375a604c00260446ea80122c80f901f0c084c088004c084011149a2a6602e9211856616c696461746f722072657475726e65642066616c7365001365640581" + : "5927b4010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba5480026e952002912cc004c024c038dd500144c8c8cc8966002602e0070058b2028375a60280026eb8c050008c050004c03cdd500145900d24444444444530012223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300b0018992cc004c08400626601a6eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc034dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998079bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b3001300a001899192cc004c08800a00916407c6eb4c080004c070dd5001c56600260120031323259800981100140122c80f8dd69810000980e1baa0038acc004c02000626464b3001302200280245901f1bae3020001301c375400716406880d101a2034406880d101a180d1baa00291192cc004c05400626464b3001302100280245901e1bae301f001301b37540071598009805000c56600260366ea800e00516407116406480c8c064dd5001488c966002602a0031323259800981080140122c80f0dd7180f800980d9baa0038acc004c02800626464b3001302100280245901e1bae301f001301b375400716406480c8c064dd500148966002602860326ea800a2646464b30013021002899192cc004c0640062b3001301f37540050068b20408acc004c03800626464b300130250028044590221bad3023001301f3754005159800980c000c566002603e6ea800a00d16408116407480e901d180e9baa00130200038b203c3259800980e800c56600266e252004301c0018b44c030c07000501b45901e1baa301f001301f001301a3754005164061223259800980a800c4c8c96600260420050048b203c375a603e00260366ea800e2b3001300a0018acc004c06cdd5001c00a2c80e22c80c9019180c9baa00248888a6002600a00b2259800980c980f1baa00289919192cc004c09800a266010604a006264b3001301d0018992cc004c0a000626464b300130200018992cc004c0ac00626601a60540020131640a0604c6ea800a2b3001301500189919194c004dd69816000cdd69816001cdd698160012444b3001303000480745902d0c0b0004c0ac004c098dd5001459024204830243754002604e00316409460466ea800a2b300130120018acc004c08cdd500140162c81222c810902118109baa0018b204630240013024001301f3754005164075223259800980d000c4c966002604a00313300a30240010038b2044302037540071598009807800c4c966002604a00313259800980e18109baa00189919192cc004c0a400a266014605000626601400200f164098604e002604e00260446ea80062c8100c0900062c8110c080dd5001c5901e203c301e37540052259800980c980f1baa0028991919192cc004c09c00a264b3001301e30233754003132323322598009816001c4cc03cc0ac02002a2c8148dd718148009bae3029002302900130243754003164088604c0091640906eb8c094004c094004c090004c07cdd500145901d244446645300133223259800981018129baa001898131919bb0302a001302a302b00137586052604c6ea80062c8120c8cc00400400c896600200314c0103d87a80008992cc004cdd7981380099ba548010cc0a8c048cc0a8dd480225eb812f5c1130133302a374e66054604e00266054605000297ae04bd7044cc00c00cc0b00090261815000a0503756604c604e604e604e604e604e604e604e604e604e60466ea8060dd7181318119baa002912cc004c07cc090dd500144c8c8c8cc8966002605c007133008302d0051330130020068b2056302b001375a605600460560026054002604a6ea800a2c811a44b3001301f302437540051323232323298009bad302d0019bad302d0049bad302d003981680124444b30013032005899806181880489980b80080545902f0c0b4004c0b0004c0ac004c0a8004c094dd500145902348966002603e60486ea800a264646464646530013758605c003375a605c00b375a605c009375a605c007302e00248888966002606800d13300e303300b133019001132332259800981b801c03e2c81a0dd7181a0009bae303400630340058b20621817000981680098160009815800981500098129baa0028b2046912cc004c07cc090dd500144c8c8c8c8ca60026eb0c0b40066eb4c0b40126eb4c0b400e605a00491112cc004c0c8016266018606201226602e0022646644b30013035003806c590321bae3032001375c606400a60640091640bc302d001302c001302b001302a0013025375400516408c9111119912cc004c090006264b3001302f0018992cc004c098c0acdd5000c4c8c8c8cc8966002606a00713259800981618189baa00189919191919194c004c0ec0066eb0c0ec0166eb4c0ec0126eb4c0ec00e6076004911112cc004c10401a26605a6eb0c10002c896600200513302f006225980080144cc0940144cc094024566002607660806ea80462646464b3001304800289919912cc004c10400a264b3001304c00189981c1bac304b00122598008014012266046609a00426002609c004825a2c8248c11cdd5001c566002606c005132598009826000c4cc0e0dd61825800912cc00400a009133023304d00213001304e002412d164124608e6ea800e2b300130400028992cc004c1300062660706eb0c12c0048966002005004899812182680109800982700120968b209230473754007159800982100144c8c8c966002609c00513303a3758609a00644b30010028acc004c118c12cdd5001c4c8c8cc896600260a800700a8b20a2375a60a20026eb4c144008c144004c130dd5001c5904a44cc098c13c0084c004c14000904d45904b1826000982600098239baa0038acc004c0d400a264b3001304c00189981c1bac304b0012259800801401226604a609a00426002609c004825a2c8248c11cdd5001c5660026068005132598009826000c4cc0e0dd61825800912cc00400a009133025304d00213001304e002412d164124608e6ea800e2b300130330028992cc004c1300062660706eb0c12c0048966002005004899813182680109800982700120968b20923047375400715980099b874803800a264b3001304c00189981c1bac304b0012259800801401226604c609a00426002609c004825a2c8248c11cdd5001c56600266e1d20100028acc004c11cdd5001c0062c82422c8229045208a41148229045208a41148228c110dd500089981300109981a80b112cc00400a03f1323322598009827000c4cc0a8c1340044c010c1380162c8258dd7182580098260009bac304a0024120608e007164114608c002608c00260826ea80462c81fa2646004608c0066eb4c11000904244c8c008c11000cdd6982100120808b207c181d800981d000981c800981c000981b80098191baa0018b206030340058b20643758606400260640046064002606200260586ea80062c8150c0b80062c8160c0a8dd5003c5660026032003132598009817800c4c966002604c60566ea80062646464b300130330028992cc004c0a8c0bcdd5000c4c8c966002606c00313259800981698191baa00189919191919194c004dd6981e000cdd6181e002cdd6181e0024dd6981e001cdd6981e001244444b300130420068992cc004c0e4c0f8dd5000c4c8c8cc8966002608e0071323322598009825001c4c8cc8966002609a00713302a304c01813303901b2259800801408e2646644b300130520018998171828800898021829002c5904f1bae304f00130500013758609c00482622c8250dd698250009bad304a00c304a00b8b208e375a608e0026eb4c11c028c11c0262c8220dd698220009bad30440023044001303f37540031640f460820171640fc303c001303b001303a00130390013038001303337540031640c4606a0051640cc606a00260606ea80062c8170c0c800e2c8180dd61818800981880098161baa0018b2054302e0018b2058302a375400f1640a081405660026044604e6ea8016264664464b30013026302b37540031332259800981418169baa0018cc004dd6981898171baa001981898171baa301f302e375400d2225980080145300103d87a80008acc004c0ac0062603866066606800497ae08cc00400e606a005337000029000a00640bc819244646600200200644b30010018a508acc004c00cc0d40062946266004004606c0028181033488966002604060606ea8c0d0c8cc00400400c896600200314bd708103d87a80008101800044c8cc8966003300130253035375460720074a14a281a226607130014a14c103d87a8000a60103d879800040d0660706e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0ec00400e2946266004004607800281b103944cc0e2600294298103d87a8000a60103d879800040d0660706e9c0092f5c11330389800a51a60103d87a8000a60103d879800040d0660706e9ccc0e0dd400080125eb8103420683758606e60700026eb4c0dc008cc008008c0dc00503444ca6002003004801d200040044444b30010038acc00400a20031640d9198008024c0e400e6072005332259800980380144cdc00019bad3028303737540051640d460700066eb4c0e0009004206c8b205e91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c81aa26600a00a607600881a8dd7181a0009bad3035001303700140d464646600200200c44b3001001801c4c8cc896600266e4402400a2b30013371e0120051001803206c899802802981e002206c375c606a0026eacc0d8004c0e00050360a5eb7bdb18052000912cc004c0a8c0bcdd500144c8c8c8ca60026eb4c0dc0066eb4c0dc0126eb4c0dc00e6eb4c0dc009222259800981e002c0262c81c8606e002606c002606a00260606ea800a2c81724606460666066606660666066606660660032232330010010032259800800c52f5c1133225980099baf303730343754606e60686ea8c094c0d0dd5001180f1981b1ba90054bd7044cc0d8008cc0100100062660080080028190c0d4004c0d800503348c0c8c0ccc0ccc0cc0064444646600200200a44b300100189981b19bb0375200a6ea00112f5bded8c113298009bae30340019bad3035001981c8012444b30013372001200713303a337606ea4024dd4004002c56600266e3c02400e33001009804400a46607666ec0dd48051ba80010028800a00e89981d19bb037520066ea0008cc018018005036206c181b800a06a91111919800800802912cc00400626606c66ec0dd48029ba60044bd6f7b63044ca60026eb8c0d00066eacc0d400660720049112cc004cdc8004801c4cc0e8cdd81ba9009374c01000b15980099b8f0090038cc00402601100291981d99bb037520146e9800400a2002803a26607466ec0dd48019ba60023300600600140d881b0606e00281aa4b30010018a518a5040c112222232598009817000c00a260060028190cdc0002001cdc0a400122232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6070003375a607200333003003303d0024024607600281c8dd5981b0019bae3033001330030033038002303600140d1222329800800c012006800888966002005159800800c528c528206a8acc00400629422b300133004303700230370018cc00400e60700053038001400d14a08191035206a912cc004c0a8c0bcdd500144c8c8c8ca6002606e0033037003981b8012444b3001303b00489980d181d00389980a8010992cc004c0c8006264653001375a607a003303e0019bad303d0024889660026082005132323322598009822801c04a2c8210dd718210009bae30420023042001375860800051640f8303d001303837540051598009813800c4c8ca60026eb4c0f4006607c003375a607a0049112cc004c10400a264646644b300130450038094590421bae3042001375c608400460840026eb0c10000a2c81f0607a00260706ea800a2b3001303100189919194c004dd6981f000cc0fc0066eb4c0f800e6eb4c0f80092222598009821801c4c8c8cc8966002608e0070148b2088375c60880026eb8c110008c110004dd61821001c590400c0f8004c0f4004c0e0dd500145660026066003132332259800981f800c4c8c8cc896600260860070108b2080375c60800026eb8c100008c100004dd6181f000c5903c1bad303c001303d001303837540051598009813000c4c8c8cc8966002608000700d8b207a375a607a0026eb4c0f4008c0f4004c0e0dd50014566002604a003132323298009bad303e0019bad303e0039bad303e002488966002608400900f8b207e181f000981e800981c1baa0028acc004c09000626464b3001303e002805c5903b1bad303c0013038375400515980099b874803800626464b3001303e002805c5903b1bad303c001303837540051640d881b1036206c40d881b1036206c303637540031640e0303700130360013035001303037540051640b92259800800c5268992cc00400629344c96600266e40dd71818981a8019bae30310018998020021981a000981b001459030181a000a064303400140c5371290004dc4240009111111111111111111114c004c108dd500a4c04c04e4530013301400223375e6092608c6ea8c124c118dd5181b98231baa001303033048375200497ae0a50a51410d2225980099b89375a606e608c6ea800920008801c4cdc080199194c004dd69825800cdd698259826000cc966002608660906ea800626644b30013045304a375400315980099b89337026eb4c138c12cdd500080124101756e0710028b20928b2092375a609860926ea8004c966002607260926ea80062606a66098609a60946ea80052f5c114c103d87a80004120609860926ea8c0e8c124dd5180a18249baa0048b208e3259800981c18241baa0018981a19825982618249baa0014bd7045300103d87a8000411c609660906ea8c12cc120dd5180998241baa0039bad304b0024888966002b30013371200290004528c4cdc480180120948a400115980099b890020048800c4c8cdc199b803370066e08008cdc0802001800a400200266e0400c01104a20941825800982518231baa002411122329800800c00e00480088896600200510018994c004012609a00798008014dd71824000cdd59824800c88888c966002602a00300289801800a09a32329800800c01a00a80088896600200510018994c00401260ae00798008014dd71829000cdd69829800c01501b20083055002414ca02680810041825801209291919800800801112cc004006297adef6c608991982499bb03046001374c64660020026eacc120008896600200314bd6f7b63044c8cc130cdd818248009ba8300e375a609400266006006609c00460980028250cc00c00cc12c008c1240050474888966002608200314a3133712002646600200200a44b30010018a4001133225980099baf304e304b375400400f13370000330013756607860966ea800a6eb8c13801a6eb8c0f0019018440050491826000998010011826800a09441153003003488888888ca600244646600200200444b30010018a5eb822660a464b3001304b30503754003130543051375400316413c6600a0086eb4c14c004cc008008c15000505148888c966002609660a06ea8006264b30013375e60aa60a46ea8c154c148dd5182198291baa001303c33054375200a97ae08acc004c10660026eacc10cc148dd5182198291baa001802d2210d7374616b696e675f7661756c7400407d13259800982618291baa0018991981000089982b1ba898009bab304530543754608a60a86ea800e00d48810455534472004084660ac002660ac00697ae0305630533754003164144608860a46ea8c10cc148dd5000c59050459050182a18289baa0018b209e330050040019111192cc004c12cc140dd5000c4c96600266ebcc154c148dd5182a98291baa001303c33054375200a97ae08acc004c10660026eacc10cc148dd5000c01691010d7374616b696e675f7661756c7400407d13259800982618291baa001899198100008acc004cdd7980e982a1baa0034c0103d87a800089982b1ba898009bab304530543754007006a4410455534472004084660ac002660ac00697ae08b20a4305630533754003164144608860a46ea80062c82822c8280c150c144dd5000c5904f19802802000c888888896600266ebcc15cc150dd5003982b982a1baa0068acc004cdd79823182a1baa00730453054375400d13259800cc0040069464444b30010018980c001452820ae40611325980099b890040018acc004cdc4800801c40062c82a22c82a26002003375c60b0009375c60b060b200881122c8298cc034dd59822982a1baa007300c98009bae30570059bae30573058005980c0022444b300130510018805c66002017003991900118070009982c99bb037520046ea00052f5bded8c12222232598009811800c00a2600600282d8ca6002009008803c8888a600200b003802400a00280310252810a03c41548b20a48b20a49114c004cc020dd5982018279baa002300737566080609e6ea8c100c13cdd5001d28c88896600200315980099b8f0044881008a518acc004cdc7802002c4cdc7801a4410455534472008a504144828a2941051202448888966002607e01d19800998029bac3054305137540446eb0c108c144dd50144dd6182a18289baa028982118289baa0304889660026601e6eb0c15cc150dd50249bae305730543754608a60a86ea80062b30019800998119bac305730543754092466ebcc160c154dd5182c182a9baa30463055375400260b060aa6ea8c118c154dd51823982a9baa002a50a514149132598009809800c4c8c8cc88cc89660026034005159800acc004c15400a29462603200282ca26644b3001980080140324464b30013059305f37540031323302200115980099baf302a3061375400660c860c26ea80122b30013375e60a460c26ea8004c190c184dd5001c56600266e24dd6982918309baa00398009bab30523061375460a460c26ea80126eb8c1900166eb8c14801502e44c96600260a060c26ea8006264b30013370e6eb4c198004dd6982a18319baa005899b87375a60cc60ce0026eb4c154c18cdd5002c52820c23062375400314a08300c14cc184dd5000c5905f45905f45905f183198301baa0018b20bc3051305f375460a060be6ea800901f44c8c8cc896600330013064306500b98321832801cdd7182918309baa30523061375401c808a2b30013370e6eb4c148c184dd50011bad30523061375401515980099b87375a60a660c26ea8008dd6982998309baa00a8acc004cdc39bad302a306137540046eb4c0a8c184dd500544c8cc8966002604600315980099b87375a60ce60c86ea8014cdc0005802456600266e1e60026eacc0e8c190dd502ccdd7182a98321baa30553064375402348810573555344720040c4009159800982f4c004dd5981d18321baa0599bae30553064375460aa60c86ea804691104555344720040c5198009bac3056306437540b330553064375460ac60c86ea8046660cc60aa60c86ea8c154c190dd500899833261054455534472004bd70400501b4590624590624590624590622cc004c0800262b30013371266e08008020cdc1000804c5268b20c08acc004cdc4801000c5268b20c0418066e04038004cdc09bad30640040098b20be8b20be8b20be8b20be306200198009bac3051305f37540a9330613050305f375460a060be6ea8030cc185300106457355534472004bd704c140c17cdd51828982f9baa00c4888ca6002003008809404500111112cc00400e2900044cc896600260c460ce6ea80062b3001980099baf306b3068375460d660d06ea800801e94294506644cdc04c004dd5982c98341baa30593068375460d600b306b30683754003306b3068375400500c9bad3059306837540050089bad305a30683754005598009831007c4dd6982c98341baa002899b83337046eb4c164c1a0dd500100780720cc406530010069836002cc1b001260d800680322c83322c8330c1a4008cc06c01cdd69834800a0ce1831000cc004dd61827982e9baa0529bae3026305d3754609c60ba6ea802a6eb8c138c174dd51827182e9baa00a817a01e8b20b633025375860bc60b66ea8140dd71826982d9baa304c305b3754010660ba609860b66ea8c130c16cdd50041982ea601054455534472004bd704590594590591bad305c3059375400530010018014139013182d0009bad305a002305a00198009bac305830553754095375c603c60aa6ea8c118c154dd50014dd71823182a9baa304630553754005029402116414d3001003801496600260266eb4c118c154dd5000c56600260266eb4c11cc154dd5000c4c13cdd69815982a9baa0018a50414d14a0829902245905245905222b3001303e00e8cc004cc014dd6182a18289baa0223758608460a26ea80a26eb0c150c144dd50144c108c144dd50182444b30013300f375860ae60a86ea8124dd7182b982a1baa304530543754003159800cc004cc08cdd6182b982a1baa04923375e60b060aa6ea8c160c154dd51823182a9baa001305830553754608c60aa6ea8c11cc154dd5001528528a0a48992cc004c04c0062646466446644b300130190038acc004c06400a2b300130190018994c004dd6982f800cdd6982f9830000ccc178c134c170dd51826982e1baa0093305e4c0106457355534472004bd704cc098dd6182f982e1baa051375c609c60b86ea8c134c170dd5004a4444b30019800800c03e4464b3001305c306237540031323302500115980099baf302d3064375400660ce60c86ea80122b30013375e60aa60c86ea8004c19cc190dd5001c56600266e24dd6982a98321baa00398009bab30553064375460aa60c86ea80126eb8c19c01a6eb8c15401903144c96600260a460c86ea800626464b30013370e6eb4c1a8008dd6982c18339baa0068acc004cdc39bad306a001375a60b260ce6ea801a266e1cdd6983518358009bad303d3067375400d14a0832a2941065183500098329baa0018a50418c60ac60c86ea80062c83122c83122c8310c198c18cdd5000c59061182a18311baa30533062375400481122b30013370f30013756606c60c06ea81566eb8c144c180dd5182898301baa00da450573555344720040b46048019132323259800cc004c198c19c03660cc60ce005375c60a860c66ea8c150c18cdd500820268acc004cdc39bad3054306337540026eb4c150c18cdd5006456600266e1cdd6982a98319baa001375a60aa60c66ea80322b30013370e6eb4c0b0c18cdd50009bad302c30633754019132598009811800c56600266e1cdd6983380219b8100c0078acc004cdc39bad30673064375400466e0402c0422b3001305e98009bab303a306437540b3375c60aa60c86ea8c154c190dd5008d220104555344720040c5198009bac3056306437540b330553064375460ac60c86ea8046660cc60aa60c86ea8c154c190dd500899833261054455534472004bd704cdc0004000a0368b20c48b20c48b20c48b20c43370266e0401a60026eb0c154c18cdd502c4cc194c150c18cdd5182a18319baa010330654c01054455534472004bd704c150c18cdd5182a98319baa0104888ca600200300880b405500111112cc00400e2900044cc896600260cc60d66ea80062b3001980099baf306f306c375460de60d86ea800801e94294506a44cdc04c004dd5982e98361baa305d306c375460de00b306f306c3754003306f306c375400500e9bad305d306c37540050089bad305e306c37540053370266e0ccdc11bad305d306c37540040240266eb4c108c1b0dd5001203a98008034c1c001660e0009307000340191641a91641a860da0046603e00e6eb4c1b400506b001e2c830a2c830a2c830a2c8308c194004c19400660026eb0c148c180dd502acdd7181498301baa30513060375401b375c60a260c06ea8c144c180dd5006c0c901245905e45905e0ca600200300ba5eb84101000081010000200222259800801440063300100398310014c8c966002603e6eb4c0d8c180dd5001456600266e24dd6981b18301baa0020018998311ba8337006eb4c18c00cdd6981b18301baa00233062375066e00dd698319832001800a5eb822c82f22c82f0cdc199b82375a60a060be6ea8004014018c18400900320be8b20b28b20b28b20b2375a60b860b26ea800a60020030028272026305a001375a60b400460b40033001375860b060aa6ea812a6eb8c078c154dd51823182a9baa0029bae304630553754608c60aa6ea800a05280422c829a600200700292cc004c04cdd69823182a9baa001898099bad30473055375400314a082990224590524590522294104f209e112cc004cdc4000a400114c0103d87a8000899804801000a09622c8160dd6981798161baa001302f30303030303030303030302c37540071640a8600260566ea8008c0b0c0a4dd5000918169817181718171817000981598141baa0058b204c3027375400a32323259800980f18119baa00189919912cc004c0ac006264b300130223027375400313232323322598009818801c4c9660026050605a6ea80062646464646464646464653001303b001981d804cc0ec022607600f303b006981d802cc0ec0126076007303b002488888888966002608a0151330243044013133024008133024007133024006133024005133024004133024003133024002133024001133024009159800981d98201baa015899191919194c004dd71824800cc1280066eb8c1240166eb8c1240126eb8c12400e6eb8c124009222222598009828002c4cc0ccc13c014566002608c60966ea80862646464b3001305300289981f9bac3052003225980080144cc0cc00c40ba264b3001304c305137540031323232332259800982d801c4c8c8cc896600260be0071300b305f00c8b20b8375c60b80026eb8c170008c170004dd6182d002c590581bad3058001375a60b000460b000260ae00260a46ea80062c8280c1500090524590501828800982880098261baa0218b20948b209a182480098240009823800982300098209baa0158b207e8b2084181d800981d000981c800981c000981b800981b000981a800981a000981980098171baa0018b205830300058b205c302e001302e002302e001302d0013028375400316409860540031640a06eb8c0a0004c0a4004c090dd5000c59022192cc004c078c08cdd5000c4c966002603c60486ea800626050604a6ea80062c8118c058c090dd5180a98121baa30273024375400316408864660020026eb0c054c090dd500c912cc0040062980103d87a80008992cc004c8cc004004c014dd5980c18139baa30183027375400444b30010018a508acc004cdc79bae302b0010258a518998010011816000a04c40a513011330280014bd7044cc00c00cc0a80090241814000a04c30010012259800800c52f5c113302530223026001330020023027001409044b3001301d30223754005132323259800981500144cc020c0a400c4c966002604200315980098139baa002802c590284566002602c00313232598009816801401e2c8150dd7181580098139baa0028acc004c08000626464b3001302d002803c5902a181580098139baa0028b204a40948128c094dd5000c590271814000981400098119baa0028b204211598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d13656400801", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProtocolStakeProtocolStakeElse { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "594a1d010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae0024888888888a60022a6600692013765787065637420726571756573742e64657374696e6174696f6e2e6164647265737320213d207969656c645f706f745f6164647265737300168a99801a493265787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c206f75747075745f6964782900168a99801a4934657870656374205b6f75747075745f6964782c202e2e726573745f696e64696365735d203d206f75747075745f696e646963657300168a99801a492c657870656374205b726571756573742c202e2e726573745f72657175657374735d203d20726571756573747300168a99801a495d6578706563740a20202020202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c2061737365742e3173742c2061737365742e326e6429203e3d20726571756573742e616d6f756e7400168a99801a492f65787065637420646174756d2e64657374696e6174696f6e203d3d20726571756573742e64657374696e6174696f6e00168a99801a492f65787065637420726571756573742e6f726967696e203d3d20696e7075742e6f75747075745f7265666572656e636500168a99801a492765787065637420646174756d3a204f72646572446174756d5631203d20646174756d5f6461746100168a99801a492d657870656374207661756c745f646174756d3a205661756c74446174756d5631203d20646174756d5f6461746100168a99801a493365787065637420496e6c696e65446174756d28646174756d5f6461746129203d20696e7075742e6f75747075742e646174756d00168a99801a491765787065637420757364725f6d696e746564203d3d203000168a99801a490f65787065637420666565203e3d203000168a99801a4944657870656374207661756c745f646174756d5f6f75742e646966667573696f6e5f656e64203d3d207661756c745f646174756d5f696e2e646966667573696f6e5f656e6400168a99801a4948657870656374207661756c745f646174756d5f6f75742e646966667573696f6e5f7374617274203d3d207661756c745f646174756d5f696e2e646966667573696f6e5f737461727400168a99801a4944657870656374207661756c745f646174756d5f6f75742e70656e64696e675f7969656c64203d3d207661756c745f646174756d5f696e2e70656e64696e675f7969656c6400168a99801a49756578706563740a2020202076616c69646174655f7661756c745f6e6f5f74726173685f746f6b656e73280a2020202020207661756c745f696e7075742c0a2020202020207661756c745f6f75747075742c0a20202020202073657474696e67732e72656769737472792e757364722c0a202020202900168a99801a49b06578706563740a20202020216c6973742e616e79280a20202020202074782e696e707574732c0a202020202020666e28696e70757429207b0a2020202020202020696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d2073657474696e67732e636f6e6669672e756e7374616b65645f7969656c645f706f742e7061796d656e745f63726564656e7469616c0a2020202020207d2c0a202020202900168a99801a493d657870656374206e6f5f7363726970745f696e7075742874782e696e707574732c2073657474696e67732e72656769737472792e74726561737572792900168a99801a49696578706563742070726f78795f646174756d3a2050726f7879446174756d5631203d0a20202020626173655f7574696c69746965732e6765745f70726f78795f696e6c696e655f646174756d287265666572656e63655f696e707574732c20706f6c6963795f69642900168a99801a495f657870656374206f7263686573747261746f725f72656465656d65723a2050726f746f636f6c4f7263686573747261746f7252656465656d65725631203d0a2020202020206f7263686573747261746f725f72656465656d65725f6461746100164888888888888888888896600330013019375403f370e90034dc3a4001370e90022444464653001301e3754003302200698110012444b300130060038cc004c094c088dd500248c098c09cc09c0064604c604e003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba5480026e95200248888888888ca6002444b30013015302f375400713259800800c00a264b30010018992cc00400600913259800800c566002607000519800801c4c966002603400313259800800c01e264b30010018acc004c0ec00a264b3001301d0018992cc00400601513259800800c566002607c00519800800c032016807201681da01700b805c02d03f181e000a074303837540051598009809000c4c96600200300a8992cc00400601700b805c4cc896600200300d8992cc00400601d00e80744cc89660020030108992cc004006023011808c4c966002608a0070138092084375a003011411460840028200dd680098208014039042181f800a07a375a002607c00500b40fc607800281d0c0e0dd50014025035206a3036375400300840e1008804402201081e0c0e4005037181a9baa0028acc004c03c0062b300130353754005007803206c803206440c860666ea800600a804200a81aa00b005802c015039181b000a0683036002801c00e00700340dc60680028190c0c0dd5001c00502d4888c966002602c00313259800800c00e264b300100180240120090048992cc004c0e000e00d00540d46eb8005038181a800a066303137540091598009805800c56600260626ea801200700240c900240b88170c0bcdd5001c888ca6002003004801a0022223259800980c800c4c9660020030068992cc00400600f007803c01e264b3001303b003802c0210381bae00140ec607000281b0c0d0dd5001c566002601c00313259800800c01a264b3001001803c01e264b3001303b003899809000912cc00400a00f13259800800c6600201500189801181f001a014805c02e01700b40fc607800481d201081c0dd6000c01e00e81d8c0e0005036181a1baa0038acc004c060006264b300100180344c966002003007803c4c96600260760071330120012259800801401e264b30010018cc00402a00313002303e003402900b805c02e01681f8c0f000903a40210381bac001803c01d03b181c000a06c30343754007159800980d000c4c9660020030068992cc00400600f007803c4cc89660020030098992cc00400601500a8992cc004c0f800e26602a00244b300100280544c96600200319800806c006260046082006806a01d00e8074039042181f801207a805a076375800300a805207c303b00140e46eb4004c0e800a00e81d8c0e0005036181a1baa0038acc004c034006264b300100180344c966002003007803c01e264b3001303b003802c0210381bad001803a076303800140d860686ea800e2b3001300c0018992cc00400600d13259800800c01e00f0078992cc004c0ec00e00b00840e06eb400600e81d8c0e0005036181a1baa0038acc004c02c006264b300100180344c966002003007803c01e00f13259800981d801c01601081c0dd7000a076303800140d860686ea800e00a8189031206240c4818903120623032375400491119192cc0040063300122259800980d181a1baa0038992cc00400600513259800800c4c9660020030048992cc0040062b3001303d0028cc00400e264b3001301f0018acc004c0e8dd5001401e00c81da2b300130140018992cc00400600f13259800800c02201100880444c966002608200700a804a07c375c0028208c0f800503c181d1baa0028acc004c078006264b3001001803c4c9660026080005009804207a303e00140f060746ea800a00c81b9037206e30383754003005403100540e9005802c01600a81f0c0ec005039181d801400e007003801a078303900140dc606a6ea800e0028192444b3001301a3034375400713259800800c00a264b30010018992cc00400600913259800800c4c966002607400315980099b8948010c0e400600d13259800981f80244c9660026042003159800981e1baa006804c02103d4566002602c00313259800800c026264b3001001805402a015132598009821801c0320168200dd6800c0290431820000a07c303c375400d1598009810000c56600260786ea801a01300840f500840e481c9039181d1baa005803a0783014303900140dd00640ec6ea800600b005802c01503e181d800a072303b002801c00e00700340f0607200281b8c0d4dd5001c005032488966002603460686ea800e264b300100180144c966002003003801c00e0071332259800800c016264b3001001803401a00d13259800981f801c02200e81e0dd6800c01903f181e000a074375c002607600481e0c0e4005037181a9baa003800a064911192cc004c06c006264b3001001801c4c9660020030048024012264b3001303d003803401503a1bad001802207a303a00140e0606c6ea80122b300130100018acc004c0d8dd5002400e00481ba0048199033181a1baa0039112cc004c068c0d0dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b3001001803c01e00f0078992cc004c10000e2b30013021303b375400d13259800800c026264b3001001805402a01500a899912cc00400601913259800800c03601b00d806c4c966002608c00719800805403e01c80a201c8218dd7000a08c304300141046eb8004c1080090431820000a07c303c375400d00840e500840f46eb8005040181e800a076303d002802c01600b00540f8607600281c8c0ec00a007003801c00d03c181c800a06e3035375400700140c9303137540029111114c00488966002604060746ea800e264b300100180144c96600200313259800800c012264b3001001802c01600b1332259800800c01e264b30010018acc004c11800a330010068cc00400601300840390084041008410d00880440220108238c1100050421bad0013043002802a088304100140fc6082005003801c00e0068210c0fc00503d181d9baa003800a0709112cc004c080c0e8dd5001c4c9660020030028992cc004006264b300100180244c966002003005802c01626644b3001001803c4c966002003008804402226644b300100180544c96600200313259800800c032264b3001001806c03601b132598009826001c6600201919800802403e01c80a201c80b201c8248dd6800c03504c1824800a08e3049002805c02e01700b4128608e0028228dd6800982300140210471822000a084375a00260860050054110608200281f8c10400a007003801c00d042181f800a07a303b375400700140e1222598009810181d1baa0038992cc00400600513259800800c4c9660020030048992cc00400600b005802c4cc89660020030078992cc00400601100880444cc896600200300a8992cc00400601700b805c4cc896600200300d8992cc004006264b3001001807c4c96600200301080844c966002609e00719800807c66002009159800800c046264b3001001809404a025012899912cc00400602913259800800c05602b01580ac4c96600260a800701780b20a2375c00282a0c14400504f1bae00130500024144609c002826202280ba02280ca0228260dd6000c0420208278c13000504a1826001403a01d00e807209a304a00141206eb4004c12400a0168250c11c0050451bad0013046002804208e304400141086eb4004c10c00a00a8220c10400503f1820801400e007003801a084303f00140f460766ea800e00281c2444b30013020303a375400713259800800c00a264b30010018992cc00400600913259800800c01600b005899912cc00400600f13259800800c022011008899912cc00400601513259800800c4c96600200300c8992cc00400601b00d8992cc004c13000e3300100c8cc0040122b300100180744c96600200300f807c03e01f1332259800800c046264b3001001809404a0250128992cc004c14400e02901341386eb80050511827000a098375c002609a0048270c12c0050494039014403901640390491bac001806c03504c1824800a08e3049002805c02e01700b4128608e0028228dd6800982300140210471822000a084375a00260860050054110608200281f8c10400a007003801c00d042181f800a07a303b375400700140e122232598009810800c4c9660020030038992cc0040062b300130420028cc00400600b004402900440fd00480240120088218c10000503e181e1baa0048acc004c058006264b3001001801c4c966002003159800982100145660026046607a6ea8006264b3001001802c4c96600200313259800800c01e264b30010018acc004c11800a330010038cc004006013008403d008403d008410d00880440220108238c1100050421822001401a00d006803208a30420014100607c6ea800600881da00881fa00900480240110431820000a07c303c375400900240e481c8c0e8dd5001c566002603a606e6ea801e264664464b30013021303b375400313322598009811981e9baa0018cc004dd69820981f1baa0019820981f1baa301a303e375400d2225980080145300103d87a80008acc004c0980062602e66086608800497ae08cc00400e608a005337000029000a00640f8821244646600200200644b30010018a508acc004c00cc1140062946266004004608c00281f9043488966002603660806ea8c110c8cc00400400c896600200314bd708103d87a80008101800044c8cc8966003300130203045375460920074a14a2821a26609130014a14c103d87a8000a60103d8798000410c660906e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c12c00400e29462660040046098002822904944cc122600294298103d87a8000a60103d8798000410c660906e9c0092f5c11330489800a51a60103d87a8000a60103d8798000410c660906e9ccc120dd400080125eb8104320863758608e60900026eb4c11c008cc008008c11c00504444ca6002003004801d200040044444b30010038acc00400a2003153304349112657870656374205b5d203d206c6973745f6200164119159800801454cc10d2411d657870656374205b622c202e2e726573745f625d203d206c6973745f6200168cc0040126092007304900299912cc004c01c00a266e0000cdd6981198239baa0028a99822a4811a6578706563742076616c69646174696f6e2872657175657374290016411060900066eb4c120009004208c4119153303f49012e6578706563742076616c69646174655f756e697175655f6f757470757473286f75747075745f696e646963657329001640f9222323322330020020012259800800c00e2646644b30013372200e00515980099b8f0070028800c01904444cc014014c12c0110441bae3044001375a608a002608e0028228c8c8cc004004018896600200300389919912cc004cdc8804801456600266e3c02400a20030064115133005005304c00441146eb8c114004dd598230009824000a08c14bd6f7b6300a400122259800981318201baa0038992cc00400600513259800800c00e007003899912cc00400600b13259800800c01a00d006899912cc00400601113259800800c026013009899912cc00400601713259800800c03201900c8992cc004c14400e01d00d41386eb40060188288c13800504c1bad001304d002804a09c304b00141246eb4004c12800a00c8258c1200050461bad0013047002801a0903045001410c60826ea800e00281f24608460866086608660866086608660860032232330010010032259800800c52f5c1133225980099baf304730443754608e60886ea8c080c110dd5001180c998231ba90054bd7044cc118008cc0100100062660080080028208c114004c11800504348c108c10cc10cc10c0064444646600200200a44b300100189982319bb0375200a6ea00112f5bded8c113298009bae30440019bad304500198248012444b30013372001200713304a337606ea4024dd4004002c56600266e3c02400e33001009804400a46609666ec0dd48051ba80010028800a00e89982519bb037520066ea0008cc018018005045208a1823800a08a91111919800800802912cc00400626608c66ec0dd48029ba60044bd6f7b63044ca60026eb8c1100066eacc11400660920049112cc004cdc8004801c4cc128cdd81ba9009374c01000b15980099b8f0090038cc00402601100291982599bb037520146e9800400a2002803a26609466ec0dd48019ba60023300600600141148228608e002822a4b30010018a518a50410112222232598009814800c00a260060028208cdc0002001cdc0a400122232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6090003375a609200333003003304d002402460960028248dd598230019bae304300133003003304800230460014111222329800800c012006800888966002005159800800c528c528208a8acc00400629422b300133004304700230470018cc00400e60900053048001400d14a08209045208a9112cc004c098c100dd5001c4c9660020030028992cc004006264b300100180244c96600200313259800800c01a264b30010018992cc00400601113259800982680146600200f19800802c4c966002605e00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b300130570038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001305c00380cc0610591bae001417060b200282b8dd7000982c00120b23056001415101341506eb0006025012415c60a80028290dd68009829801403d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604800313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a264b300130570038acc00400602713259800800c05202901480a44cc89660020030168992cc00400602f01780bc05e264b3001305c00380cc0610591bae001417060b200282b8dd7000982c00120b23056001415101341506eb0006025012415c60a80028290dd68009829801403d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002605c00313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a0251332259800800c052264b300100180ac056264b3001305a0038acc00400602d13259800800c05e02f01780bc4cc89660020030198992cc00400603501a80d406a264b3001305f00380e406d05c1bae001417c60b800282d0dd7000982d80120b83059001415d016415c6eb000602b015416860ae00282a8dd6800982b0014049057182a000a0a4375a00260a600500f415060a20028278dd6800982800140310511827000a098304a37540091598009818000c4c96600200300b8992cc00400601900c80644cc896600200300e8992cc00400601f00f8992cc004c15000e2b300100180844c966002003011808c0460231332259800800c04e264b300100180a40520290148992cc004c16400e02d01541586eb8005059182b000a0a8375c00260aa00482b0c14c00505140410511bac001807c03d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604600313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f13259800982a001c0460208288dd6800c03d0541828800a09e375a00260a000500c4144609c0028260c128dd50024566002604400313259800800c02e264b300100180640320191332259800800c03a264b3001001807c03e01f1332259800800c046264b3001001809404a02513259800982b801c05202682a0dd6800c049057182a000a0a4375a00260a600500f415060a20028278dd6800982800140310511827000a098304a37540091598009810800c4c96600200300b8992cc00400601900c80644c96600260a200700e806a09c375a00300c4144609c0028260c128dd5002456600266e1d200e0018992cc00400601713259800800c03201900c8992cc004c14400e01d00d41386eb40060188288c13800504c18251baa004805208e411c8239047208e411c823904718241baa003804a02e804a034804a094304b00141246096005007803c01e00e8260c1240050471824801401600b005802a09430470014114608e005003801c00e0068240c11400504318209baa003800a07c912cc00400629344c966002003149a264b3001337206eb8c104c11400cdd71820800c4cc010010cc110004c11800a2a660809201326b65797320696e206173736f63696174697665206c697374206172656e277420696e20617363656e64696e67206f72646572001640fc60880028210c1100050414dc4a40013710900024444444444444444444453001305237540293013013914c004cc0500088cdd7982c982b1baa305930563754606460ac6ea8004c0accc160dd480125eb8294294505248896600266e24dd69819182b1baa00248002200713370200664653001375a60b6003375a60b660b80033259800981f182c1baa001899912cc004c100c168dd5000c56600266e24cdc09bad305e305b375400200490405d5b81c400a2a660b2920129657870656374206869202d206c6f203c3d206d61785f646966667573696f6e5f726174655f7370616e0016416115330594912865787065637420536f6d6528686929203d206765745f74785f75707065725f626f756e6428747829001641606eb4c170c164dd5000992cc004c0d0c164dd5000c4c0c0cc170c174c168dd5000a5eb822980103d87a8000415c60b860b26ea8c0d4c164dd5180a182c9baa0048a9982ba492865787065637420536f6d65286c6f29203d206765745f74785f6c6f7765725f626f756e64287478290016415864b30013033305837540031302f3305b305c3059375400297ae08a6103d87a8000415860b660b06ea8c16cc160dd51809982c1baa0039bad305b0024888966002b30013371200290004528c4cdc480180120b28a400115980099b890020048800c4c8cdc199b803370066e08008cdc0802001800a400200266e0400c01105920b2182d800982d182b1baa002414d22329800800c00e00480088896600200510018994c00401260ba00798008014dd7182c000cdd5982c800c88888c966002602a00300289801800a0b832329800800c01a00a80088896600200510018994c00401260ce00798008014dd71831000cdd69831800c01501b20083065002418ca0268081004182d80120b291919800800801112cc004006297adef6c608991982c99bb03056001374c64660020026eacc160008896600200314bd6f7b63044c8cc170cdd8182c8009ba8300e375a60b40026600600660bc00460b800282d0cc00c00cc16c008c1640050574888966002607800314a3133712002646600200200a44b30010018a4001133225980099baf305e305b375400400f13370000330013756606e60b66ea800a6eb8c17801a6eb8c0dc01901844005058182e00099801001182e800a0b441513003003488888888ca600244646600200200444b30010018a5eb822660c464b30013046306037540031306430613754003153305f4913965787065637420536f6d65287265717565737429203d206c6973742e617428616c6c5f72657175657374732c20726571756573745f69647829001641786600a0086eb4c18c004cc008008c19000506148888c966002608c60c06ea8006264b30013375e60ca60c46ea8c194c188dd5181f18311baa001303733064375200a97ae08acc004c0f260026eacc0f8c188dd5181f18311baa001802d2210d7374616b696e675f7661756c7400407d13259800982398311baa0018992cc004006330010018998331ba898009bab304030643754608060c86ea800e00d4890455534472004084660cc002660cc00697ae082ba04082bc15e0af05741a460cc60c66ea80060aa8300c0fcc188dd5181f18311baa0018a998302481566578706563740a202020206173736574732e7175616e746974795f6f6628696e7075742e6f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d15330604914765787065637420696e7075742e6f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea80062a660be92013565787065637420536f6d6528696e70757429203d206c6973742e617428696e707574732c207661756c745f696e7075745f69647829001641786600a00800322223259800982318301baa0018992cc004cdd7983298311baa306530623754002606e660c86ea40152f5c1159800981e4c004dd5981f18311baa001802d2210d7374616b696e675f7661756c7400407d13259800982398311baa0018992cc004006330010018acc004cdd7980e98321baa0034c103d87a80008998331ba898009bab304030643754007006a4410455534472004084660cc002660cc00697ae08a99831248126657870656374206f75747075742e7265666572656e63655f736372697074203d3d204e6f6e6500164185057408105782bc15e0ae8348c198c18cdd5000c54cc18524012d65787065637420496e6c696e65446174756d28646174756d5f6461746129203d206f75747075742e646174756d00164180607e60c46ea80062a660c092014c657870656374206173736574732e7175616e746974795f6f66286f75747075742e76616c75652c207374616b696e675f7661756c742c20227374616b696e675f7661756c742229203d3d20310016417d153306049141657870656374206f75747075742e616464726573732e7061796d656e745f63726564656e7469616c203d3d20536372697074287374616b696e675f7661756c74290016417c60c860c26ea80062a660be92013865787065637420536f6d65286f757470757429203d206c6973742e6174286f7574707574732c207661756c745f6f75747075745f69647829001641786600a008003222222225980099baf30673064375400e60ce60c86ea801a2b30013375e608260c86ea801cc100c190dd500344c9660033001001a5191112cc0040062603000514a0833101844c96600266e240100062b30013371200200710018a998322481216578706563742064656c697665726564203c3d206d61785f64656c6976657265640016418d1533064491216578706563742064656c697665726564203e3d206d696e5f64656c6976657265640016418d30010019bae30680049bae3068306900440891533063490149657870656374206173736574732e726564756365286e65742c20547275652c20666e285f702c205f6e2c207174792c2061636329207b2061636320262620717479203e3d2030207d29001641886601a6eacc100c190dd500398064c004dd71833802cdd718339834002cc060011222598009826000c402e3300100b801cc8c8008c038004cc1a4cdd81ba9002375000297adef6c6091111192cc004c08c0060051300300141a8653001004804401e444453001005801c01200500140188129408501e20c8454cc18924128657870656374206f75747075742e646174756d203d3d2064657374696e6174696f6e2e646174756d0016418515330624912c657870656374206f75747075742e61646472657373203d3d2064657374696e6174696f6e2e61646472657373001641852229800998041bab303b305f3754004600e6eacc0ecc17cdd5181d982f9baa003a5191112cc0040062b30013371e008911008a518acc004cdc7802002c4cdc7801a4410455534472008a50418083022941060202448888966002607401d19800998029bac3064306137540446eb0c0f4c184dd50144dd6183218309baa028981e98309baa0314889660026601e6eb0c19cc190dd50221bae306730643754608060c86ea80062b30019800998119bac306730643754088466ebcc1a0c194dd5183418329baa30413065375400260d060ca6ea8c104c194dd5182118329baa002a50a514185132598009809800c4c8c8cc88cc89660026034005159800acc004c14000a294626032002834226644b3001980080140324464b30013054306f375400313259800800c6600200315980099baf302a3071375400660e860e26ea80122b30013375e609a60e26ea8004c1d0c1c4dd5001c56600266e24dd6982698389baa00398009bab304d30713754609a60e26ea80126eb8c1d00166eb8c13401502e44c966002609660e26ea8006264b30013370e6eb4c1d8004dd6982798399baa005899b87375a60ec60ee0026eb4c140c1ccdd5002c52820e03072375400314a08378c138c1c4dd5000c1a106e419d06e419906e419502241960cb065832a0ec30733070375400306241b4609860de6ea8c12cc1bcdd5001203e899194c004c1c800730013758609860de6ea813e660e2609660de6ea8c12cc1bcdd500619838a60106457355534472004bd704c12cc1bcdd5182618379baa00c4888ca6002003008809404500111112cc00400e2900044cc8966002009070899912cc0040160e713322598009830983d9baa0018992cc006600266ebcc20004c1f4dd5184000983e9baa00500ca50a5141e91337013001375660b260fa6ea8c164c1f4dd5003c00661000260fa6ea8016023375a60b260fa6ea801601b375a60b460fa6ea8016b3001306201489bad3059307d375400b13370666e08dd6982c983e9baa00501401341e880f26002017006802400d00b41e107a183f983e1baa00183b20f2307e0053301f00b375a60fa00a83d8c1ec010c1f0011079183c801983d001a0ee4dd698390012444b30019800983a983b0064c1d4c1d80126eb8c138c1c8dd5182718391baa00f404915980099b87375a609c60e46ea800cdd6982718391baa00b8acc004cdc39bad304f307237540066eb4c13cc1c8dd5005c56600266e1cdd6981598391baa003375a605660e46ea802e2646644b300130240018acc004cdc39bad30783075375400c66e000300162b30013370f30013756607660ea6ea81566eb8c144c1d4dd51828983a9baa012a4410573555344720040c800b159800982d4c004dd5981d983a9baa0559bae30513075375460a260ea6ea804a91104555344720040c9198009bac3052307537540ab30513075375460a460ea6ea804a660ee60a260ea6ea8c144c1d4dd50091983ba61054455534472004bd70400501c4199072454cc1cd2412c6578706563742073757364725f6d696e746564203d3d20746f74616c5f73757364725f64656c697665726564001641c91533073491606578706563740a202020207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f7265202b20746f74616c5f73757364725f64656c697665726564001641c906541c8b3001302100a8acc004cdc499b8200300933704002015149a2a660e29215f6578706563740a2020202020207661756c745f757364725f696e202a2063697263756c6174696e675f73757364725f6265666f7265203e3d20746f74616c5f73757364725f64656c697665726564202a20736574746c65645f6265666f7265001641c115980099b890030018a4d153307149012d657870656374207661756c745f757364725f696e203e3d20746f74616c5f73757364725f64656c697665726564001641c08380cdc080780099b8100100a830a0de83020de82fa0de82f20de1839000cc004dd6182518369baa04d9bae3026306d3754609260da6ea802a6eb8c124c1b4dd5182498369baa00a817a01e8a99835a481466578706563742076616c69646174655f7374616b655f696e70757473286f726465725f696e707574732c207374616b655f72657175657374732c20757364725f617373657429001641a86604a6eb0c1b8c1acdd50259bae3048306b3754608e60d66ea8020cc1b4c11cc1acdd5182398359baa0083306d4c01054455534472004bd70454cc1a52413a6578706563742063697263756c6174696e675f73757364725f6265666f7265203d3d2030207c7c20736574746c65645f6265666f7265203e2030001641a11533069491246578706563742063697263756c6174696e675f73757364725f6265666f7265203e3d2030001641a06eb4c1b0c1a4dd50014c004006005049404c60d40026eb4c1a8008c1a800660026eb0c1a0c194dd5022cdd7180f18329baa304130653754005375c608260ca6ea8c104c194dd500140a5008454cc18d2411c65787065637420746f74616c5f757364725f7374616b6564203e2030001641893001003801496600260266eb4c104c194dd5000c56600260266eb4c108c194dd5000c4c128dd6981598329baa0018a50418914a08311022413d061413906122b3001303900e8cc004cc014dd6183218309baa0223758607a60c26ea80a26eb0c190c184dd50144c0f4c184dd5018a444b30013300f375860ce60c86ea8110dd7183398321baa304030643754003159800cc004cc08cdd6183398321baa04423375e60d060ca6ea8c1a0c194dd5182098329baa001306830653754608260ca6ea8c108c194dd5001528528a0c28992cc004c04c0062646466446644b300130190038acc004c06400a2b300130190018994c004dd69837800cdd698379838000ccc1b8c120c1b0dd5182418361baa0093306e4c106457355534472004bd704cc098dd6183798361baa04c375c609260d86ea8c120c1b0dd5004a4444b30019800800c03e4464b300130573072375400313259800800c6600200315980099baf302d3074375400660ee60e86ea80122b30013375e60a060e86ea8004c1dcc1d0dd5001c56600266e24dd69828183a1baa00398009bab30503074375460a060e86ea80126eb8c1dc01a6eb8c14001903144c966002609a60e86ea800626464b30013370e6eb4c1e8008dd69829983b9baa0068acc004cdc39bad307a001375a60a860ee6ea801a266e1cdd6983d183d8009bad303d3077375400d14a083a22941074183d000983a9baa0018a5041c860a260e86ea80060d6838a0d4838a0d2838a0d0812a0d106883441a1079183b18399baa001832a0e0304f30723754609c60e46ea8009022456600266e1e60026eacc0d8c1c0dd50284dd7182618381baa304c3070375401b48810573555344720040b46048019132329800983a800e60026eb0c13cc1c8dd50294cc1d0c138c1c8dd5182718391baa00f330744c1054455534472004bd704c138c1c8dd5182798391baa00f4888ca600200300780ac05100111112cc00400e2900044cc8966002009073899912cc0040160ed13322598009832183f1baa0018992cc006600266ebcc20c04c20004dd51841809840009baa00500ca50a5141f51337013001375660b86100026ea8c170c20004dd5003c0066106026100026ea8016025375a60b86100026ea801601b375a60ba6100026ea801666e04cdc199b82375a60b86100026ea801405805cdd698231840009baa0054085300100b8034012006805a0f683e8c20804c1fcdd5000c1e507c184080802998110059bad30800100541f860fc00860fe00883e0c1f000cc1f400d07a26eb4c1d400922259800cc004c1e0c1e403e60f060f2009375c60a260ea6ea8c144c1d4dd5009202a8acc004cdc39bad3051307537540066eb4c144c1d4dd5007456600266e1cdd69829183a9baa003375a60a460ea6ea803a2b30013370e6eb4c0b8c1d4dd50019bad302e3075375401d132598009812800c56600266e1c008cdc0807004c56600266e1cdd6983c983b1baa0043370201a025159800982dcc004dd5981e183b1baa0569bae30523076375460a460ec6ea804e91104555344720040cd198009bac3053307637540ad30523076375460a660ec6ea804e660f060a460ec6ea8c148c1d8dd50099983c261054455534472004bd704cdc0005000a03a833a0e68a9983a24815d6578706563740a202020207661756c745f646174756d5f6f75742e63697263756c6174696e675f7375736472203d3d2063697263756c6174696e675f73757364725f6265666f7265202d20746f74616c5f73757364725f6275726e6564001641cd153307449143657870656374207661756c745f757364725f6166746572203d3d207661756c745f757364725f6265666f7265202d20746f74616c5f65786368616e67655f76616c7565001641cd06641cc66e04cdc0804001004c191072418d072418907241850720c1d400660026eb0c134c1c0dd50284dd7181498381baa304c3070375401b375c609860e06ea8c130c1c0dd5006c0c9012454cc1b92412a6578706563742073757364725f6275726e6564203d3d202d746f74616c5f73757364725f6275726e6564001641b5153306e4914b6578706563742076616c69646174655f756e7374616b655f696e70757473286f726465725f696e707574732c20756e7374616b655f72657175657374732c2073757364725f617373657429001641b4329800800c02e97ae10101000081010000200222259800801440063300100398390014c8c966002603e6eb4c0d8c1c0dd5001456600266e24dd6981b18381baa0020018998391ba8337006eb4c1cc00cdd6981b18381baa00233072375066e00dd69839983a001800a5eb822a660dc92012065787065637420722e666f7266656974203c3d20726571756573745f75736472001641b5153306e4911565787065637420722e666f7266656974203e3d2030001641b466e0ccdc11bad304b306f375400200a00c60e2004801906f454cc1a524011965787065637420736574746c65645f6265666f7265203e2030001641a11533069491236578706563742063697263756c6174696e675f73757364725f6265666f7265203e2030001641a115330694911c657870656374207661756c745f757364725f6265666f7265203e2030001641a06eb4c1b0c1a4dd50014c004006005049404c60d40026eb4c1a8008c1a800660026eb0c1a0c194dd5022cdd7180f18329baa304130653754005375c608260ca6ea8c104c194dd500140a5008454cc18d2411d65787065637420746f74616c5f73757364725f6275726e6564203e2030001641893001003801496600260266eb4c104c194dd5000c4c04cdd6982118329baa0018a504188811209e830a09c830914a082f105e0896600266e2000520008a6103d87a8000899804801000a0b422a6607892013665787065637420536f6d65287661756c745f6f75747075745f69647829203d2065787472612e7661756c745f6f75747075745f696478001640ec6eb4c0fcc0f0dd5000981f98201820182018201820181e1baa0038a9981d24813465787065637420536f6d65287661756c745f696e7075745f69647829203d2065787472612e7661756c745f696e7075745f696478001640e4600260766ea8008c0f0c0e4dd50009181e981f181f181f181f000981d981c1baa0078a9981b2493665787065637420457865637574654f72646572732872656465656d657229203d206f7263686573747261746f725f72656465656d6572001640d49111112cc004c08c01e264b3001001813c4c96600200315980098220014566002604a607e6ea8006264b3001001814c4c96600200313259800800c0ae264b30010018992cc00400605b13259800800c0ba05d132598009825801c5660026058608c6ea801a264b300100181844c966002003031818c4cc89660020030338992cc004006069034899912cc00400606d13259800800c0de06f037899912cc00400607313259800800c0ea07503a899912cc00400607913259800800c4c96600200303e8992cc0040062b3001305b002899819007112cc00400a26606801a44b30010028cc00401e330010058acc004c100c168dd500c44c9660020030448992cc004006264b300100182344c966002003159800983180144cc8966002608c00313259800800c12a264b3001001825c12e264b3001306800389981f800912cc00400a00f13259800800c6600200313002306b003827a058827c13e09f04f41b060d2004833a0988328dd6000c12e0968340c19400506318309baa0058acc004c0ec006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40b104f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b1598009822800c4c96600200304a8992cc00400609704b8992cc004c1a000e26607e00244b3001002803c4c96600200319800800c4c008c1ac00e09e816a09f04f827c13d06c183480120ce82620ca375800304b825a0d03065001418c60c26ea80162b300130470018992cc00400609513259800800c12e0971332259800800c136264b30010018acc004c1a800a26608200644b30010028acc004c134c19cdd5001c4c9660020030518992cc0040060a505282944cc89660020030548992cc0040060ab05582ac4c96600260e400700f82b20de375a00305541c860de0028368dd68009837001414906f1836000a0d430683754007050419513259800800c6600200313002306d003828a05e828c1460a305141b860d6004834a09c833a09d04e827413906b1834000a0cc375800260ce00504b825a0d03065001418c60c26ea80162b3001303a0018992cc00400609513259800800c12e097132598009834001c4cc0fc00489660020050078992cc00400633001001898011835801c13d02e413e09f04f827a0d83069002419d04c41946eb000609704b41a060ca0028318c184dd5002c566002607200313259800800c12a264b3001001825c12e264b3001306800389981f800912cc00400a00f13259800800c6600200313002306b003827a05c827c13e09f04f41b060d2004833a0988328dd6000c12e0968340c19400506318309baa0058acc004c0e0006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40bd04f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b15980099b8748038006264b300100182544c96600200304b825c4c96600260d000713303f0012259800801401e264b30010018cc0040062600460d600704f40bd04f827c13e09e8360c1a400906741310651bac001825c12d0681832800a0c63061375400b15980099b87480400062b30013061375400b002824a0c4824a0bc417882f105e20bc417882f105e20bc19800800c4cc0e806489660020050248992cc00400609504a8992cc00400609713259800800c13209904c82644cc896600200304e8992cc0040062b3001306b0028cc0040062600e60d601104f40c504f41a104f827c13e09e8360c1a40050671bae001306800241a460cc0028320dd6000c12a0948338c190009062411d023182f1baa003823a0c0823c11e08f047419060c200282f8c18400a08b045822c115062182f800a0ba305b375403104341610434099043409913259800800c112089044899180198308021bad00182220c2305e002417113259800800c10a0850428991801982f8021bad00182120be305c002416903f416103f81fc0fe07e82e0c164005057182c80140f607b03d81ea0b4305700141546eb4004c15800a07482b8c1500050521bad001305300281ba0a83051001413c6eb0004c14000a0690344144609c0028260dd6000982680140c60628270c12c00504918239baa006817a088817a090375800302e817209630480014118609000502c81640b20588248c118005044182300140aa05502a815208e3044001410860806ea800605081ea050820a05102881440a10451821000a080303e375401b159800980c003c4c9660020030278992cc0040062b300130440028acc004c094c0fcdd5000c4c9660020030298992cc004006264b3001001815c4c96600200302c81644c9660026092007159800981518221baa0048992cc00400605d13259800800c4c9660020030308992cc0040062b3001304d0028acc004c0b8c120dd5001c4c9660020030328992cc004006264b300100181a44c96600200303581ac4cc89660020030378992cc004006071038899912cc00400607513259800800c0ee07703b899912cc00400607b13259800800c0fa07d03e899912cc00400608113259800800c1060830418992cc004c17800e2b3001303f3059375402113259800800c10e264b300100182241120891332259800800c11a264b3001001823c11e08f132598009832001c5660020270488992cc004006093049824c4cc896600200304b8992cc00400609904c82644c96600260d200715980080ac136264b3001001827413a09d1332259800800c142264b3001001828c1460a3132598009837001c66002045133045026225980080140be264b300100182ac156264b300100182b44c96600200305782bc15e0af1332259800800c166264b30010018acc004c1d800a3300100189803983b004416903c4169073416a0b505a82d20ee307400141c86eb8004c1cc0090741838800a0de375800305582aa0e4306f00241b505240b905241ac6eb40060a28370c1ac0050691bad001306a01682720d63068015419904d41986eb40060988348c1980050641bad0013065014824a0cc3063013418504841846eb400608e8320c18400505f1bad001306000282220c2305e001417060b46ea804208482ba08482d8dd6800c10505e182d800a0b2375a00260b400503e416c60b000282b0dd6800982b80140ed058182a800a0a6375800260a800503881c20aa305200141406eb0004c14400a06b0354148609e0028268c13c00a067033819c0cd0501826800a0963049375400703141190314129031818c0c60628270c12c005049182580140be05f02f817a0983049001411c608a6ea801205a821205a8230dd6000c0b20588248c118005044182300140aa05502a815208e3044001410860806ea800605081ea050820a05102881440a10451821000a080303e375401b02640ec81d880d406a03501a40dc664464b30013019303337540031303432337606070002607060720026eb0c0dcc0d0dd5000c54cc0c924018b65787065637420536f6d652850616972285f2c2072656465656d65722929203d0a202020206c6973742e66696e64280a20202020202072656465656d6572732c0a202020202020666e287061697229207b20706169722e317374203d3d205769746864726177507572706f736528536372697074287363726970745f686173682929207d2c0a2020202029001640c4646600200200644b30010018a60103d87a80008992cc004cdd7981a80099ba548010cc0e0c02ccc0e0dd480225eb812f5c11300c33038374e66070606a00266070606c00297ae04bd7044cc00c00cc0e8009033181c000a06c37566068606a606a606a606a606a606a606a606a606a60626ea8044dd7181a18189baa00132323259800800c566002603060646ea8006264b300100180ec4c96600200301e80f407a03d1332259800800c082264b30010018acc004c0f000a2b3001301d3037375400313259800800c08a264b30010018992cc00400604913259800800c4c9660020030268992cc0040062b300130420028acc004c08cc0f4dd5002c4c9660020030288992cc004006264b300100181544c96600200313259800800c0b2264b30010018992cc00400605d13259800800c4c9660020030308992cc004006264b300100181944c96600200313259800800c0d2264b30010018992cc00400606d13259800800c4c9660020030388992cc004006264b300100181d44c966002003159800982b00146600202719800808c6600201f19800806c6600201719800804c6600200f19800802c6600200719800800c566002606e60a26ea805e264b300100181e44c96600200303d81ec0f607b1332259800800c0fe264b30010018204102081040899912cc00400608513259800800c10e087043821c4cc89660020030458992cc00400608d046823411a26644b300100182444c966002003049824c1260931332259800800c12e264b30010018acc004c19c00a330010018acc004c120c188dd501344c96600200304d8992cc00400609d04e899912cc0040060a113259800800c56600260d800513304300322598008014660020071038829a07a8992cc0040062b30013050306a375400313259800800c156264b300100182b415a26644b300100182c44c96600200305982cc16626644b300100182dc4c96600200305c82e4172264b300130780038acc00401e0bb13259800800c17a0bd05e82f44cc89660020030608992cc0040060c3061830c186264b3001307d00389808183e808c18907a1bae00141f460f400283c0dd7000983c80420f4307700741d505d41d46eb40060b883c0c1d40050731bad001307400282ca0ea307200141c06eb0004c1c400a0ad05641c860de0028368c1acdd5000c15106841520a905482a20e0306d00241ad05141a5051828c1460a28368c1a80050681bac0013069002827413906a1833800a0ca3063375404d04c418104c40d504c419104c82641320988340c1940050631bae0013064002419460c40028300dd7000983080120c4305f00141746eb8004c17800905f182e000a0b4375c00260b600482e0c1640050571bae0013058002416460ac00282a0c148dd500bc0ed04f40ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed02340ed05340ee07703b81da0ae3054001414860a800503981cc0e607282a8c148005050182900140de06f03781ba0a63050001413860a000503581ac0d606a8288c13800504c182700140ce067033819a09e304c00141286098005031818c0c60628268c128005048182500140be05f02f817a09630480014118609000502d816c0b605a8248c118005044182300140ae05702b815a08e304400141086088005029814c0a60528228c108005040181f1baa005813a076813a07e813c09e04f027410c608000281f0c10000a04b025812c095041181f000a078303e002811c08e04702340fc607800281d0c0e0dd5000c08503540850394086043021810a07a303a00140e06eb8004c0e400903a181b800a06a3033375400301c40c101c80e407203881c0c966002603060646ea8006264b30013018303337540031303730343754003153303249013365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d001640c4602060666ea8c03cc0ccdd5181b18199baa0018a99818a494a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f696429001640c064660020026eb0c03cc0ccdd5009912cc0040062980103d87a80008992cc004c8cc004004c014dd59809181b1baa30123036375400444b30010018a508acc004cdc79bae303a0010338a51899801001181d800a06840e11300b330370014bd7044cc00c00cc0e4009032181b800a06a30010012259800800c52f5c11330343031303500133002002303600140cc2223259800980a800c4c9660020030038992cc0040060090048024012264b3001303700380340150341bae00140dc60680028190c0c0dd50024566002601400313259800800c00e264b300100180240120090048992cc004c0dc00e00d00540d06eb8005037181a000a0643030375400900240b48168c0b8dd5001a2b30013008003899192cc004c024c08cdd5181398140014528c5282042375a604c00260446ea80122c80f901f0c084c088004c084011149a2a6602e9211856616c696461746f722072657475726e65642066616c7365001365640581" + : "5927b4010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966003300130043754013370e90034dc3a4001370e9002244446465300130093754003300d00698068012444b300130060038cc004c040c034dd500248c044c048c048006460226024003223233001001003223300300130020029b874800a6e1d20089b874802a6e1d200c9ba5480026e952002912cc004c024c038dd500144c8c8cc8966002602e0070058b2028375a60280026eb8c050008c050004c03cdd500145900d24444444444530012223259800980b000c4c8c96600260440050048b203e375c604000260386ea800e2b3001300b0018992cc004c08400626601a6eb0c08000489660020050058cc00401e6044005130013023002401c81022c80f0c070dd5001c566002602a003132598009810800c4cc034dd61810000912cc00400a00b19800803cc08800a260026046004803902045901e180e1baa0038acc004c05c0062646644b300130230018998079bac30220012259800801401e33001009981200144c004c09400900920448b2040375a6040002604200260386ea800e2b3001300a001899192cc004c08800a00916407c6eb4c080004c070dd5001c56600260120031323259800981100140122c80f8dd69810000980e1baa0038acc004c02000626464b3001302200280245901f1bae3020001301c375400716406880d101a2034406880d101a180d1baa00291192cc004c05400626464b3001302100280245901e1bae301f001301b37540071598009805000c56600260366ea800e00516407116406480c8c064dd5001488c966002602a0031323259800981080140122c80f0dd7180f800980d9baa0038acc004c02800626464b3001302100280245901e1bae301f001301b375400716406480c8c064dd500148966002602860326ea800a2646464b30013021002899192cc004c0640062b3001301f37540050068b20408acc004c03800626464b300130250028044590221bad3023001301f3754005159800980c000c566002603e6ea800a00d16408116407480e901d180e9baa00130200038b203c3259800980e800c56600266e252004301c0018b44c030c07000501b45901e1baa301f001301f001301a3754005164061223259800980a800c4c8c96600260420050048b203c375a603e00260366ea800e2b3001300a0018acc004c06cdd5001c00a2c80e22c80c9019180c9baa00248888a6002600a00b2259800980c980f1baa00289919192cc004c09800a266010604a006264b3001301d0018992cc004c0a000626464b300130200018992cc004c0ac00626601a60540020131640a0604c6ea800a2b3001301500189919194c004dd69816000cdd69816001cdd698160012444b3001303000480745902d0c0b0004c0ac004c098dd5001459024204830243754002604e00316409460466ea800a2b300130120018acc004c08cdd500140162c81222c810902118109baa0018b204630240013024001301f3754005164075223259800980d000c4c966002604a00313300a30240010038b2044302037540071598009807800c4c966002604a00313259800980e18109baa00189919192cc004c0a400a266014605000626601400200f164098604e002604e00260446ea80062c8100c0900062c8110c080dd5001c5901e203c301e37540052259800980c980f1baa0028991919192cc004c09c00a264b3001301e30233754003132323322598009816001c4cc03cc0ac02002a2c8148dd718148009bae3029002302900130243754003164088604c0091640906eb8c094004c094004c090004c07cdd500145901d244446645300133223259800981018129baa001898131919bb0302a001302a302b00137586052604c6ea80062c8120c8cc00400400c896600200314c0103d87a80008992cc004cdd7981380099ba548010cc0a8c048cc0a8dd480225eb812f5c1130133302a374e66054604e00266054605000297ae04bd7044cc00c00cc0b00090261815000a0503756604c604e604e604e604e604e604e604e604e604e60466ea8060dd7181318119baa002912cc004c07cc090dd500144c8c8c8cc8966002605c007133008302d0051330130020068b2056302b001375a605600460560026054002604a6ea800a2c811a44b3001301f302437540051323232323298009bad302d0019bad302d0049bad302d003981680124444b30013032005899806181880489980b80080545902f0c0b4004c0b0004c0ac004c0a8004c094dd500145902348966002603e60486ea800a264646464646530013758605c003375a605c00b375a605c009375a605c007302e00248888966002606800d13300e303300b133019001132332259800981b801c03e2c81a0dd7181a0009bae303400630340058b20621817000981680098160009815800981500098129baa0028b2046912cc004c07cc090dd500144c8c8c8c8ca60026eb0c0b40066eb4c0b40126eb4c0b400e605a00491112cc004c0c8016266018606201226602e0022646644b30013035003806c590321bae3032001375c606400a60640091640bc302d001302c001302b001302a0013025375400516408c9111119912cc004c090006264b3001302f0018992cc004c098c0acdd5000c4c8c8c8cc8966002606a00713259800981618189baa00189919191919194c004c0ec0066eb0c0ec0166eb4c0ec0126eb4c0ec00e6076004911112cc004c10401a26605a6eb0c10002c896600200513302f006225980080144cc0940144cc094024566002607660806ea80462646464b3001304800289919912cc004c10400a264b3001304c00189981c1bac304b00122598008014012266046609a00426002609c004825a2c8248c11cdd5001c566002606c005132598009826000c4cc0e0dd61825800912cc00400a009133023304d00213001304e002412d164124608e6ea800e2b300130400028992cc004c1300062660706eb0c12c0048966002005004899812182680109800982700120968b209230473754007159800982100144c8c8c966002609c00513303a3758609a00644b30010028acc004c118c12cdd5001c4c8c8cc896600260a800700a8b20a2375a60a20026eb4c144008c144004c130dd5001c5904a44cc098c13c0084c004c14000904d45904b1826000982600098239baa0038acc004c0d400a264b3001304c00189981c1bac304b0012259800801401226604a609a00426002609c004825a2c8248c11cdd5001c5660026068005132598009826000c4cc0e0dd61825800912cc00400a009133025304d00213001304e002412d164124608e6ea800e2b300130330028992cc004c1300062660706eb0c12c0048966002005004899813182680109800982700120968b20923047375400715980099b874803800a264b3001304c00189981c1bac304b0012259800801401226604c609a00426002609c004825a2c8248c11cdd5001c56600266e1d20100028acc004c11cdd5001c0062c82422c8229045208a41148229045208a41148228c110dd500089981300109981a80b112cc00400a03f1323322598009827000c4cc0a8c1340044c010c1380162c8258dd7182580098260009bac304a0024120608e007164114608c002608c00260826ea80462c81fa2646004608c0066eb4c11000904244c8c008c11000cdd6982100120808b207c181d800981d000981c800981c000981b80098191baa0018b206030340058b20643758606400260640046064002606200260586ea80062c8150c0b80062c8160c0a8dd5003c5660026032003132598009817800c4c966002604c60566ea80062646464b300130330028992cc004c0a8c0bcdd5000c4c8c966002606c00313259800981698191baa00189919191919194c004dd6981e000cdd6181e002cdd6181e0024dd6981e001cdd6981e001244444b300130420068992cc004c0e4c0f8dd5000c4c8c8cc8966002608e0071323322598009825001c4c8cc8966002609a00713302a304c01813303901b2259800801408e2646644b300130520018998171828800898021829002c5904f1bae304f00130500013758609c00482622c8250dd698250009bad304a00c304a00b8b208e375a608e0026eb4c11c028c11c0262c8220dd698220009bad30440023044001303f37540031640f460820171640fc303c001303b001303a00130390013038001303337540031640c4606a0051640cc606a00260606ea80062c8170c0c800e2c8180dd61818800981880098161baa0018b2054302e0018b2058302a375400f1640a081405660026044604e6ea8016264664464b30013026302b37540031332259800981418169baa0018cc004dd6981898171baa001981898171baa301f302e375400d2225980080145300103d87a80008acc004c0ac0062603866066606800497ae08cc00400e606a005337000029000a00640bc819244646600200200644b30010018a508acc004c00cc0d40062946266004004606c0028181033488966002604060606ea8c0d0c8cc00400400c896600200314bd708103d87a80008101800044c8cc8966003300130253035375460720074a14a281a226607130014a14c103d87a8000a60103d879800040d0660706e9c0092f5c11598009919800800801912cc00400629422b30013370e6eb4c0ec00400e2946266004004607800281b103944cc0e2600294298103d87a8000a60103d879800040d0660706e9c0092f5c11330389800a51a60103d87a8000a60103d879800040d0660706e9ccc0e0dd400080125eb8103420683758606e60700026eb4c0dc008cc008008c0dc00503444ca6002003004801d200040044444b30010038acc00400a20031640d9198008024c0e400e6072005332259800980380144cdc00019bad3028303737540051640d460700066eb4c0e0009004206c8b205e91119199119801001000912cc00400600713233225980099b910070028acc004cdc78038014400600c81aa26600a00a607600881a8dd7181a0009bad3035001303700140d464646600200200c44b3001001801c4c8cc896600266e4402400a2b30013371e0120051001803206c899802802981e002206c375c606a0026eacc0d8004c0e00050360a5eb7bdb18052000912cc004c0a8c0bcdd500144c8c8c8ca60026eb4c0dc0066eb4c0dc0126eb4c0dc00e6eb4c0dc009222259800981e002c0262c81c8606e002606c002606a00260606ea800a2c81724606460666066606660666066606660660032232330010010032259800800c52f5c1133225980099baf303730343754606e60686ea8c094c0d0dd5001180f1981b1ba90054bd7044cc0d8008cc0100100062660080080028190c0d4004c0d800503348c0c8c0ccc0ccc0cc0064444646600200200a44b300100189981b19bb0375200a6ea00112f5bded8c113298009bae30340019bad3035001981c8012444b30013372001200713303a337606ea4024dd4004002c56600266e3c02400e33001009804400a46607666ec0dd48051ba80010028800a00e89981d19bb037520066ea0008cc018018005036206c181b800a06a91111919800800802912cc00400626606c66ec0dd48029ba60044bd6f7b63044ca60026eb8c0d00066eacc0d400660720049112cc004cdc8004801c4cc0e8cdd81ba9009374c01000b15980099b8f0090038cc00402601100291981d99bb037520146e9800400a2002803a26607466ec0dd48019ba60023300600600140d881b0606e00281aa4b30010018a518a5040c112222232598009817000c00a260060028190cdc0002001cdc0a400122232330010010042259800800c4012264664466446600400400244b30010018801c4ca600200b375c6070003375a607200333003003303d0024024607600281c8dd5981b0019bae3033001330030033038002303600140d1222329800800c012006800888966002005159800800c528c528206a8acc00400629422b300133004303700230370018cc00400e60700053038001400d14a08191035206a912cc004c0a8c0bcdd500144c8c8c8ca6002606e0033037003981b8012444b3001303b00489980d181d00389980a8010992cc004c0c8006264653001375a607a003303e0019bad303d0024889660026082005132323322598009822801c04a2c8210dd718210009bae30420023042001375860800051640f8303d001303837540051598009813800c4c8ca60026eb4c0f4006607c003375a607a0049112cc004c10400a264646644b300130450038094590421bae3042001375c608400460840026eb0c10000a2c81f0607a00260706ea800a2b3001303100189919194c004dd6981f000cc0fc0066eb4c0f800e6eb4c0f80092222598009821801c4c8c8cc8966002608e0070148b2088375c60880026eb8c110008c110004dd61821001c590400c0f8004c0f4004c0e0dd500145660026066003132332259800981f800c4c8c8cc896600260860070108b2080375c60800026eb8c100008c100004dd6181f000c5903c1bad303c001303d001303837540051598009813000c4c8c8cc8966002608000700d8b207a375a607a0026eb4c0f4008c0f4004c0e0dd50014566002604a003132323298009bad303e0019bad303e0039bad303e002488966002608400900f8b207e181f000981e800981c1baa0028acc004c09000626464b3001303e002805c5903b1bad303c0013038375400515980099b874803800626464b3001303e002805c5903b1bad303c001303837540051640d881b1036206c40d881b1036206c303637540031640e0303700130360013035001303037540051640b92259800800c5268992cc00400629344c96600266e40dd71818981a8019bae30310018998020021981a000981b001459030181a000a064303400140c5371290004dc4240009111111111111111111114c004c108dd500a4c04c04e4530013301400223375e6092608c6ea8c124c118dd5181b98231baa001303033048375200497ae0a50a51410d2225980099b89375a606e608c6ea800920008801c4cdc080199194c004dd69825800cdd698259826000cc966002608660906ea800626644b30013045304a375400315980099b89337026eb4c138c12cdd500080124101756e0710028b20928b2092375a609860926ea8004c966002607260926ea80062606a66098609a60946ea80052f5c114c103d87a80004120609860926ea8c0e8c124dd5180a18249baa0048b208e3259800981c18241baa0018981a19825982618249baa0014bd7045300103d87a8000411c609660906ea8c12cc120dd5180998241baa0039bad304b0024888966002b30013371200290004528c4cdc480180120948a400115980099b890020048800c4c8cdc199b803370066e08008cdc0802001800a400200266e0400c01104a20941825800982518231baa002411122329800800c00e00480088896600200510018994c004012609a00798008014dd71824000cdd59824800c88888c966002602a00300289801800a09a32329800800c01a00a80088896600200510018994c00401260ae00798008014dd71829000cdd69829800c01501b20083055002414ca02680810041825801209291919800800801112cc004006297adef6c608991982499bb03046001374c64660020026eacc120008896600200314bd6f7b63044c8cc130cdd818248009ba8300e375a609400266006006609c00460980028250cc00c00cc12c008c1240050474888966002608200314a3133712002646600200200a44b30010018a4001133225980099baf304e304b375400400f13370000330013756607860966ea800a6eb8c13801a6eb8c0f0019018440050491826000998010011826800a09441153003003488888888ca600244646600200200444b30010018a5eb822660a464b3001304b30503754003130543051375400316413c6600a0086eb4c14c004cc008008c15000505148888c966002609660a06ea8006264b30013375e60aa60a46ea8c154c148dd5182198291baa001303c33054375200a97ae08acc004c10660026eacc10cc148dd5182198291baa001802d2210d7374616b696e675f7661756c7400407d13259800982618291baa0018991981000089982b1ba898009bab304530543754608a60a86ea800e00d48810455534472004084660ac002660ac00697ae0305630533754003164144608860a46ea8c10cc148dd5000c59050459050182a18289baa0018b209e330050040019111192cc004c12cc140dd5000c4c96600266ebcc154c148dd5182a98291baa001303c33054375200a97ae08acc004c10660026eacc10cc148dd5000c01691010d7374616b696e675f7661756c7400407d13259800982618291baa001899198100008acc004cdd7980e982a1baa0034c0103d87a800089982b1ba898009bab304530543754007006a4410455534472004084660ac002660ac00697ae08b20a4305630533754003164144608860a46ea80062c82822c8280c150c144dd5000c5904f19802802000c888888896600266ebcc15cc150dd5003982b982a1baa0068acc004cdd79823182a1baa00730453054375400d13259800cc0040069464444b30010018980c001452820ae40611325980099b890040018acc004cdc4800801c40062c82a22c82a26002003375c60b0009375c60b060b200881122c8298cc034dd59822982a1baa007300c98009bae30570059bae30573058005980c0022444b300130510018805c66002017003991900118070009982c99bb037520046ea00052f5bded8c12222232598009811800c00a2600600282d8ca6002009008803c8888a600200b003802400a00280310252810a03c41548b20a48b20a49114c004cc020dd5982018279baa002300737566080609e6ea8c100c13cdd5001d28c88896600200315980099b8f0044881008a518acc004cdc7802002c4cdc7801a4410455534472008a504144828a2941051202448888966002607e01d19800998029bac3054305137540446eb0c108c144dd50144dd6182a18289baa028982118289baa0304889660026601e6eb0c15cc150dd50249bae305730543754608a60a86ea80062b30019800998119bac305730543754092466ebcc160c154dd5182c182a9baa30463055375400260b060aa6ea8c118c154dd51823982a9baa002a50a514149132598009809800c4c8c8cc88cc89660026034005159800acc004c15400a29462603200282ca26644b3001980080140324464b30013059305f37540031323302200115980099baf302a3061375400660c860c26ea80122b30013375e60a460c26ea8004c190c184dd5001c56600266e24dd6982918309baa00398009bab30523061375460a460c26ea80126eb8c1900166eb8c14801502e44c96600260a060c26ea8006264b30013370e6eb4c198004dd6982a18319baa005899b87375a60cc60ce0026eb4c154c18cdd5002c52820c23062375400314a08300c14cc184dd5000c5905f45905f45905f183198301baa0018b20bc3051305f375460a060be6ea800901f44c8c8cc896600330013064306500b98321832801cdd7182918309baa30523061375401c808a2b30013370e6eb4c148c184dd50011bad30523061375401515980099b87375a60a660c26ea8008dd6982998309baa00a8acc004cdc39bad302a306137540046eb4c0a8c184dd500544c8cc8966002604600315980099b87375a60ce60c86ea8014cdc0005802456600266e1e60026eacc0e8c190dd502ccdd7182a98321baa30553064375402348810573555344720040c4009159800982f4c004dd5981d18321baa0599bae30553064375460aa60c86ea804691104555344720040c5198009bac3056306437540b330553064375460ac60c86ea8046660cc60aa60c86ea8c154c190dd500899833261054455534472004bd70400501b4590624590624590624590622cc004c0800262b30013371266e08008020cdc1000804c5268b20c08acc004cdc4801000c5268b20c0418066e04038004cdc09bad30640040098b20be8b20be8b20be8b20be306200198009bac3051305f37540a9330613050305f375460a060be6ea8030cc185300106457355534472004bd704c140c17cdd51828982f9baa00c4888ca6002003008809404500111112cc00400e2900044cc896600260c460ce6ea80062b3001980099baf306b3068375460d660d06ea800801e94294506644cdc04c004dd5982c98341baa30593068375460d600b306b30683754003306b3068375400500c9bad3059306837540050089bad305a30683754005598009831007c4dd6982c98341baa002899b83337046eb4c164c1a0dd500100780720cc406530010069836002cc1b001260d800680322c83322c8330c1a4008cc06c01cdd69834800a0ce1831000cc004dd61827982e9baa0529bae3026305d3754609c60ba6ea802a6eb8c138c174dd51827182e9baa00a817a01e8b20b633025375860bc60b66ea8140dd71826982d9baa304c305b3754010660ba609860b66ea8c130c16cdd50041982ea601054455534472004bd704590594590591bad305c3059375400530010018014139013182d0009bad305a002305a00198009bac305830553754095375c603c60aa6ea8c118c154dd50014dd71823182a9baa304630553754005029402116414d3001003801496600260266eb4c118c154dd5000c56600260266eb4c11cc154dd5000c4c13cdd69815982a9baa0018a50414d14a0829902245905245905222b3001303e00e8cc004cc014dd6182a18289baa0223758608460a26ea80a26eb0c150c144dd50144c108c144dd50182444b30013300f375860ae60a86ea8124dd7182b982a1baa304530543754003159800cc004cc08cdd6182b982a1baa04923375e60b060aa6ea8c160c154dd51823182a9baa001305830553754608c60aa6ea8c11cc154dd5001528528a0a48992cc004c04c0062646466446644b300130190038acc004c06400a2b300130190018994c004dd6982f800cdd6982f9830000ccc178c134c170dd51826982e1baa0093305e4c0106457355534472004bd704cc098dd6182f982e1baa051375c609c60b86ea8c134c170dd5004a4444b30019800800c03e4464b3001305c306237540031323302500115980099baf302d3064375400660ce60c86ea80122b30013375e60aa60c86ea8004c19cc190dd5001c56600266e24dd6982a98321baa00398009bab30553064375460aa60c86ea80126eb8c19c01a6eb8c15401903144c96600260a460c86ea800626464b30013370e6eb4c1a8008dd6982c18339baa0068acc004cdc39bad306a001375a60b260ce6ea801a266e1cdd6983518358009bad303d3067375400d14a0832a2941065183500098329baa0018a50418c60ac60c86ea80062c83122c83122c8310c198c18cdd5000c59061182a18311baa30533062375400481122b30013370f30013756606c60c06ea81566eb8c144c180dd5182898301baa00da450573555344720040b46048019132323259800cc004c198c19c03660cc60ce005375c60a860c66ea8c150c18cdd500820268acc004cdc39bad3054306337540026eb4c150c18cdd5006456600266e1cdd6982a98319baa001375a60aa60c66ea80322b30013370e6eb4c0b0c18cdd50009bad302c30633754019132598009811800c56600266e1cdd6983380219b8100c0078acc004cdc39bad30673064375400466e0402c0422b3001305e98009bab303a306437540b3375c60aa60c86ea8c154c190dd5008d220104555344720040c5198009bac3056306437540b330553064375460ac60c86ea8046660cc60aa60c86ea8c154c190dd500899833261054455534472004bd704cdc0004000a0368b20c48b20c48b20c48b20c43370266e0401a60026eb0c154c18cdd502c4cc194c150c18cdd5182a18319baa010330654c01054455534472004bd704c150c18cdd5182a98319baa0104888ca600200300880b405500111112cc00400e2900044cc896600260cc60d66ea80062b3001980099baf306f306c375460de60d86ea800801e94294506a44cdc04c004dd5982e98361baa305d306c375460de00b306f306c3754003306f306c375400500e9bad305d306c37540050089bad305e306c37540053370266e0ccdc11bad305d306c37540040240266eb4c108c1b0dd5001203a98008034c1c001660e0009307000340191641a91641a860da0046603e00e6eb4c1b400506b001e2c830a2c830a2c830a2c8308c194004c19400660026eb0c148c180dd502acdd7181498301baa30513060375401b375c60a260c06ea8c144c180dd5006c0c901245905e45905e0ca600200300ba5eb84101000081010000200222259800801440063300100398310014c8c966002603e6eb4c0d8c180dd5001456600266e24dd6981b18301baa0020018998311ba8337006eb4c18c00cdd6981b18301baa00233062375066e00dd698319832001800a5eb822c82f22c82f0cdc199b82375a60a060be6ea8004014018c18400900320be8b20b28b20b28b20b2375a60b860b26ea800a60020030028272026305a001375a60b400460b40033001375860b060aa6ea812a6eb8c078c154dd51823182a9baa0029bae304630553754608c60aa6ea800a05280422c829a600200700292cc004c04cdd69823182a9baa001898099bad30473055375400314a082990224590524590522294104f209e112cc004cdc4000a400114c0103d87a8000899804801000a09622c8160dd6981798161baa001302f30303030303030303030302c37540071640a8600260566ea8008c0b0c0a4dd5000918169817181718171817000981598141baa0058b204c3027375400a32323259800980f18119baa00189919912cc004c0ac006264b300130223027375400313232323322598009818801c4c9660026050605a6ea80062646464646464646464653001303b001981d804cc0ec022607600f303b006981d802cc0ec0126076007303b002488888888966002608a0151330243044013133024008133024007133024006133024005133024004133024003133024002133024001133024009159800981d98201baa015899191919194c004dd71824800cc1280066eb8c1240166eb8c1240126eb8c12400e6eb8c124009222222598009828002c4cc0ccc13c014566002608c60966ea80862646464b3001305300289981f9bac3052003225980080144cc0cc00c40ba264b3001304c305137540031323232332259800982d801c4c8c8cc896600260be0071300b305f00c8b20b8375c60b80026eb8c170008c170004dd6182d002c590581bad3058001375a60b000460b000260ae00260a46ea80062c8280c1500090524590501828800982880098261baa0218b20948b209a182480098240009823800982300098209baa0158b207e8b2084181d800981d000981c800981c000981b800981b000981a800981a000981980098171baa0018b205830300058b205c302e001302e002302e001302d0013028375400316409860540031640a06eb8c0a0004c0a4004c090dd5000c59022192cc004c078c08cdd5000c4c966002603c60486ea800626050604a6ea80062c8118c058c090dd5180a98121baa30273024375400316408864660020026eb0c054c090dd500c912cc0040062980103d87a80008992cc004c8cc004004c014dd5980c18139baa30183027375400444b30010018a508acc004cdc79bae302b0010258a518998010011816000a04c40a513011330280014bd7044cc00c00cc0a80090241814000a04c30010012259800800c52f5c113302530223026001330020023027001409044b3001301d30223754005132323259800981500144cc020c0a400c4c966002604200315980098139baa002802c590284566002602c00313232598009816801401e2c8150dd7181580098139baa0028acc004c08000626464b3001302d002803c5902a181580098139baa0028b204a40948128c094dd5000c590271814000981400098119baa0028b204211598009804001c4c8c9660026012601c6ea8c048c04c00a2946294100d1bad3011001300d375400916402c80586018601a00260180088a4d13656400801", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProxyNftProxyNftMint { + public Script: Script; + constructor(utxoRef: OutputReference, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "590377010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a4888888888c96600264653001300a00198051805800cdc3a4001300a0024888966002600460146ea800e264b30010058acc004c00cc02cdd5002c56600260186ea80162b30013003300b375464660020026eb0c040c034dd5001912cc004006298103d87a80008992cc004cdd7980918079baa001016899ba548000cc0440052f5c1133003003301300240306022002807a2b3001329800800d2f5c210140004c8cc004004dd59808980918091809180918071baa0042259800800c52f5c113233223322330020020012259800800c400e2646602e6e9ccc05cdd48029980b980a0009980b980a800a5eb80cc00c00cc064008c05c0050151bab3012003375c601e002660060066028004602400280810011112cc00400a2b30010018a518a99806a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164041159800800c54cc035241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180a801803c56600266e3c004dd7180a80144cdc39bad301530160024800a294100f4528201e3014001375c60260066eb0c0480063300100398098014c04c005003452820184040808229462a660149201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164025153300a4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640250084035008402500880440220108088dd7180718059baa0038b2010180500098029baa00b8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : "5901b8010100229800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400130080024888966002600460106ea800e26644b30013004300a375464660020026eb0c03cc030dd5002112cc004006298103d87a80008992cc004cdd7980898071baa001014899ba548000cc0400052f5c113300300330120024030602000280722b3001329800800d2f5c210140004c8cc004004dd59808180898089808980898069baa0052259800800c52f5c113233223322330020020012259800800c400e2646602c6e9ccc058dd48029980b18098009980b180a000a5eb80cc00c00cc060008c0580050141bab3011003375c601c002660060066026004602200280790011112cc00400a2b30010018a518b201e8acc0040062d1598009919912cc004cdc79bae30140030088acc004cdc78009bae3014002899b87375a6028602a00490014528201e8a50403c60260026eb8c04800cdd61808800c6600200730120029809000a0068a504030807900f4528c590094590091bae300c30093754006b300130023008375400915980098049baa0048a4d16402916401d16401c300800130033754011149a26cac8009", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + ]), + [utxoRef], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1ProxyNftProxyNftElse { + public Script: Script; + constructor(utxoRef: OutputReference, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "590377010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a4888888888c96600264653001300a00198051805800cdc3a4001300a0024888966002600460146ea800e264b30010058acc004c00cc02cdd5002c56600260186ea80162b30013003300b375464660020026eb0c040c034dd5001912cc004006298103d87a80008992cc004cdd7980918079baa001016899ba548000cc0440052f5c1133003003301300240306022002807a2b3001329800800d2f5c210140004c8cc004004dd59808980918091809180918071baa0042259800800c52f5c113233223322330020020012259800800c400e2646602e6e9ccc05cdd48029980b980a0009980b980a800a5eb80cc00c00cc064008c05c0050151bab3012003375c601e002660060066028004602400280810011112cc00400a2b30010018a518a99806a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164041159800800c54cc035241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180a801803c56600266e3c004dd7180a80144cdc39bad301530160024800a294100f4528201e3014001375c60260066eb0c0480063300100398098014c04c005003452820184040808229462a660149201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164025153300a4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640250084035008402500880440220108088dd7180718059baa0038b2010180500098029baa00b8a4d153300349011856616c696461746f722072657475726e65642066616c7365001365640082a660049201085f723a20566f6964001601" + : "5901b8010100229800aba2aba1aba0aab9faab9eaab9dab9a488888896600264653001300800198041804800cdc3a400130080024888966002600460106ea800e26644b30013004300a375464660020026eb0c03cc030dd5002112cc004006298103d87a80008992cc004cdd7980898071baa001014899ba548000cc0400052f5c113300300330120024030602000280722b3001329800800d2f5c210140004c8cc004004dd59808180898089808980898069baa0052259800800c52f5c113233223322330020020012259800800c400e2646602c6e9ccc058dd48029980b18098009980b180a000a5eb80cc00c00cc060008c0580050141bab3011003375c601c002660060066026004602200280790011112cc00400a2b30010018a518b201e8acc0040062d1598009919912cc004cdc79bae30140030088acc004cdc78009bae3014002899b87375a6028602a00490014528201e8a50403c60260026eb8c04800cdd61808800c6600200730120029809000a0068a504030807900f4528c590094590091bae300c30093754006b300130023008375400915980098049baa0048a4d16402916401d16401c300800130033754011149a26cac8009", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + ]), + [utxoRef], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1RealfiMintingPolicyRealfiMintingPolicyMint { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "590605010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c96600264653001300b00198059806000cdc3a4001300b0024888966002600460166ea800e33001375c601e60186ea800e44b30010018a5eb82266020601a6022002660040046024002807a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80624444646600200200a44b30010018802c4c9660020031330043016002006899802980b00119801801800a0283016001404d2301030110019bab300f301030103010301030103010300c37540029111111919191991191929980b99b964910d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c19ba548008cc068dd4800a5eb80dd7180d180b9baa325330163372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4051220100132598009807980c1baa00189929980c19b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c068dd5000c4c9660020031598009809180d9baa0018992cc00400603113259800800c06603301980cc4cc896600200301b8992cc004c09400a200d01c408860460028108dd7000981100120463020001407860386ea800602e80ca02f01780bc05d021180f180d9baa0018a9980ca493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164060603a603c603c60346ea8c028c068dd5000980e180c9baa0018a9980ba4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164058646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806180e1baa300c301c375400444b30010018a508acc004cdc79bae30200010198a518998010011810800a034407913374a90001980e800a5eb82266006006603e00480c0c07400501b1bac3007301737540186002002601001044464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d203a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80b90171bac301a002375a60300026466ec0dd4180c0009ba73019001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a603a003337149101023a200098008054c07800600a805100a181000144ca6002015301d00199b8a489023a200098008054c078006600e66008008004805100a1810001203c3020001407466e29220102207d0000340686eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a20343758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720383371666e000056600266e2000520148a40c11481b901c002200c33706002901019b8600148080cdc70020012032375c00680e8dc5245022c200022323300100100322598009806800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003405080a0c010011164024300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5901b3010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400130090024888966002600460126ea800e2646644646644660040046eacc04cc050c050c050c050c050c050c040dd5003912cc00400629422b30013375e006601e602600314a3133002002301400140388088dd7180898071baa0073374a900119807980818069baa3259800980318069baa0018992cc004cdc3a4008601c6ea8006264b30013008300f375400313232332259800980c001c40162c80a8c054004dd7180a801180a80098081baa0018b201c3012300f3754003164034602260246024601c6ea8c008c038dd5180898071baa0018b2018323300100137586004601c6ea8014896600200314c0103d87a80008992cc004c8cc004004c018dd5980298089baa30053011375400444b30010018a508acc004cdc79bae301500100f8a51899801001180b000a020404d13374a900019809000a5eb8226600600660280048070c04800501025eb80c0040048c03cc040004896600200314bd7044cc038c02cc03c004cc008008c04000500d4590080c024004c010dd5004c52689b2b200401", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1RealfiMintingPolicyRealfiMintingPolicyElse { + public Script: Script; + constructor(proxyPolicyId: PolicyId, trace?: boolean = false) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "590605010100229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c96600264653001300b00198059806000cdc3a4001300b0024888966002600460166ea800e33001375c601e60186ea800e44b30010018a5eb82266020601a6022002660040046024002807a444b3001337120049000440063300100399b840024805266e2ccdc019b85002480512060001400c80624444646600200200a44b30010018802c4c9660020031330043016002006899802980b00119801801800a0283016001404d2301030110019bab300f301030103010301030103010300c37540029111111919191991191929980b99b964910d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc068c0780062946266004004603e00280c101c19ba548008cc068dd4800a5eb80dd7180d180b9baa325330163372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4051220100132598009807980c1baa00189929980c19b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c068dd5000c4c9660020031598009809180d9baa0018992cc00400603113259800800c06603301980cc4cc896600200301b8992cc004c09400a200d01c408860460028108dd7000981100120463020001407860386ea800602e80ca02f01780bc05d021180f180d9baa0018a9980ca493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164060603a603c603c60346ea8c028c068dd5000980e180c9baa0018a9980ba4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164058646600200200444b30010018a60103d87a80008992cc004c8cc004004c018dd59806180e1baa300c301c375400444b30010018a508acc004cdc79bae30200010198a518998010011810800a034407913374a90001980e800a5eb82266006006603e00480c0c07400501b1bac3007301737540186002002601001044464b30010038991919911980480119b8a488101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d203a5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80b90171bac301a002375a60300026466ec0dd4180c0009ba73019001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a603a003337149101023a200098008054c07800600a805100a181000144ca6002015301d00199b8a489023a200098008054c078006600e66008008004805100a1810001203c3020001407466e29220102207d0000340686eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a20343758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720383371666e000056600266e2000520148a40c11481b901c002200c33706002901019b8600148080cdc70020012032375c00680e8dc5245022c200022323300100100322598009806800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003405080a0c010011164024300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5901b3010100229800aba2aba1aba0aab9faab9eaab9dab9a9bae0024888888896600264653001300900198049805000cdc3a400130090024888966002600460126ea800e2646644646644660040046eacc04cc050c050c050c050c050c050c040dd5003912cc00400629422b30013375e006601e602600314a3133002002301400140388088dd7180898071baa0073374a900119807980818069baa3259800980318069baa0018992cc004cdc3a4008601c6ea8006264b30013008300f375400313232332259800980c001c40162c80a8c054004dd7180a801180a80098081baa0018b201c3012300f3754003164034602260246024601c6ea8c008c038dd5180898071baa0018b2018323300100137586004601c6ea8014896600200314c0103d87a80008992cc004c8cc004004c018dd5980298089baa30053011375400444b30010018a508acc004cdc79bae301500100f8a51899801001180b000a020404d13374a900019809000a5eb8226600600660280048070c04800501025eb80c0040048c03cc040004896600200314bd7044cc038c02cc03c004cc008008c04000500d4590080c024004c010dd5004c52689b2b200401", + Type.Tuple([PolicyId]), + [proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1StakingVaultStakingVaultMint { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1StakingVaultStakingVaultSpend { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1StakingVaultStakingVaultElse { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "59091e0101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888cc8966002646465300130093754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330110014bd7044cc00c00cc04c00900c1808800a01e9806801cc03400922222598009802002c4c966002600a601e6ea8cc010dd6180998081baa00323375e602860226ea80040662b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd5980a980b180b180b180b18091baa0052259800800c52f5c113233223322330020020012259800800c400e264660366e9ccc06cdd48029980d980c0009980d980c800a5eb80cc00c00cc074008c06c0050191bab3016003375c6026002660060066030004602c00280a10011112cc00400a2b30010018a518a99808a481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300164051159800800c54cc045241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c801803c56600266e3c004dd7180c80144cdc39bad3019301a0024800a2941013452820263018001375c602e0066eb0c05800633001003980b8014c05c00500345282020405080a229462a6601c9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164035153300e4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640346eb8c048c03cdd5003456600266e1d200200589919912cc0040122b300130073011375400915980098091baa0048cc004896600200314bd7044cc058c04cc05c004cc008008c06000501548896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801901248888c8cc004004014896600200310058992cc004006266008603800400d133005301c002330030030014068603800280ca4602c602e0033756602a602c602c602c602c602c602c60246ea8015222223232323322323253301c3372c92010d63726564656e7469616c3a3a2000373266008002910100132330010010092259800800c528456600266ebc00cc07cc08c0062946266004004604800280e902119ba548008cc07cdd4800a5eb80dd7180f980e1baa3253301b3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660066ea4065220100132598009809980e9baa00189929980e99b9649113666f756e642070726f7879207574786f3a3a200037326600a0029101001325980099b8748010c07cdd5000c4c966002003159800980b18101baa0018992cc00400603b13259800800c07a03d01e80f44cc89660020030208992cc004c0a800a200d021409c60500028130dd7000981380120503025001408c60426ea800603880f203901c80e4071026181198101baa0018a9980f2493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164074604460466046603e6ea8c028c07cdd50009810980f1baa0018a9980e24814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f6964290016406c660220024646600200260086eacc028c07cdd51805180f9baa0022259800800c528456600266e3cdd7181180080e4528c4cc008008c09000501d20423758600e60386ea803cc004004c020020888c9660020071323233223300900233714910101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805100d20445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900a203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009808800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c8c01001100c404d00c403d00c806403201880b8c04c004c04cc050004c03cdd500345900c201818061806800980600098039baa00d8a4d153300549011856616c696461746f722072657475726e65642066616c7365001365640102a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d00161533003491215f72656465656d65723a205374616b696e675661756c7452656465656d65725631001601" + : "5903160101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c210e4d7374616b696e675f7661756c74004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162646644b30013007300e375400915980098079baa00489919911919198008009bab30173018301830183018301830183014375401444b30010018a508acc004cdd7801980a180c000c528c4cc008008c064005013202c3374a90011980a180a98091baa3259800980598091baa0018992cc004cdc3a400860266ea8006264b3001300d3014375400313232332259800980e801c40162c80d0c068004dd7180d001180d000980a9baa0018b2026301730143754003164048602c602e602e60266ea8c008c04cdd5180b18099baa0018b2022330093758600260246ea80208c8cc004004c010dd59801980a1baa30033014375400444b30010018a508acc004cdc79bae30180010128a51899801001180c800a026405897ae030010012301430150012259800800c52f5c113301330103014001330020023015001404916404116403460200026020602200260186ea801a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1TreasuryTreasuryMint { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1TreasuryTreasurySpend { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1TreasuryTreasuryElse { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908c70101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c2109487472656173757279004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5902f90101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c2109487472656173757279004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1YieldOracleYieldOracleMint { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908d20101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c211453646973747269627574696f6e5f6f7261636c65004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5903040101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c211453646973747269627574696f6e5f6f7261636c65004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1YieldOracleYieldOracleSpend { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908d20101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c211453646973747269627574696f6e5f6f7261636c65004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5903040101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c211453646973747269627574696f6e5f6f7261636c65004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} +export class V1_1Rc1YieldOracleYieldOracleElse { + public Script: Script; + constructor( + utxoRef: OutputReference, + proxyPolicyId: PolicyId, + trace?: boolean = false, + ) { + this.Script = cborToScript( + applyParamsToScript( + trace + ? "5908d20101002229800aba4aba2aba1aba0aab9faab9eaab9dab9cab9a9bae00248888888888c966002646465300130083754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e952000330100014bd7044cc00c00cc04800900b1808000a01c9806001cc03000922222598009802002c4c966002600a601c6ea8cc010dd6180918079baa00323375e602660206ea80040622b3001329800800d2f5c211453646973747269627574696f6e5f6f7261636c65004c8cc004004dd5980a180a980a980a980a98089baa0052259800800c52f5c113233223322330020020012259800800c400e264660346e9ccc068dd48029980d180b8009980d180c000a5eb80cc00c00cc070008c0680050181bab3015003375c602400266006006602e004602a00280990011112cc00400a2b30010018a518a998082481206d7573745f7a6970206f6e20756e657175616c206c656e677468206c697374730016404d159800800c54cc041241206d7573745f7a6970206f6e20756e657175616c206c656e677468206c6973747300168acc004c8cc896600266e3cdd7180c001803c56600266e3c004dd7180c00144cdc39bad301830190024800a2941012452820243017001375c602c0066eb0c05400633001003980b0014c0580050034528201e404c809a29462a6601a9201c76578706563740a202020206d7573745f7a69705f6576657279280a2020202020206173736574732c0a2020202020206d696e7465642c0a202020202020666e2865787065637465642c202861637475616c5f706f6c6963792c2061637475616c5f6e616d652c20616d742929207b0a202020202020202061637475616c5f706f6c696379203d3d20706f6c6963795f6964202626206578706563746564203d3d2061637475616c5f6e616d6520262620616d74203d3d20310a2020202020207d2c0a202020202900164031153300d4915865787065637420536f6d65285f29203d0a202020206c6973742e66696e6428696e707574732c20666e28696e70757429207b20696e7075742e6f75747075745f7265666572656e6365203d3d207574786f5f726566207d29001640306eb8c044c038dd5003456600266e1d20020058cc004c038dd50034896600200314bd7044cc048c03cc04c004cc008008c05000501148896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801900e48888c8cc004004014896600200310058992cc004006266008603000400d1330053018002330030030014058603000280aa46024602600337566022602460246024602460246024601c6ea80092222229800980b8034c05cc06001a600a00b300400448888c8c8c8c8c94cc06ccdcb2490d63726564656e7469616c3a3a20003732660060029101001323300100100b2259800800c528456600266ebc00cc078c0880062946266004004604600280e102019ba548008cc078dd4800a5eb80dd7180f180d9baa3253301a3372c92012467657474696e672070726f787920646174756d20666f7220706f6c6963792069643a3a20003732660046ea4061220100132598009809980e1baa00189929980e19b9649113666f756e642070726f7879207574786f3a3a20003732660080029101001325980099b8748010c078dd5000c4c966002003159800980b180f9baa0018992cc00400603913259800800c07603b01d80ec4cc896600200301f8992cc004c0a400a200d0204098604e0028128dd70009813001204e3024001408860406ea800603680ea03701b80dc06d0251811180f9baa0018a9980ea493365787065637420496e6c696e65446174756d28646174756d29203d2070726f78795f7574786f2e6f75747075742e646174756d00164070604260446044603c6ea8c030c078dd50009810180e9baa0018a9980da4814a65787065637420536f6d652870726f78795f7574786f29203d207265666572656e63655f696e70757473207c3e20696e7075745f776974685f706f6c69637928706f6c6963795f69642900164068660220024646600200260106eacc030c078dd51806180f1baa0022259800800c528456600266e3cdd7181100080dc528c4cc008008c08c00501c20403758601260366ea803cc004004888c966002007132323322330090023371491101280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a002805101020445980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c80e101c1bac301f002375a603a0026466ec0dd4180e8009ba7301e001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a6044003337149101023a200098008054c08c00600a805100a181280144ca6002015302200199b8a489023a200098008054c08c006600e66008008004805100a181280120463025001408866e29220102207d00003407c6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900d203e3758007133005375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc4001240291481822903720423371666e000056600266e2000520148a40c11481b9021002200c33706002901019b8600148080cdc7002001203c375c0068110dc5245022c200022323300100100322598009809000c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b85001480512060003406480c88b2016402c300b300c001300b00130063754019149a2a6600892011856616c696461746f722072657475726e65642066616c73650013656400c2a660069201266578706563742070726f78795f646174756d3a2050726f7879446174756d203d20646174756d001601" + : "5903040101002229800aba2aba1aba0aab9faab9eaab9dab9a9bae00248888888966002646465300130063754003370e9000488c8cc00400400c896600200314c103d87a80008992cc004c010006266e9520003300e0014bd7044cc00c00cc04000900a1807000a0189805001cc02800922222598009802002c4c966002600a60186ea8cc010dd6180818069baa00323375e6022601c6ea80040562b3001329800800d2f5c211453646973747269627574696f6e5f6f7261636c65004c8cc004004dd59809180998099809980998079baa0052259800800c52f5c113233223322330020020012259800800c400e264660306e9ccc060dd48029980c180a8009980c180b000a5eb80cc00c00cc068008c0600050161bab3013003375c602000266006006602a004602600280890011112cc00400a2b30010018a518b20228acc0040062d1598009919912cc004cdc79bae30160030078acc004cdc78009bae3016002899b87375a602c602e0049001452820228a504044602a0026eb8c05000cdd61809800c660020073014002980a000a0068a50403880890114528c5900b45900b1bae300f300c375400d15980099b87480080162664466446530012259800800c528456600266ebc00cc048c0580062946266004004602e00280890144c050c054016602800a911198018019bab3017301830183018301830183018301437540143374a900119809180998081baa3259800980498081baa0018992cc004cdc3a400860226ea8006264b3001300b3012375400313232332259800980d801c40162c80c0c060004dd7180c001180c00098099baa0018b20223015301237540031640406028602a602a60226ea8c008c044dd5180a18089baa0018b201e330073758600260206ea80188c8cc004004c010dd5980198091baa30033012375400444b30010018a508acc004cdc79bae30160010108a51899801001180b800a022405097ae03001001230123013001300c375400c44b30010018a5eb82266020601a6022002660040046024002807a2c805100a0c024c028004c024004c010dd5004c52689b2b20041", + Type.Tuple([ + Type.Object( + { + transaction_id: Type.String(), + output_index: Type.BigInt(), + }, + { ctor: 0n }, + ), + PolicyId, + ]), + [utxoRef, proxyPolicyId], + ), + "PlutusV3", + ); + } +} diff --git a/modules/realfi-partner-sdk/src/index.ts b/modules/realfi-partner-sdk/src/index.ts new file mode 100644 index 0000000000..b6487ab90a --- /dev/null +++ b/modules/realfi-partner-sdk/src/index.ts @@ -0,0 +1,136 @@ +// Partner-facing entry point. First-party consumers use "./internal". + +import { RealfiApi as RealfiApiInternal } from "./api/index.js"; +import type { IApiEndpoints, IRealfiApiSDK, TApiNetwork } from "./api/index.js"; +import { SDK_VERSION } from "./sdk/shared/client-id.js"; +import { RealfiSDK as RealfiSDKFull } from "./sdk/index.js"; +import { createPartnerCardanoSDK } from "./sdk/partner-dispatcher.js"; +import type { IRealfiCardanoFactory } from "./sdk/partner.js"; +import * as SundaeSwapSDK from "./sundae/index.js"; + +const PARTNER_CLIENT_ID = `partner-sdk/${SDK_VERSION}`; + +// On-chain Cardano part — the facade narrowed to the partner surface (order +// builders + read helpers). Deploy/operator methods and concrete version +// classes are reachable only via "./internal". +// +// `create` returns a version dispatcher: by default it re-resolves the live +// protocol version before each order build (one provider lookup) and swaps to +// the matching version instance; read helpers never re-detect. All built +// orders are tagged with source="partner-sdk", surviving version switches. +// The `detectParams` method is forwarded unchanged. +/* eslint-disable @typescript-eslint/no-explicit-any */ +const cardano: IRealfiCardanoFactory = { + create: (blaze: any, params: any, options?: any) => + createPartnerCardanoSDK(blaze, params, "partner-sdk", options) as any, + detectParams: RealfiSDKFull.detectParams.bind(RealfiSDKFull), +}; +/* eslint-enable @typescript-eslint/no-explicit-any */ + +// Off-chain API — wrap factory methods to inject the partner client-id so +// every request body carries extensions.clientId = "partner-sdk/". +const PartnerRealfiApi = { + forNetwork(network: TApiNetwork): IRealfiApiSDK { + return RealfiApiInternal.forNetwork(network, PARTNER_CLIENT_ID); + }, + create(endpoints: IApiEndpoints): IRealfiApiSDK { + return RealfiApiInternal.create(endpoints, PARTNER_CLIENT_ID); + }, +}; + +// Partner SDK, namespaced by part. +export const RealfiSDK = { + cardano, + api: PartnerRealfiApi, + sundae: SundaeSwapSDK, +}; + +// Partner-facing Cardano SDK instance types + create options +export type { + IRealfiCardanoCreateOptions, + IBuildStakeContinuationParams, + IStakeContinuation, + IStakeContinuationSwap, + IRealfiCardanoSDKV0_4, + IRealfiCardanoSDKV1_0, + IRealfiCardanoSDKV1_0Rc1, + IRealfiCardanoSDKV1_1Rc1, + TDetectedVersion, + TRealfiCardanoSDK, + TVersionDetectionMode, +} from "./sdk/partner.js"; + +// Params + detection result +export type { + TDetectedSDKParams, + IRealfiSDKParamsV0_4, + IRealfiSDKParamsV1_0, + IRealfiSDKParamsV1_0Rc1, + IRealfiSDKParamsV1_1Rc1, +} from "./sdk/index.js"; + +// Protocol-version detection +export { + detectSDKParams, + NETWORK_REGISTRY, + UnknownProtocolVersionError, + YIELD_ORACLE_BOOTSTRAP_PLACEHOLDER, +} from "./sdk/shared/detect-params.js"; +export type { + IDetectInput, + TNetworkPreset, +} from "./sdk/shared/detect-params.js"; + +// Partner-facing shared types +export type { + TProtocolVersion, + IProxyBootstrap, + IBaseSDKParams, + IRawProxyDatumResult, + IProxyDatumResult, + ITreasuryDatumResult, + IVaultDatumResult, + IProxySettings, + IReserveAsset, + TMultisigScript, + IOutputReference, + TPermissionKey, +} from "./sdk/shared/types.js"; + +// Current-line generated type namespaces +export { + V0_4Types, + V1_0Types, + V1_0Rc1Types, + V1_1Rc1Types, +} from "./generated-types/index.js"; + +// Curated helpers + transaction builder +export { + calculateSusdrExchangeRate, + SUSDR_EXCHANGE_RATE_PRECISION, + type ISusdrExchangeRateInputs, +} from "./sdk/v1_1_rc1/diffusion.js"; +export * as Utils from "./sdk/shared/public.js"; +export * as TxBuilder from "./tx-builder/index.js"; +export * as SundaeSwap from "./sundae/index.js"; + +// Off-chain API part. `RealfiApi` here is the partner-tagged factory, not the +// raw class — direct imports get the same partner client-id as RealfiSDK.api. +export { PartnerRealfiApi as RealfiApi }; +export type { + IRealfiApiSDK, + IApiEndpoints, + TApiNetwork, + IOrderInfo, + IPartnerConfig, + IPartnerLimits, + IApiOrderUtxo, + IStakeTimes, + IOrderFees, + IYieldBreakdown, + IPointsBalance, + IReferrerCode, + TOrderStatus, + TOrderAction, +} from "./api/index.js"; diff --git a/modules/realfi-partner-sdk/src/sdk/index.ts b/modules/realfi-partner-sdk/src/sdk/index.ts new file mode 100644 index 0000000000..5acc17c687 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/index.ts @@ -0,0 +1,242 @@ +import type { Provider } from "@blaze-cardano/query"; +import { type Blaze, type Wallet } from "@blaze-cardano/sdk"; + +import type { + IDetectInput, + TDetectedSDKParams, + TNetworkPreset, +} from "./shared/detect-params.js"; +export type { TDetectedSDKParams } from "./shared/detect-params.js"; +export type { TNetworkPreset } from "./shared/detect-params.js"; + +import type { IRealfiSDKParamsV0, RealfiSDKV0 } from "./v0/index.js"; +import type { IRealfiSDKParamsV0_1, RealfiSDKV0_1 } from "./v0_1/index.js"; +import type { IRealfiSDKParamsV0_2, RealfiSDKV0_2 } from "./v0_2/index.js"; +import type { IRealfiSDKParamsV0_3, RealfiSDKV0_3 } from "./v0_3/index.js"; +import type { IRealfiSDKParamsV0_4, RealfiSDKV0_4 } from "./v0_4/index.js"; +import type { IRealfiSDKParamsV1_0, RealfiSDKV1_0 } from "./v1_0/index.js"; +import type { + IRealfiSDKParamsV1_0Rc1, + RealfiSDKV1_0Rc1, +} from "./v1_0_rc1/index.js"; +import type { + IRealfiSDKParamsV1_1Rc1, + RealfiSDKV1_1Rc1, +} from "./v1_1_rc1/index.js"; + +// Re-export param types for convenience +export type { IRealfiSDKParamsV0 } from "./v0/index.js"; +export type { IRealfiSDKParamsV0_1 } from "./v0_1/index.js"; +export type { IRealfiSDKParamsV0_2 } from "./v0_2/index.js"; +export type { IRealfiSDKParamsV0_3 } from "./v0_3/index.js"; +export type { IRealfiSDKParamsV0_4 } from "./v0_4/index.js"; +export type { IRealfiSDKParamsV1_0 } from "./v1_0/index.js"; +export type { IRealfiSDKParamsV1_0Rc1 } from "./v1_0_rc1/index.js"; +export type { IRealfiSDKParamsV1_1Rc1 } from "./v1_1_rc1/index.js"; + +// Re-export shared types and utilities +export * from "./shared/index.js"; + +// Re-export version classes. These are tree-shaken out of consumer bundles +// that never reference them by name, thanks to `"sideEffects": false` in +// package.json. The facade below dispatches via dynamic `import()`, so the +// app's entry chunk only includes the version it actually selects at runtime. +export { RealfiSDKV0 } from "./v0/index.js"; +export { RealfiSDKV0_1 } from "./v0_1/index.js"; +export { RealfiSDKV0_2 } from "./v0_2/index.js"; +export { RealfiSDKV0_3 } from "./v0_3/index.js"; +export { RealfiSDKV0_4 } from "./v0_4/index.js"; +export { RealfiSDKV1_0 } from "./v1_0/index.js"; +export { RealfiSDKV1_0Rc1 } from "./v1_0_rc1/index.js"; +export { RealfiSDKV1_1Rc1 } from "./v1_1_rc1/index.js"; + +/** + * Union type of all SDK parameter types + */ +export type TRealfiSDKParams = + | IRealfiSDKParamsV0 + | IRealfiSDKParamsV0_1 + | IRealfiSDKParamsV0_2 + | IRealfiSDKParamsV0_3 + | IRealfiSDKParamsV0_4 + | IRealfiSDKParamsV1_0 + | IRealfiSDKParamsV1_0Rc1 + | IRealfiSDKParamsV1_1Rc1; + +/** + * Union type of all SDK versions + */ +export type TRealfiSDK

= + | RealfiSDKV0 + | RealfiSDKV0_1 + | RealfiSDKV0_2 + | RealfiSDKV0_3 + | RealfiSDKV0_4 + | RealfiSDKV1_0 + | RealfiSDKV1_0Rc1 + | RealfiSDKV1_1Rc1; + +// Function overloads for create. Returns are promises because the +// implementation lazy-loads the per-version module on demand. +function createRealfiSDK

( + blaze: Blaze, + params: IRealfiSDKParamsV0, +): Promise>; +function createRealfiSDK

( + blaze: Blaze, + params: IRealfiSDKParamsV0_1, +): Promise>; +function createRealfiSDK

( + blaze: Blaze, + params: IRealfiSDKParamsV0_2, +): Promise>; +function createRealfiSDK

( + blaze: Blaze, + params: IRealfiSDKParamsV0_3, +): Promise>; +function createRealfiSDK

( + blaze: Blaze, + params: IRealfiSDKParamsV0_4, +): Promise>; +function createRealfiSDK

( + blaze: Blaze, + params: IRealfiSDKParamsV1_0, +): Promise>; +function createRealfiSDK

( + blaze: Blaze, + params: IRealfiSDKParamsV1_0Rc1, +): Promise>; +function createRealfiSDK

( + blaze: Blaze, + params: IRealfiSDKParamsV1_1Rc1, +): Promise>; +function createRealfiSDK

( + blaze: Blaze, + params: TDetectedSDKParams, +): Promise< + | RealfiSDKV0_4 + | RealfiSDKV1_0 + | RealfiSDKV1_0Rc1 + | RealfiSDKV1_1Rc1 +>; +function createRealfiSDK

( + blaze: Blaze, + params: TRealfiSDKParams, +): Promise>; +async function createRealfiSDK

( + blaze: Blaze, + params: TRealfiSDKParams, +): Promise> { + switch (params.version) { + case "V0": { + const { RealfiSDKV0 } = await import("./v0/index.js"); + return RealfiSDKV0.create(blaze, params); + } + case "V0_1": { + const { RealfiSDKV0_1 } = await import("./v0_1/index.js"); + return RealfiSDKV0_1.create(blaze, params); + } + case "V0_2": { + const { RealfiSDKV0_2 } = await import("./v0_2/index.js"); + return RealfiSDKV0_2.create(blaze, params); + } + case "V0_3": { + const { RealfiSDKV0_3 } = await import("./v0_3/index.js"); + return RealfiSDKV0_3.create(blaze, params); + } + case "V0_4": { + const { RealfiSDKV0_4 } = await import("./v0_4/index.js"); + return RealfiSDKV0_4.create(blaze, params); + } + case "V1_0": { + const { RealfiSDKV1_0 } = await import("./v1_0/index.js"); + return RealfiSDKV1_0.create(blaze, params); + } + case "V1_0_Rc1": { + const { RealfiSDKV1_0Rc1 } = await import("./v1_0_rc1/index.js"); + return RealfiSDKV1_0Rc1.create(blaze, params); + } + case "V1_1_Rc1": { + const { RealfiSDKV1_1Rc1 } = await import("./v1_1_rc1/index.js"); + return RealfiSDKV1_1Rc1.create(blaze, params); + } + default: + throw new Error( + `Unknown SDK version: ${(params as TRealfiSDKParams).version}`, + ); + } +} + +/** Call signature for {@link RealfiSDK.detectParams}, kept as an interface so it can carry overloads. */ +interface IDetectParams { + (provider: Provider, config: IDetectInput): Promise; + (provider: Provider, network: TNetworkPreset): Promise; +} + +/** + * RealfiSDK namespace for creating SDK instances. + * + * The SDK is the single entry point for all protocol operations. + * Each version class (RealfiSDKV0, RealfiSDKV0_1, RealfiSDKV0_2, etc.) provides + * version-specific functionality with correct types. + * + * The facade lazy-loads each version module via dynamic `import()` so consumer + * bundles only ship the version they actually select at runtime. + * + * @example V0 - Simple minting + * ```typescript + * const sdk = await RealfiSDK.create(blaze, { + * version: "V0", + * proxyBootstrap: { txHash, outputIndex }, + * assetNameHex: "55534472", + * }); + * const mintTx = await sdk.buildMintTx(AssetAmount.fromValue(1000n, decimals)); + * ``` + * + * @example V1_0 - Full protocol with DirectMint/DirectBurn + * ```typescript + * const sdk = await RealfiSDK.create(blaze, { + * version: "V1_0", + * proxyBootstrap: { txHash, outputIndex }, + * treasuryBootstrap: { txHash: treasuryTxHash, outputIndex: treasuryOutputIndex }, + * stakingVaultBootstrap: { txHash: vaultTxHash, outputIndex: vaultOutputIndex }, + * assetNameHex: "55534472", + * sUSDrAssetNameHex: "7355534472", + * }); + * const directMintTx = await sdk.buildDirectMintOrderTx({ amount, destination }); + * ``` + */ +export const RealfiSDK = { + /** + * Create a new RealfiSDK instance. + * + * Returns the appropriate version-specific SDK based on the params. + * The returned SDK has full type information for that version. + */ + create: createRealfiSDK, + + /** + * Detect the active protocol version from the on-chain proxy datum. + * + * Reads the proxy UTxO, extracts the `logic` script hash, and compares it + * against expected hashes for each known SDK version. Returns fully-typed + * SDK params (including V1_0 backward-compatibility flags) that can be + * passed directly to `RealfiSDK.create`. + * + * `config` also accepts a network preset name (`"mainnet"`, `"preprod"`, + * `"preview"`) in place of an explicit config, resolved via the built-in + * network registry. Custom deployments still pass an explicit config. + * + * @throws {UnknownProtocolVersionError} if the on-chain hash matches no known version. + */ + detectParams: (async ( + provider: Provider, + config: IDetectInput | TNetworkPreset, + ): Promise => { + const { detectSDKParams } = await import("./shared/detect-params.js"); + // Both arms call the same function; the ternary narrows the string|object union so it matches an overload — required to satisfy TS2769, not a no-op. + return typeof config === "string" + ? detectSDKParams(provider, config) + : detectSDKParams(provider, config); + }) as IDetectParams, +}; diff --git a/modules/realfi-partner-sdk/src/sdk/partner-dispatcher.ts b/modules/realfi-partner-sdk/src/sdk/partner-dispatcher.ts new file mode 100644 index 0000000000..c41a7d7767 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/partner-dispatcher.ts @@ -0,0 +1,241 @@ +// Per-build protocol-version dispatch for the partner facade ("." entry). +// First-party consumers ("./internal") keep frozen version instances. + +import type { Provider } from "@blaze-cardano/query"; +import type { Blaze, Core, Wallet } from "@blaze-cardano/sdk"; + +import { RealfiSDK } from "./index.js"; +import type { + IRealfiCardanoCreateOptions, + TDetectedVersion, + TRealfiCardanoSDK, +} from "./partner.js"; +import type { TClientSource } from "./shared/client-id.js"; +import { + fetchProxyLogicSnapshot, + type IDetectInput, + matchProtocolVersion, + type TDetectedSDKParams, + UnknownProtocolVersionError, +} from "./shared/detect-params.js"; + +// Identity fields the dispatcher reads off a live version instance; every +// other member is reached by property delegation. +interface IVersionInstance { + readonly version: TDetectedVersion; + readonly oneShotPolicyId: Core.PolicyId; + readonly protocolScriptHash: Core.Hash28ByteBase16; +} + +interface IDispatchState { + instance: IVersionInstance; + lastLogicHash: string; + inflightRefresh?: Promise; +} + +// Caller-supplied build options carried into a recreated instance. Cached +// referenceInputs stay behind — they belong to the previous version's scripts. +type TCarriedParamExtras = { + scriptDeploymentAddress?: unknown; + defaultSlippageToleranceBps?: unknown; +}; + +const isOrderBuilder = (prop: PropertyKey): prop is string => + typeof prop === "string" && prop.startsWith("build"); + +const requiresFreshVersion = (prop: string): boolean => + prop === "buildStakeContinuation"; + +/** + * Create a partner SDK that re-resolves the live protocol version before each + * order build and dispatches to the matching version instance. + * + * Detection identity: the one-shot NFT policy (deterministic from + * `proxyBootstrap`). The proxy UTxO ref changes on every settings update, but + * the NFT lookup follows it, so each refresh is exactly one provider call. + * The fetched `logic` hash is compared against the current instance's + * `protocolScriptHash` — equal in every detectable version — and only on a + * mismatch does the (local, provider-free) version matcher run and the + * underlying instance get recreated, preserving `clientSource` so partner + * order metadata survives the switch. Read helpers never trigger a refresh. + * + * No result caching beyond the last observed hash: freshness only shrinks the + * stale window — correctness is enforced on-chain, and a stale-version build + * is recovered via order invalidation. + * + * Refresh failure policy: an {@link UnknownProtocolVersionError} rejects the + * build — the chain moved to a version this SDK cannot target. Any other + * refresh error (e.g. a transient provider failure) logs a warning and the + * build proceeds on the last known version, which is exactly what an + * `"at-init"` instance would have produced. Stake continuations are stricter + * under this `"per-build"` dispatcher: their address, schema, and + * exchange-rate quote must all match the current deployment, so + * `buildStakeContinuation` fails closed on every refresh error here. An + * `"at-init"` instance, or a raw version-pinned SDK used outside this + * dispatcher, never refreshes at all and carries no such guarantee. + * + * Method identity is unstable across accesses (`sdk.buildX !== sdk.buildX`): + * each access returns a fresh wrapper over the live instance, by design. + */ +export async function createPartnerCardanoSDK< + P extends Provider, + W extends Wallet, +>( + blaze: Blaze, + params: TDetectedSDKParams, + clientSource: TClientSource, + options?: IRealfiCardanoCreateOptions, +): Promise> { + const createInstance = (p: TDetectedSDKParams): Promise => + ( + RealfiSDK as { + create: ( + blaze: Blaze, + params: TDetectedSDKParams & { clientSource?: TClientSource }, + ) => Promise; + } + ).create(blaze, { ...p, clientSource }) as Promise; + + const initial = await createInstance(params); + + if ((options?.versionDetection ?? "per-build") === "at-init") { + // Frozen instance — never re-detects. + return initial as unknown as TRealfiCardanoSDK; + } + + const detectInput: IDetectInput = { + proxyBootstrap: params.proxyBootstrap, + treasuryBootstrap: params.treasuryBootstrap, + stakingVaultBootstrap: params.stakingVaultBootstrap, + yieldOracleBootstrap: + "yieldOracleBootstrap" in params + ? params.yieldOracleBootstrap + : undefined, + assetNameHex: params.assetNameHex, + sUSDrAssetNameHex: params.sUSDrAssetNameHex, + enableTrace: params.enableTrace, + }; + const carriedExtras = params as TCarriedParamExtras; + + const state: IDispatchState = { + instance: initial, + // Every detectable version's proxy datum `logic` hash is that version + // class's protocolScriptHash. + lastLogicHash: initial.protocolScriptHash, + }; + + const doRefresh = async (): Promise => { + const oneShotPolicyId = state.instance + .oneShotPolicyId as unknown as Core.Hash28ByteBase16; + const snapshot = await fetchProxyLogicSnapshot( + blaze.provider, + oneShotPolicyId, + ); + if (snapshot.logicHash === state.lastLogicHash) return; + + const detected = await matchProtocolVersion( + snapshot, + oneShotPolicyId, + detectInput, + ); + const previous = state.instance.version; + const next = await createInstance({ + ...detected, + scriptDeploymentAddress: carriedExtras.scriptDeploymentAddress, + defaultSlippageToleranceBps: carriedExtras.defaultSlippageToleranceBps, + } as TDetectedSDKParams); + state.instance = next; + state.lastLogicHash = snapshot.logicHash; + if (next.version !== previous) { + console.warn( + `[realfi-sdk] Protocol version changed: ${previous} -> ${next.version}. Order builders now target ${next.version}.`, + { previous, next: next.version }, + ); + // A throwing partner callback must not break the build. + try { + options?.onVersionChange?.(previous, next.version); + } catch (callbackError) { + console.warn("[realfi-sdk] onVersionChange threw", callbackError); + } + } + }; + + // Concurrent builds share one in-flight refresh. + const refresh = (): Promise => { + if (!state.inflightRefresh) { + state.inflightRefresh = doRefresh().finally(() => { + state.inflightRefresh = undefined; + }); + } + return state.inflightRefresh; + }; + + // Delegating proxy: members always resolve against the live instance, so a + // version switch also switches the available surface (e.g. V1-line-only + // builders). Order builds refresh first; everything else passes through. + return new Proxy(Object.create(null) as object, { + get(_target, prop) { + const live = state.instance as unknown as Record; + const value = live[prop]; + if (typeof value !== "function") return value; + if (isOrderBuilder(prop)) { + return async (...args: unknown[]): Promise => { + try { + await refresh(); + } catch (refreshError) { + // Unknown on-chain version: this SDK cannot build a valid order. + if ( + refreshError instanceof UnknownProtocolVersionError || + requiresFreshVersion(prop) + ) { + throw refreshError; + } + // Transient failure (e.g. provider blip): build on the last known + // version — no worse than an "at-init" instance. + console.warn( + `[realfi-sdk] Protocol-version refresh failed; ${prop} builds against last known version ${state.instance.version}.`, + refreshError, + ); + } + const current = state.instance as unknown as Record< + PropertyKey, + unknown + >; + const builder = current[prop]; + if (typeof builder !== "function") { + throw new Error( + `[realfi-sdk] ${prop} is not available on protocol version ${state.instance.version}; the live protocol version changed since this SDK was created.`, + ); + } + return (builder as (...a: unknown[]) => unknown).apply( + state.instance, + args, + ); + }; + } + return (value as (...a: unknown[]) => unknown).bind(state.instance); + }, + has(_target, prop) { + return prop in (state.instance as object); + }, + set(_target, prop, value) { + (state.instance as unknown as Record)[prop] = value; + return true; + }, + getPrototypeOf() { + return Object.getPrototypeOf(state.instance); + }, + ownKeys() { + return Reflect.ownKeys(state.instance as object); + }, + getOwnPropertyDescriptor(_target, prop) { + const descriptor = Reflect.getOwnPropertyDescriptor( + state.instance as object, + prop, + ); + // The proxy target is an empty object; reported descriptors must be + // configurable to satisfy proxy invariants. + return descriptor ? { ...descriptor, configurable: true } : undefined; + }, + }) as TRealfiCardanoSDK; +} diff --git a/modules/realfi-partner-sdk/src/sdk/partner.ts b/modules/realfi-partner-sdk/src/sdk/partner.ts new file mode 100644 index 0000000000..b8df0ef7b7 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/partner.ts @@ -0,0 +1,196 @@ +import type { Provider } from "@blaze-cardano/query"; +import type { Blaze, Wallet } from "@blaze-cardano/sdk"; + +import type { + IDetectInput, + TDetectedSDKParams, + TNetworkPreset, +} from "./shared/detect-params.js"; +import type { IRealfiSDKParamsV0_4, RealfiSDKV0_4 } from "./v0_4/index.js"; +import type { IRealfiSDKParamsV1_0, RealfiSDKV1_0 } from "./v1_0/index.js"; +import type { + IRealfiSDKParamsV1_0Rc1, + RealfiSDKV1_0Rc1, +} from "./v1_0_rc1/index.js"; +import type { + IRealfiSDKParamsV1_1Rc1, + RealfiSDKV1_1Rc1, +} from "./v1_1_rc1/index.js"; +export type { + IBuildStakeContinuationParams, + IStakeContinuation, + IStakeContinuationSwap, +} from "./v1/family.js"; + +// Version discriminant: a readonly literal on every current-line SDK class, +// so TRealfiCardanoSDK narrows as a tagged union. +type TCardanoVersionProp = "version"; + +// Read helpers available on every current-line SDK. +type TCardanoReadMethods = + | "getRawProxyDatum" + | "getParsedProxyDatum" + | "getSettings" + | "getTreasuryDatum" + | "getVaultDatum" + | "getUsdrAssetId" + | "getSusdrAssetId"; + +// Order builders common to V0_4 and the V1 line. +type TCardanoOrderMethods = + | "buildMintOrderTx" + | "buildRedeemOrderTx" + | "buildStakeOrderTx" + | "buildUnstakeOrderTx" + | "buildDepositOrderTx" + | "buildWithdrawOrderTx" + | "buildCancelOrdersTx" + | "buildClaimTimelockTx"; + +// V1-line order builder on the partner surface; direct mint/burn stay internal-only. +type TCardanoOrderMethodsV1 = + | "buildInvalidatedOrdersTx" + | "buildStakeContinuation"; + +/** Partner-facing surface of the V0_4 SDK: order builders + read helpers only. */ +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiCardanoSDKV0_4< + P extends Provider, + W extends Wallet, +> extends Pick< + RealfiSDKV0_4, + TCardanoVersionProp | TCardanoReadMethods | TCardanoOrderMethods +> {} + +/** Partner-facing surface of the V1_0 SDK. */ +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiCardanoSDKV1_0< + P extends Provider, + W extends Wallet, +> extends Pick< + RealfiSDKV1_0, + | TCardanoVersionProp + | TCardanoReadMethods + | TCardanoOrderMethods + | TCardanoOrderMethodsV1 +> {} + +/** Partner-facing surface of the V1_0_Rc1 SDK. */ +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiCardanoSDKV1_0Rc1< + P extends Provider, + W extends Wallet, +> extends Pick< + RealfiSDKV1_0Rc1, + | TCardanoVersionProp + | TCardanoReadMethods + | TCardanoOrderMethods + | TCardanoOrderMethodsV1 +> {} + +/** Partner-facing surface of the V1_1_Rc1 SDK. */ +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiCardanoSDKV1_1Rc1< + P extends Provider, + W extends Wallet, +> extends Pick< + RealfiSDKV1_1Rc1, + | TCardanoVersionProp + | TCardanoReadMethods + | TCardanoOrderMethods + | TCardanoOrderMethodsV1 +> {} + +/** Any partner-facing SDK the facade can return after version detection. */ +export type TRealfiCardanoSDK

= + | IRealfiCardanoSDKV0_4 + | IRealfiCardanoSDKV1_0 + | IRealfiCardanoSDKV1_0Rc1 + | IRealfiCardanoSDKV1_1Rc1; + +/** Protocol version as reported by on-chain detection. */ +export type TDetectedVersion = TDetectedSDKParams["version"]; + +/** Version-detection behavior of SDK instances returned by `create`. */ +export type TVersionDetectionMode = "per-build" | "at-init"; + +/** Options for the partner facade's `create`. */ +export interface IRealfiCardanoCreateOptions { + /** + * `"per-build"` (default): before every order build (`build*`), re-resolve + * the live protocol version — one provider lookup — and dispatch to the + * matching version instance, so an on-chain protocol upgrade needs no + * re-init. Read helpers (`get*`) never re-detect; they use the version as of + * the last check. `"at-init"`: the instance is frozen at the version it was + * created with and never re-detects. + * + * This binding happens at property access, not at call time — a cached + * reference (`const f = sdk.getUsdrAssetId`) keeps targeting the instance + * live when it was read, even if a later `build*Tx` call switches versions. + * Call `sdk.getX()` directly to always read the live version. + * + * Refresh failures under `"per-build"`: an `UnknownProtocolVersionError` + * rejects the build (the chain runs a version this SDK does not know); any + * other error — e.g. a transient provider failure — logs a warning and the + * build proceeds on the last known version. `buildStakeContinuation` fails + * closed on every refresh error under `"per-build"`, because its address, + * schema, and quote must all come from the currently deployed version. + * `"at-init"` instances, and raw version-pinned SDKs used outside this + * factory, never refresh and so carry no such guarantee. + */ + versionDetection?: TVersionDetectionMode; + /** + * Called once per observed protocol-version change, after builders have + * switched to the new version. Exceptions are logged and swallowed. + */ + onVersionChange?: ( + previous: TDetectedVersion, + next: TDetectedVersion, + ) => void; +} + +/** + * Partner-facing view of the RealfiSDK facade. `create` returns the narrowed + * `IRealfiCardanoSDK` surface (order builders + read helpers); deploy/operator + * methods are reachable only through the internal entry point. + * + * The static return type reflects the version at creation time. Under + * `"per-build"` detection the runtime instance may later dispatch to a newer + * protocol version — the partner surface is call-compatible across versions, + * so existing call sites keep working; `version` reports the live value. + */ +export interface IRealfiCardanoFactory { + create

( + blaze: Blaze, + params: IRealfiSDKParamsV0_4, + options?: IRealfiCardanoCreateOptions, + ): Promise>; + create

( + blaze: Blaze, + params: IRealfiSDKParamsV1_0, + options?: IRealfiCardanoCreateOptions, + ): Promise>; + create

( + blaze: Blaze, + params: IRealfiSDKParamsV1_0Rc1, + options?: IRealfiCardanoCreateOptions, + ): Promise>; + create

( + blaze: Blaze, + params: IRealfiSDKParamsV1_1Rc1, + options?: IRealfiCardanoCreateOptions, + ): Promise>; + create

( + blaze: Blaze, + params: TDetectedSDKParams, + options?: IRealfiCardanoCreateOptions, + ): Promise>; + detectParams( + provider: Provider, + config: IDetectInput, + ): Promise; + detectParams( + provider: Provider, + network: TNetworkPreset, + ): Promise; +} diff --git a/modules/realfi-partner-sdk/src/sdk/shared/base.ts b/modules/realfi-partner-sdk/src/sdk/shared/base.ts new file mode 100644 index 0000000000..ed8ed53201 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/base.ts @@ -0,0 +1,551 @@ +import type { Provider } from "@blaze-cardano/query"; +import { type Blaze, Core, TxBuilder, type Wallet } from "@blaze-cardano/sdk"; + +import { + DEFAULT_CLIENT_SOURCE, + SDK_VERSION, + type TClientSource, +} from "./client-id.js"; +import { + buildOrderOriginMetadatum, + ORDER_ORIGIN_METADATA_LABEL, + resolveTimelockNativeScript, +} from "./timelock.js"; +import type { + IBaseSDKParams, + ICachedReferenceInputs, + IOutputReference, + IProxyDatumResult, + IProxySettings, + IRawProxyDatumResult, + ITreasuryDatumResult, + TProtocolVersion, +} from "./types.js"; +import { + addDirectOutput, + credentialFromScript, + deployScript, + getReferenceInputs, + readSingletonDatum, + rewardAccountFromScript, +} from "./utils.js"; + +/** + * Base interface for SDK version implementations. + * Each version implements this with version-specific logic. + */ +export interface IRealfiSDK { + /** Protocol version */ + readonly version: TProtocolVersion; + + /** Stablecoin policy ID (mint proxy) */ + readonly stablecoinPolicyId: Core.PolicyId; + + /** One-shot NFT policy ID */ + readonly oneShotPolicyId: Core.PolicyId; + + /** Protocol script hash */ + readonly protocolScriptHash: Core.Hash28ByteBase16; + + /** Get the raw proxy UTxO + inline datum from the one-shot token UTXO */ + getRawProxyDatum(): Promise; + + /** Get and parse the proxy datum using this SDK version's schema */ + getParsedProxyDatum(): Promise>; + + /** @deprecated Use getParsedProxyDatum() or getRawProxyDatum() */ + getProxyDatum(): Promise>; + + /** Deploy the protocol script */ + deployProtocol(): Promise; + + /** Deploy the mint proxy script */ + deployMintProxy(): Promise; + + /** Register the protocol stake credential */ + registerProtocolStake(): TxBuilder; + + /** Get the protocol reward account */ + getProtocolRewardAccount(): Core.RewardAccount; + + /** Mint the one-shot NFT with initial datum */ + mintOneShot( + receiverAddress: Core.Address, + datum: unknown, + ): Promise<{ + tx: TxBuilder; + policyId: Core.PolicyId; + }>; + + /** Update the one-shot datum */ + updateOneShotDatum( + receiverAddress: Core.Address, + newDatum: unknown, + ): Promise; + + /** Get version-agnostic proxy settings (common fields only) */ + getSettings(): Promise; +} + +/** + * Extended interface for SDK versions with treasury support (V0_1+) + */ +type TNestedProxySettings = { + permissions: { + mint: IProxySettings["mint_permission"]; + burn: IProxySettings["burn_permission"]; + withdraw: IProxySettings["withdraw_permission"]; + deposit: IProxySettings["deposit_permission"]; + stake: IProxySettings["stake_permission"]; + unstake: IProxySettings["unstake_permission"]; + }; + config: { reserve_assets: IProxySettings["reserve_assets"] }; +}; + +const isRecord = (value: unknown): value is Record => + typeof value === "object" && value !== null; + +const isFlatProxySettings = (value: unknown): value is IProxySettings => + isRecord(value) && + "mint_permission" in value && + "burn_permission" in value && + "withdraw_permission" in value && + "deposit_permission" in value && + "stake_permission" in value && + "unstake_permission" in value && + Array.isArray(value.reserve_assets); + +const isNestedProxySettings = (value: unknown): value is TNestedProxySettings => + isRecord(value) && + isRecord(value.permissions) && + "mint" in value.permissions && + "burn" in value.permissions && + "withdraw" in value.permissions && + "deposit" in value.permissions && + "stake" in value.permissions && + "unstake" in value.permissions && + isRecord(value.config) && + Array.isArray(value.config.reserve_assets); + +export interface IRealfiSDKWithTreasury extends IRealfiSDK { + /** Treasury NFT asset ID */ + readonly treasuryNFTAssetId: Core.AssetId; + + /** Treasury script hash */ + readonly treasuryScriptHash: Core.Hash28ByteBase16; + + /** Mint the treasury NFT */ + mintTreasuryNFT( + utxo?: Core.TransactionUnspentOutput, + ): Promise<{ tx: TxBuilder; nftAssetId: Core.AssetId }>; + + /** Deploy the treasury script (requires original UTXO for script instantiation) */ + deployTreasury(utxo: Core.TransactionUnspentOutput): Promise; + + /** Get the treasury datum */ + getTreasuryDatum(): Promise>; +} + +/** + * Abstract base class for SDK versions. + * Provides common implementation and utilities. + */ +export abstract class RealfiSDKBase< + P extends Provider, + W extends Wallet, +> implements IRealfiSDK { + /** Blaze instance for blockchain interactions */ + protected readonly blaze: Blaze; + + /** Bootstrap parameters */ + protected readonly proxyBootstrap: IBaseSDKParams["proxyBootstrap"]; + + /** Asset name hex for the stablecoin */ + protected readonly assetNameHex: string; + + /** Cached reference inputs for performance (populated on first fetch) */ + protected cachedReferenceInputs: ICachedReferenceInputs; + + /** + * Address used to deploy reference scripts and to resolve them from. + * When undefined, Blaze's burn address is used for both. + */ + protected readonly scriptDeploymentAddress?: Core.Address; + + /** Cached raw proxy datum result (populated on first fetch) */ + protected cachedRawProxyDatumResult?: IRawProxyDatumResult; + + /** Cached parsed proxy datum result (populated on first fetch) */ + protected cachedProxyDatumResult?: IProxyDatumResult; + + /** One-shot output reference (derived from bootstrap) */ + protected readonly oneShotTxoRef: IOutputReference; + + /** Enable trace output in Plutus scripts */ + readonly enableTrace: boolean; + + /** Origin attached to all built order transactions. */ + readonly clientSource: TClientSource; + + /** SDK version attached to all built order transactions. */ + readonly sdkVersion: string; + + // Abstract properties - each version must provide these + abstract readonly version: TProtocolVersion; + abstract readonly stablecoinPolicyId: Core.PolicyId; + abstract readonly oneShotPolicyId: Core.PolicyId; + abstract readonly protocolScriptHash: Core.Hash28ByteBase16; + + // Scripts - each version stores its own instantiated scripts + protected abstract readonly oneShotScript: Core.Script; + protected abstract readonly protocolScript: Core.Script; + protected abstract readonly mintProxyScript: Core.Script; + + protected constructor( + blaze: Blaze, + params: IBaseSDKParams & { clientSource?: TClientSource }, + cachedReferenceInputs?: ICachedReferenceInputs, + ) { + this.blaze = blaze; + this.proxyBootstrap = params.proxyBootstrap; + this.assetNameHex = params.assetNameHex; + this.enableTrace = params.enableTrace ?? false; + this.cachedReferenceInputs = cachedReferenceInputs ?? {}; + this.scriptDeploymentAddress = params.scriptDeploymentAddress; + this.clientSource = params.clientSource ?? DEFAULT_CLIENT_SOURCE; + this.sdkVersion = SDK_VERSION; + this.oneShotTxoRef = { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }; + } + + /** Get the network from blaze */ + protected get network(): Core.NetworkId { + return this.blaze.provider.network; + } + + /** + * Start a transaction with a single setMetadata call. Origin label (55534473) is always + * present and not overridable; extra labels are merged in before the origin is set. + */ + protected newOrderTransaction( + extraLabels?: Map, + ): TxBuilder { + const map = new Map(extraLabels ?? []); + map.set( + ORDER_ORIGIN_METADATA_LABEL, + buildOrderOriginMetadatum(this.clientSource, this.sdkVersion), + ); + return this.blaze.newTransaction().setMetadata(new Core.Metadata(map)); + } + + /** + * Helper to get reference inputs for scripts. + * Fetched values are cached for subsequent calls. + */ + async getScriptReferenceInputs( + scriptHashes: Record, + ): Promise> { + const cached: Partial> = {}; + + if (this.cachedReferenceInputs.protocolRefInput) { + cached.protocol = this.cachedReferenceInputs.protocolRefInput; + } + if (this.cachedReferenceInputs.proxyRefInput) { + cached.proxy = this.cachedReferenceInputs.proxyRefInput; + } + if (this.cachedReferenceInputs.treasuryRefInput) { + cached.treasury = this.cachedReferenceInputs.treasuryRefInput; + } + if (this.cachedReferenceInputs.orderRefInput) { + cached.order = this.cachedReferenceInputs.orderRefInput; + } + if (this.cachedReferenceInputs.stakingVaultRefInput) { + cached.stakingVault = this.cachedReferenceInputs.stakingVaultRefInput; + } + // V1.0 additional protocol scripts + if (this.cachedReferenceInputs.protocolMintRefInput) { + cached.protocolMint = this.cachedReferenceInputs.protocolMintRefInput; + } + if (this.cachedReferenceInputs.protocolStakeRefInput) { + cached.protocolStake = this.cachedReferenceInputs.protocolStakeRefInput; + } + if (this.cachedReferenceInputs.protocolManagementRefInput) { + cached.protocolManagement = + this.cachedReferenceInputs.protocolManagementRefInput; + } + const result = await getReferenceInputs( + this.blaze, + scriptHashes, + cached, + this.scriptDeploymentAddress, + ); + // Cache fetched values for subsequent calls + if (result.protocol && !this.cachedReferenceInputs.protocolRefInput) { + this.cachedReferenceInputs.protocolRefInput = result.protocol; + } + if (result.proxy && !this.cachedReferenceInputs.proxyRefInput) { + this.cachedReferenceInputs.proxyRefInput = result.proxy; + } + if (result.treasury && !this.cachedReferenceInputs.treasuryRefInput) { + this.cachedReferenceInputs.treasuryRefInput = result.treasury; + } + if (result.order && !this.cachedReferenceInputs.orderRefInput) { + this.cachedReferenceInputs.orderRefInput = result.order; + } + if ( + result.stakingVault && + !this.cachedReferenceInputs.stakingVaultRefInput + ) { + this.cachedReferenceInputs.stakingVaultRefInput = result.stakingVault; + } + // V1.0 additional protocol scripts caching + if ( + result.protocolMint && + !this.cachedReferenceInputs.protocolMintRefInput + ) { + this.cachedReferenceInputs.protocolMintRefInput = result.protocolMint; + } + if ( + result.protocolStake && + !this.cachedReferenceInputs.protocolStakeRefInput + ) { + this.cachedReferenceInputs.protocolStakeRefInput = result.protocolStake; + } + if ( + result.protocolManagement && + !this.cachedReferenceInputs.protocolManagementRefInput + ) { + this.cachedReferenceInputs.protocolManagementRefInput = + result.protocolManagement; + } + return result; + } + + /** + * Resolve the bootstrap UTXO from the provider. + * This will fail if the UTXO has already been consumed (i.e., the one-shot token was minted). + */ + protected async resolveBootstrapUtxo(): Promise { + const utxos = await this.blaze.provider.resolveUnspentOutputs([ + new Core.TransactionInput( + this.oneShotTxoRef.transaction_id, + this.oneShotTxoRef.output_index, + ), + ]); + const utxo = utxos[0]; + if (!utxo) { + throw new Error( + "Bootstrap UTXO not found. It may have already been consumed (one-shot token already minted).", + ); + } + return utxo; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Common Protocol Operations (shared across all versions) + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Deploy the protocol script as a reference script. + */ + async deployProtocol(): Promise { + return deployScript( + this.blaze, + this.protocolScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Deploy the mint proxy script as a reference script. + */ + async deployMintProxy(): Promise { + return deployScript( + this.blaze, + this.mintProxyScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Register the protocol stake credential. + */ + registerProtocolStake(): TxBuilder { + const stakeCredential = credentialFromScript(this.protocolScript); + const registerTx = this.blaze + .newTransaction() + .addRegisterStake(stakeCredential); + return registerTx; + } + + /** + * Get the protocol reward account. + */ + getProtocolRewardAccount(): Core.RewardAccount { + return rewardAccountFromScript(this.protocolScript, this.network); + } + + /** + * Get version-agnostic proxy settings. + * Extracts only the common fields shared across V0_2+ protocol versions. + */ + async getSettings(): Promise { + const { parsedProxyDatum } = await this.getParsedProxyDatum(); + const settings = (parsedProxyDatum as { settings?: unknown }).settings; + + if (isFlatProxySettings(settings)) { + return { + mint_permission: settings.mint_permission, + burn_permission: settings.burn_permission, + withdraw_permission: settings.withdraw_permission, + deposit_permission: settings.deposit_permission, + stake_permission: settings.stake_permission, + unstake_permission: settings.unstake_permission, + reserve_assets: settings.reserve_assets, + }; + } + + if (isNestedProxySettings(settings)) { + return { + mint_permission: settings.permissions.mint, + burn_permission: settings.permissions.burn, + withdraw_permission: settings.permissions.withdraw, + deposit_permission: settings.permissions.deposit, + stake_permission: settings.permissions.stake, + unstake_permission: settings.permissions.unstake, + reserve_assets: settings.config.reserve_assets, + }; + } + + throw new Error( + `getSettings() is not supported for protocol version ${this.version}`, + ); + } + + /** The USDr asset ID (stablecoin policy + USDr asset name). */ + getUsdrAssetId(): Core.AssetId { + return Core.AssetId(this.stablecoinPolicyId + this.assetNameHex); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Timelock Operations (shared across versions with staking support) + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a transaction that claims USDr locked in a timelock address after + * the unstake cooldown has expired. + * + * Reconstructs the timelock native script for the owner's key hash and the + * original unlock slot, then spends the UTxO. `owner` is the timelock owner + * (defaults to the connected wallet) and is set as the required signer, so a + * custodian holding the user's key can claim. The released USDr goes to + * `destination`, or to `owner` when only an owner is given; with neither it + * returns to the connected wallet. + * + * A single owner key has two timelock shapes in the protocol, differing only + * in element order: `buildUnstakeOrderTx` locks to + * `AllOf { Signature, After }` and the treasury/multisig unstake path to + * `AllOf { After, Signature }`. They hash differently, so which one applies + * is read off the UTxO's own locking address rather than assumed. + */ + async buildClaimTimelockTx(params: { + resultUtxo: { txHash: string; index: number }; + unlockSlot: bigint; + owner?: Core.Address; + destination?: Core.Address; + }): Promise { + const ownerAddress = + params.owner ?? (await this.blaze.wallet.getChangeAddress()); + const ownerKeyHash = ownerAddress.getProps().paymentPart?.hash; + if (!ownerKeyHash) { + throw new Error("Timelock owner address has no payment key credential"); + } + + const input = new Core.TransactionInput( + Core.TransactionId(params.resultUtxo.txHash), + BigInt(params.resultUtxo.index), + ); + const [utxo] = await this.blaze.provider.resolveUnspentOutputs([input]); + if (!utxo) { + throw new Error( + `Could not resolve UTxO ${params.resultUtxo.txHash}#${params.resultUtxo.index}`, + ); + } + + const nativeScript = resolveTimelockNativeScript( + utxo.output().address(), + ownerKeyHash, + params.unlockSlot, + ); + const scriptWrapped = Core.Script.newNativeScript(nativeScript); + + const tx = this.newOrderTransaction() + .setValidFrom(Core.Slot(Number(params.unlockSlot))) + .provideScript(scriptWrapped) + .addRequiredSigner(Core.Ed25519KeyHashHex(ownerKeyHash)) + .addInput(utxo); + + // Route funds to `destination`, else to an explicit `owner` (so a custodial + // claim reaches the user); with neither, value returns to the connected + // wallet as change. + const recipient = params.destination ?? params.owner; + if (recipient) { + addDirectOutput(tx, recipient, utxo.output().amount()); + } + + return tx; + } + + /** + * Fetch the live proxy UTxO and inline datum without attempting a + * version-specific parse. Cached after first fetch. + * + * `readSingletonDatum` both retries the lookup (a not-found answer is the + * provider's index lagging the UTxO's latest move, not a missing proxy — + * Blockfrost returns HTTP 404 in that window, Sentry TREASURY-ADMIN-API-G) + * and repairs a datum the provider reports as a hash. + */ + async getRawProxyDatum(): Promise { + if (this.cachedRawProxyDatumResult) { + return this.cachedRawProxyDatumResult; + } + if (this.cachedProxyDatumResult) { + const { proxyUtxo, proxyDatum } = this.cachedProxyDatumResult; + this.cachedRawProxyDatumResult = { proxyUtxo, proxyDatum }; + return this.cachedRawProxyDatumResult; + } + + const { utxo: proxyUtxo, datum: proxyDatum } = await readSingletonDatum( + this.blaze.provider, + Core.AssetId(this.oneShotPolicyId), + ); + + const result = { proxyUtxo, proxyDatum }; + this.cachedRawProxyDatumResult = result; + return result; + } + + /** + * @deprecated Use getParsedProxyDatum() or getRawProxyDatum() depending on + * whether the caller needs a version-specific schema parse. + */ + async getProxyDatum(): Promise> { + return this.getParsedProxyDatum(); + } + + // Abstract methods - each version must implement these + abstract getParsedProxyDatum(): Promise>; + abstract mintOneShot( + receiverAddress: Core.Address, + datum: unknown, + ): Promise<{ + tx: TxBuilder; + policyId: Core.PolicyId; + }>; + abstract updateOneShotDatum( + receiverAddress: Core.Address, + newDatum: unknown, + ): Promise; +} diff --git a/modules/realfi-partner-sdk/src/sdk/shared/cancel.ts b/modules/realfi-partner-sdk/src/sdk/shared/cancel.ts new file mode 100644 index 0000000000..022f90636a --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/cancel.ts @@ -0,0 +1,75 @@ +import { parse } from "@blaze-cardano/data"; +import type { Core } from "@blaze-cardano/sdk"; + +import type { TMultisigScript, TProtocolVersion } from "./types.js"; +import { + getInlineDatumFromUtxo, + parseOrderOwnerGenericFromDatum, +} from "./utils.js"; + +const parseOwnerField = ( + schema: Parameters[0], + datum: Core.PlutusData, +): TMultisigScript => { + return (parse(schema, datum) as { owner: TMultisigScript }).owner; +}; + +/** + * Parse an order owner for cancel flows. + * + * Behavior: + * - no version hint: use strict generic owner parsing immediately + * - with version hint: try the hinted schema first + * - hinted parse failure: fall back to strict generic owner parsing + */ +export async function parseCancelOwner( + utxo: Core.TransactionUnspentOutput, + versionHint?: TProtocolVersion, +): Promise { + const datum = getInlineDatumFromUtxo(utxo); + + if (!versionHint) { + return parseOrderOwnerGenericFromDatum(datum); + } + + try { + switch (versionHint) { + case "V1_0": { + const { OrderDatumV1 } = + await import("../../generated-types/v1_0/index.js"); + return parseOwnerField(OrderDatumV1, datum); + } + + case "V1_0_Rc1": { + const { OrderDatumV1 } = + await import("../../generated-types/v1_0_rc1/index.js"); + return parseOwnerField(OrderDatumV1, datum); + } + + case "V1_1_Rc1": { + const { OrderDatumV1 } = + await import("../../generated-types/v1_1_rc1/index.js"); + return parseOwnerField(OrderDatumV1, datum); + } + + case "V0_4": { + const { OrderDatum } = + await import("../../generated-types/v0_4/index.js"); + return parseOwnerField(OrderDatum, datum); + } + + case "V0_3": { + const { OrderDatum } = + await import("../../generated-types/v0_3/index.js"); + return parseOwnerField(OrderDatum, datum); + } + + default: + return parseOrderOwnerGenericFromDatum(datum); + } + } catch { + return parseOrderOwnerGenericFromDatum(datum); + } +} + +export const parseOrderOwnerWithHint = parseCancelOwner; diff --git a/modules/realfi-partner-sdk/src/sdk/shared/client-id.ts b/modules/realfi-partner-sdk/src/sdk/shared/client-id.ts new file mode 100644 index 0000000000..a4f7a2ccfe --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/client-id.ts @@ -0,0 +1,9 @@ +// Builder/API origin: "partner-sdk" for the curated "." entry, "internal-sdk" for all other uses. +export type TClientSource = "partner-sdk" | "internal-sdk"; + +// Placeholder version; the publish pipeline injects the released version into +// the built output. Unreleased source (monorepo, first-party) reports the +// placeholder as-is. +export const SDK_VERSION = "0.0.0-dev"; + +export const DEFAULT_CLIENT_SOURCE: TClientSource = "internal-sdk"; diff --git a/modules/realfi-partner-sdk/src/sdk/shared/detect-params.ts b/modules/realfi-partner-sdk/src/sdk/shared/detect-params.ts new file mode 100644 index 0000000000..13196e6e46 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/detect-params.ts @@ -0,0 +1,677 @@ +import { toHex } from "@blaze-cardano/core"; +import { parse } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { Core } from "@blaze-cardano/sdk"; + +import { BaseTypes } from "../../generated-types/index.js"; +import { readSingletonDatum } from "./utils.js"; +import { NETWORK_REGISTRY, type TNetworkPreset } from "./network-registry.js"; +import type { IRealfiSDKParamsV0_4 } from "../v0_4/index.js"; +import type { IRealfiSDKParamsV1_0 } from "../v1_0/index.js"; +import type { IRealfiSDKParamsV1_0Rc1 } from "../v1_0_rc1/index.js"; +import type { IRealfiSDKParamsV1_1Rc1 } from "../v1_1_rc1/index.js"; + +export type { TNetworkPreset } from "./network-registry.js"; +export { NETWORK_REGISTRY } from "./network-registry.js"; + +export type TDetectedSDKParams = + | IRealfiSDKParamsV0_4 + | IRealfiSDKParamsV1_0 + | IRealfiSDKParamsV1_0Rc1 + | IRealfiSDKParamsV1_1Rc1; + +/** + * Default yield_oracle NFT one-shot seed for a deployment that DEFERS the oracle. + * + * The seed only feeds the orchestrator hash at compile time; on-chain it is + * consumed solely when minting the oracle NFT, which a deferred deployment never + * does. An all-zeros tx hash is a valid but permanently un-consumable + * OutputReference, so a deferred deployment can omit the seed entirely and every + * consumer still reconstructs the same orchestrator hash. Supplying a real seed + * overrides this (for a deployment that intends to run the oracle). + */ +// Frozen: this is shared by reference across all omitted-seed detection/SDK +// construction in the process — a consumer mutating txHash/outputIndex would +// otherwise poison every later placeholder-seed reconstruction. +export const YIELD_ORACLE_BOOTSTRAP_PLACEHOLDER = Object.freeze({ + txHash: Core.TransactionId("0".repeat(64)), + outputIndex: 0n, +}); + +export interface IDetectInput { + proxyBootstrap: { txHash: Core.TransactionId; outputIndex: bigint }; + treasuryBootstrap: { txHash: Core.TransactionId; outputIndex: bigint }; + stakingVaultBootstrap: { txHash: Core.TransactionId; outputIndex: bigint }; + /** + * Dedicated yield_oracle NFT one-shot seed. Only V1_1_Rc1 deployments use + * one. When omitted, detection uses the deferred-oracle placeholder; a + * deployment with a live oracle must supply its real seed. + */ + yieldOracleBootstrap?: { txHash: Core.TransactionId; outputIndex: bigint }; + assetNameHex: string; + sUSDrAssetNameHex: string; + enableTrace?: boolean; + /** + * Deployed validator hashes, keyed exactly as in + * `backend/config/env/.protocol.yaml` (e.g. + * `"v1_0/protocol_orchestrator.protocol_orchestrator.withdraw"`). + * + * Detection otherwise derives each version's hash from the Plutus artifacts + * this package bundles, which only identifies a deployment while those + * artifacts stay byte-identical to the ones actually on chain. Supplying the + * blueprint identifies the deployment by what it *is* rather than by what + * this build happens to ship, so regenerating an artifact cannot strand a + * live deployment. + * + * Omitted, derivation is used unchanged. + */ + protocolValidators?: TBlueprintValidators; +} + +/** + * Deployed validator hashes, keyed as in + * `backend/config/env/.protocol.yaml`. + * + * An array carries more than one *generation* of the same deployment — the + * hashes before and after a script cutover. Detection picks the generation + * whose orchestrator matches the chain and applies that one whole, so a + * consumer holding both spans the flip instead of failing closed between the + * on-chain update and its own config reaching it. + * + * Listing both in a single map cannot work and is actively unsafe: the + * override reads exact keys, so one generation's hashes would be applied + * regardless of which one matched, and the SDK would build against addresses + * the chain is not using. + */ +export type TBlueprintValidators = + | Readonly> + | ReadonlyArray>>; + +/** + * The generation whose protocol orchestrator equals the deployed `logic` hash. + * + * A single map is returned when it matches, so existing callers are unchanged. + * Nothing is returned when no generation matches — detection then fails closed + * rather than guessing, which is what stops a mismatched build from locking + * orders at an address nothing watches. + */ +export function selectBlueprintGeneration( + logicHash: Core.ScriptHash, + validators: TBlueprintValidators | undefined, +): Readonly> | undefined { + if (!validators) return undefined; + const generations = Array.isArray(validators) ? validators : [validators]; + return generations.find( + (generation) => + resolveBlueprintVersion(logicHash, generation) !== undefined, + ); +} + +/** + * Version-discriminating view of the live proxy datum, resolved via the + * one-shot NFT (the proxy's stable identity — the UTxO ref changes on every + * settings update, the NFT does not). + */ +export interface IProxyLogicSnapshot { + /** The `logic` script hash — first field of every ProxyDatum variant. */ + logicHash: Core.ScriptHash; + /** All datum constructor fields; index 1 holds the version-specific settings. */ + datumFields: Core.PlutusList; +} + +/** + * Version slot each blueprint validator key belongs to. Keys are the ones used + * in `backend/config/env/.protocol.yaml`, so this map is the single place + * that translates blueprint naming into SDK version naming. + */ +const BLUEPRINT_ORCHESTRATOR_VERSIONS: ReadonlyArray< + readonly [prefix: string, version: TDetectedSDKParams["version"]] +> = [ + ["v1_1_rc1/", "V1_1_Rc1"], + ["v1_0_rc1/", "V1_0_Rc1"], + ["v1_0/", "V1_0"], +]; + +/** + * Which version a deployed `logic` hash belongs to according to the blueprint, + * or undefined when no blueprint was supplied or none of its orchestrators + * matches. + * + * Only orchestrator entries are consulted: the proxy datum's first field is the + * protocol orchestrator hash, so any other validator matching would mean the + * blueprint disagrees with the chain about what a proxy points at. + */ +export function resolveBlueprintVersion( + logicHash: Core.ScriptHash, + validators: Readonly> | undefined, +): TDetectedSDKParams["version"] | undefined { + if (!validators) return undefined; + + for (const [key, hash] of Object.entries(validators)) { + if (hash !== logicHash) continue; + if (!key.includes("protocol_orchestrator")) continue; + + const match = BLUEPRINT_ORCHESTRATOR_VERSIONS.find(([prefix]) => + key.startsWith(prefix), + ); + if (match) return match[1]; + } + return undefined; +} + +/** + * Compute the one-shot policy id from the proxy bootstrap reference. + * Deterministic and local — no provider access. + */ +export function computeOneShotPolicyId( + proxyBootstrap: IDetectInput["proxyBootstrap"], + enableTrace: boolean, +): Core.Hash28ByteBase16 { + return new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: proxyBootstrap.txHash, + output_index: proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script.hash(); +} + +/** + * Fetch the live proxy datum and extract the `logic` script hash. + * Costs exactly one provider lookup. + */ +export async function fetchProxyLogicSnapshot( + provider: Provider, + oneShotPolicyId: Core.Hash28ByteBase16, +): Promise { + const { datum: rawDatum } = await readSingletonDatum( + provider, + Core.AssetId(oneShotPolicyId), + ); + + // All ProxyDatum variants encode as Constr(0, [ByteArray(28 bytes), ]). + // The first field is always the `logic` ScriptHash, regardless of version. + const constr = rawDatum.asConstrPlutusData(); + if (!constr) { + throw new Error("Proxy datum is not a constructor PlutusData"); + } + const fields = constr.getData(); + const logicBytes = fields.get(0).asBoundedBytes(); + if (!logicBytes) { + throw new Error( + "First constructor field is not bytes (expected ScriptHash)", + ); + } + return { + logicHash: toHex(logicBytes) as Core.ScriptHash, + datumFields: fields, + }; +} + +/** + * Detect the active SDK version by reading the proxy datum on-chain. + * + * Phase 1: Extract the `logic` script hash from the proxy datum using raw CBOR + * access, avoiding the chicken-and-egg problem where the datum schema differs + * per version. + * + * Phase 2: Compare the extracted hash against expected protocol hashes computed + * deterministically from `proxyBootstrap`. Each version's generated-types + * module is dynamic-imported only when its turn comes — so on a V1_0_Rc1 + * deployment the V1_0 types chunk (~52 KB gzip / ~214 KB raw) is never + * fetched. Vite's chunk splitter creates one chunk per `await import()` site, + * so the chunk topology mirrors the version branches without needing + * a separate matcher file per version. + * + * Priority order: V1_0_Rc1 → V1_0 → V0_4. Latest-deployed-version-first so + * that on the current production environments (which are on V1_0_Rc1), the + * very first matcher succeeds and no additional version chunks are fetched + * to fail a mismatch check first. Rc1 stays ahead of V1_0 so that during the + * transitional period where both SDK slots resolve to byte-identical scripts + * (Rc1 is a module-path-only duplicate of V1_0), we prefer the Rc1 path — + * once V1_0 evolves on-chain, the two hashes diverge and each branch catches + * its own deployment automatically. V0_4 stays as the legacy fallback. + * + * **Re-evaluate this order if V0_4 ever becomes a primary production + * deployment again** — every session on a V0_4-only environment would pay + * two failed-hash-check fetches (V1_0_Rc1 + V1_0) before reaching V0_4. + * + * Throws `UnknownProtocolVersionError` if the `logic` hash does not match any + * known version. + * + * `config` also accepts a network preset name (`"mainnet"`, `"preprod"`, + * `"preview"`) in place of an explicit {@link IDetectInput} — resolved via + * {@link NETWORK_REGISTRY}. Custom deployments still pass an explicit config. + */ +export async function detectSDKParams( + provider: Provider, + config: IDetectInput, +): Promise; +export async function detectSDKParams( + provider: Provider, + network: TNetworkPreset, +): Promise; +export async function detectSDKParams( + provider: Provider, + config: IDetectInput | TNetworkPreset, +): Promise { + if (typeof config === "string" && !Object.hasOwn(NETWORK_REGISTRY, config)) { + throw new Error( + `Unknown network preset "${config}" — expected one of: ${Object.keys( + NETWORK_REGISTRY, + ).join(", ")}`, + ); + } + const resolved = + typeof config === "string" + ? NETWORK_REGISTRY[config as TNetworkPreset] + : config; + const enableTrace = resolved.enableTrace ?? false; + + // ── Phase 1: Compute oneshot policy and fetch proxy datum ───────────────── + + const oneShotPolicyId = computeOneShotPolicyId( + resolved.proxyBootstrap, + enableTrace, + ); + const snapshot = await fetchProxyLogicSnapshot(provider, oneShotPolicyId); + + return matchProtocolVersion(snapshot, oneShotPolicyId, resolved); +} + +/** + * Phase 2 of detection: match an already-fetched `logic` hash against each + * known version's expected hash. Local-only — dynamic imports and hash + * computation, no provider access — so a caller holding a fresh + * `IProxyLogicSnapshot` can re-resolve the version without another lookup. + */ +export async function matchProtocolVersion( + snapshot: IProxyLogicSnapshot, + oneShotPolicyId: Core.Hash28ByteBase16, + config: IDetectInput, +): Promise { + const enableTrace = config.enableTrace ?? false; + const { logicHash, datumFields: fields } = snapshot; + + // Which version the supplied blueprint says this `logic` hash belongs to, if + // any. Matching on the deployed hash rather than a derived one is what keeps + // a regenerated artifact from stranding a live deployment: the blueprint + // records what the chain runs, this build only records what it ships. + // + // Deliberately exact-match and fail-closed — a blueprint authorises the one + // deployment it names, never anything that merely looks the same shape. + // Pick the generation the chain is actually on before reading anything from + // it, so version and script hashes always come from the same generation. A + // cutover otherwise has a window where the datum names new scripts and the + // config still names old ones (or the reverse), and every consumer in it + // fails closed until its config catches up. + const deployedGeneration = selectBlueprintGeneration( + logicHash, + config.protocolValidators, + ); + const blueprintVersion = resolveBlueprintVersion( + logicHash, + deployedGeneration, + ); + // A non-empty supplied generation makes the blueprint authoritative. A miss + // does not consult derivation: blueprintVersion stays undefined, every + // matchesV1Version check fails, and detection throws + // UnknownProtocolVersionError. + const suppliedGenerations = Array.isArray(config.protocolValidators) + ? config.protocolValidators + : config.protocolValidators + ? [config.protocolValidators] + : []; + const hasAuthoritativeBlueprint = suppliedGenerations.some( + (generation) => Object.keys(generation).length > 0, + ); + const matchesV1Version = ( + derivedHash: Core.ScriptHash, + version: "V1_0" | "V1_0_Rc1" | "V1_1_Rc1", + ): boolean => + hasAuthoritativeBlueprint + ? blueprintVersion === version + : logicHash === derivedHash; + + // ── Try each version's hash candidate ───────────────────────────────────── + // + // Each version dynamic-imports its types from its own subpath module, and + // **destructures named exports at the await site** so Vite can statically + // see which specific classes are used and tree-shake the rest of the + // generated-types module (each version's index.ts has ~70 top-level + // exports; each branch needs only 1-5). + + // V1_1_Rc1 — orchestrator hash + backward-compat flag detection. + // Checked first: latest-deployed-version-first, so environments on + // V1_1_Rc1 match on the first attempt with no failed-mismatch chunk fetches. + { + const { + V1_1Rc1ProtocolMintProtocolMintWithdraw, + V1_1Rc1ProtocolStakeProtocolStakeWithdraw, + V1_1Rc1ProtocolManagementProtocolManagementWithdraw, + V1_1Rc1ProtocolOrchestratorProtocolOrchestratorWithdraw, + V1_1Rc1YieldOracleYieldOracleMint, + SettingsV1: SettingsV1_1Rc1Schema, + } = await import("../../generated-types/v1_1_rc1/index.js"); + // eslint-disable-next-line @typescript-eslint/naming-convention + type TSettingsV1_1Rc1 = typeof SettingsV1_1Rc1Schema extends { + static: infer T; + } + ? T + : never; + + const protocolMintHashV1_1Rc1 = new V1_1Rc1ProtocolMintProtocolMintWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const protocolStakeHashV1_1Rc1 = + new V1_1Rc1ProtocolStakeProtocolStakeWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const protocolManagementHashV1_1Rc1 = + new V1_1Rc1ProtocolManagementProtocolManagementWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + // A deferred oracle omits the seed; default to the placeholder so a + // V1_1_Rc1 deployment is still recognized without any seed config. A real + // seed (for a deployment that runs the oracle) overrides it. Either way the + // block below always runs — the exact hash comparison alone decides whether + // this is actually a V1_1_Rc1 proxy, so a V1_0/older proxy simply won't + // match and falls through. + const yieldOracleBootstrap = + config.yieldOracleBootstrap ?? YIELD_ORACLE_BOOTSTRAP_PLACEHOLDER; + { + // The orchestrator's 5th param is the `yield_oracle` *validator* hash — the + // mint+spend validator that holds the oracle UTxO (guarded by ExecuteOrders' + // `no_script_input`), NOT the distribution_oracle logic validator. Because + // yield_oracle is a mint+spend validator, that hash equals the oracle-NFT + // policy id. Derive it the same way RealfiSDKV1_1Rc1.create does so the + // recomputed orchestrator hash matches the deployed logic hash. + const oracleNftPolicyIdV1_1Rc1 = new V1_1Rc1YieldOracleYieldOracleMint( + { + transaction_id: yieldOracleBootstrap.txHash, + output_index: yieldOracleBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const orchestratorHashV1_1Rc1 = + new V1_1Rc1ProtocolOrchestratorProtocolOrchestratorWithdraw( + oneShotPolicyId, + protocolMintHashV1_1Rc1, + protocolStakeHashV1_1Rc1, + protocolManagementHashV1_1Rc1, + oracleNftPolicyIdV1_1Rc1, + enableTrace, + ).Script.hash(); + + if (matchesV1Version(orchestratorHashV1_1Rc1, "V1_1_Rc1")) { + const settingsData = fields.get(1); + const settings = parse( + SettingsV1_1Rc1Schema, + settingsData, + ) as TSettingsV1_1Rc1; + const registry = settings.registry; + + const { V0_1TreasuryTreasurySpend } = + await import("../../generated-types/v0_1/index.js"); + const { V0_4StakingVaultStakingVaultSpend } = + await import("../../generated-types/v0_4/index.js"); + + const v01TreasuryHash = new V0_1TreasuryTreasurySpend( + { + transaction_id: config.treasuryBootstrap.txHash, + output_index: config.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const useV0_1Treasury = registry.treasury === v01TreasuryHash; + + const v04StakingVaultHash = new V0_4StakingVaultStakingVaultSpend( + { + transaction_id: config.stakingVaultBootstrap.txHash, + output_index: config.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const useV0_4StakingVault = + registry.staking_vault === v04StakingVaultHash; + + return { + version: "V1_1_Rc1", + proxyBootstrap: config.proxyBootstrap, + treasuryBootstrap: config.treasuryBootstrap, + stakingVaultBootstrap: config.stakingVaultBootstrap, + yieldOracleBootstrap, + assetNameHex: config.assetNameHex, + sUSDrAssetNameHex: config.sUSDrAssetNameHex, + enableTrace: config.enableTrace, + useV0_1Treasury: useV0_1Treasury || undefined, + useV0_4StakingVault: useV0_4StakingVault || undefined, + // Identity, not just version: script hashes and the order address are + // otherwise derived from this package's artifacts, which is wrong for a + // chain running different bytes. + deployedValidators: deployedGeneration, + }; + } + } + } + + // V1_0_Rc1 — orchestrator hash + backward-compat flag detection. + // Checked before V1_0 because it's the current production deployment; + // matching early avoids failed-mismatch chunk fetches. + { + const { + V1_0Rc1ProtocolMintProtocolMintWithdraw, + V1_0Rc1ProtocolStakeProtocolStakeWithdraw, + V1_0Rc1ProtocolManagementProtocolManagementWithdraw, + V1_0Rc1ProtocolOrchestratorProtocolOrchestratorWithdraw, + SettingsV1: SettingsV1Rc1Schema, + } = await import("../../generated-types/v1_0_rc1/index.js"); + type TSettingsV1Rc1 = typeof SettingsV1Rc1Schema extends { + static: infer T; + } + ? T + : never; + + const protocolMintHashRc1 = new V1_0Rc1ProtocolMintProtocolMintWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const protocolStakeHashRc1 = new V1_0Rc1ProtocolStakeProtocolStakeWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const protocolManagementHashRc1 = + new V1_0Rc1ProtocolManagementProtocolManagementWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const orchestratorHashRc1 = + new V1_0Rc1ProtocolOrchestratorProtocolOrchestratorWithdraw( + oneShotPolicyId, + protocolMintHashRc1, + protocolStakeHashRc1, + protocolManagementHashRc1, + enableTrace, + ).Script.hash(); + + if (matchesV1Version(orchestratorHashRc1, "V1_0_Rc1")) { + const settingsData = fields.get(1); + const settings = parse( + SettingsV1Rc1Schema, + settingsData, + ) as TSettingsV1Rc1; + const registry = settings.registry; + + // Backward-compat checks: load V0_1 + V0_4 types only after the + // orchestrator hash matches. Same named-export destructuring pattern. + const { V0_1TreasuryTreasurySpend } = + await import("../../generated-types/v0_1/index.js"); + const { V0_4StakingVaultStakingVaultSpend } = + await import("../../generated-types/v0_4/index.js"); + + const v01TreasuryHash = new V0_1TreasuryTreasurySpend( + { + transaction_id: config.treasuryBootstrap.txHash, + output_index: config.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const useV0_1Treasury = registry.treasury === v01TreasuryHash; + + const v04StakingVaultHash = new V0_4StakingVaultStakingVaultSpend( + { + transaction_id: config.stakingVaultBootstrap.txHash, + output_index: config.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const useV0_4StakingVault = + registry.staking_vault === v04StakingVaultHash; + + return { + version: "V1_0_Rc1", + proxyBootstrap: config.proxyBootstrap, + treasuryBootstrap: config.treasuryBootstrap, + stakingVaultBootstrap: config.stakingVaultBootstrap, + assetNameHex: config.assetNameHex, + sUSDrAssetNameHex: config.sUSDrAssetNameHex, + enableTrace: config.enableTrace, + useV0_1Treasury: useV0_1Treasury || undefined, + useV0_4StakingVault: useV0_4StakingVault || undefined, + // Identity, not just version: script hashes and the order address are + // otherwise derived from this package's artifacts, which is wrong for a + // chain running different bytes. + deployedValidators: deployedGeneration, + }; + } + } + + // V1_0 — orchestrator hash + backward-compat flag detection + { + const { + V1_0ProtocolMintProtocolMintWithdraw, + V1_0ProtocolStakeProtocolStakeWithdraw, + V1_0ProtocolManagementProtocolManagementWithdraw, + V1_0ProtocolOrchestratorProtocolOrchestratorWithdraw, + SettingsV1: SettingsV1Schema, + } = await import("../../generated-types/v1_0/index.js"); + type TSettingsV1 = typeof SettingsV1Schema extends { static: infer T } + ? T + : never; + + const protocolMintHash = new V1_0ProtocolMintProtocolMintWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const protocolStakeHash = new V1_0ProtocolStakeProtocolStakeWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const protocolManagementHash = + new V1_0ProtocolManagementProtocolManagementWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const orchestratorHash = + new V1_0ProtocolOrchestratorProtocolOrchestratorWithdraw( + oneShotPolicyId, + protocolMintHash, + protocolStakeHash, + protocolManagementHash, + enableTrace, + ).Script.hash(); + + if (matchesV1Version(orchestratorHash, "V1_0")) { + const settingsData = fields.get(1); + const settings = parse(SettingsV1Schema, settingsData) as TSettingsV1; + const registry = settings.registry; + + const { V0_1TreasuryTreasurySpend } = + await import("../../generated-types/v0_1/index.js"); + const { V0_4StakingVaultStakingVaultSpend } = + await import("../../generated-types/v0_4/index.js"); + + const v01TreasuryHash = new V0_1TreasuryTreasurySpend( + { + transaction_id: config.treasuryBootstrap.txHash, + output_index: config.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const useV0_1Treasury = registry.treasury === v01TreasuryHash; + + const v04StakingVaultHash = new V0_4StakingVaultStakingVaultSpend( + { + transaction_id: config.stakingVaultBootstrap.txHash, + output_index: config.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script.hash(); + const useV0_4StakingVault = + registry.staking_vault === v04StakingVaultHash; + + return { + version: "V1_0", + proxyBootstrap: config.proxyBootstrap, + treasuryBootstrap: config.treasuryBootstrap, + stakingVaultBootstrap: config.stakingVaultBootstrap, + assetNameHex: config.assetNameHex, + sUSDrAssetNameHex: config.sUSDrAssetNameHex, + enableTrace: config.enableTrace, + useV0_1Treasury: useV0_1Treasury || undefined, + useV0_4StakingVault: useV0_4StakingVault || undefined, + // Identity, not just version: script hashes and the order address are + // otherwise derived from this package's artifacts, which is wrong for a + // chain running different bytes. + deployedValidators: deployedGeneration, + }; + } + } + + // V0_4 — protocol withdraw hash only. Legacy fallback; checked last so + // that current-generation deployments don't pay a failed-hash-check load + // of V0_4 types every session. + { + const { V0_4ProtocolProtocolWithdraw } = + await import("../../generated-types/v0_4/index.js"); + const v04ProtocolHash = new V0_4ProtocolProtocolWithdraw( + oneShotPolicyId, + enableTrace, + ).Script.hash(); + + if (logicHash === v04ProtocolHash) { + return { + version: "V0_4", + proxyBootstrap: config.proxyBootstrap, + treasuryBootstrap: config.treasuryBootstrap, + stakingVaultBootstrap: config.stakingVaultBootstrap, + assetNameHex: config.assetNameHex, + sUSDrAssetNameHex: config.sUSDrAssetNameHex, + enableTrace: config.enableTrace, + }; + } + } + + throw new UnknownProtocolVersionError(logicHash); +} + +export class UnknownProtocolVersionError extends Error { + constructor(public readonly logicHash: string) { + super( + `Unrecognized protocol logic hash "${logicHash}". ` + + `The on-chain proxy datum references a script that does not match any known SDK version. ` + + `Update the SDK or check that you are connected to the correct network.`, + ); + this.name = "UnknownProtocolVersionError"; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/shared/errors.ts b/modules/realfi-partner-sdk/src/sdk/shared/errors.ts new file mode 100644 index 0000000000..16cfa55af0 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/errors.ts @@ -0,0 +1,42 @@ +import type { Core } from "@blaze-cardano/sdk"; + +/** + * Thrown by `deployScript` when a reference script with the same hash + * already exists on-chain. The thrown instance carries the existing + * reference UTxO so callers that want to reuse the deployment don't + * need to re-query the provider. + * + * Catch this class specifically when a deployment step should be + * idempotent across reruns (e.g. resuming a partially-failed + * bootstrap or upgrade flow): + * + * ```ts + * try { + * const tx = await sdk.deployProtocol(); + * // ...submit... + * } catch (e) { + * if (e instanceof ScriptAlreadyDeployedError) { + * // Use e.refInput, or just skip this step. + * return; + * } + * throw e; + * } + * ``` + */ +export class ScriptAlreadyDeployedError extends Error { + override readonly name = "ScriptAlreadyDeployedError"; + readonly scriptHash: Core.ScriptHash; + readonly refInput: Core.TransactionUnspentOutput; + + constructor( + scriptHash: Core.ScriptHash, + refInput: Core.TransactionUnspentOutput, + ) { + super( + `Script ${scriptHash} is already deployed as a reference script at ` + + `${refInput.input().transactionId()}#${refInput.input().index()}`, + ); + this.scriptHash = scriptHash; + this.refInput = refInput; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/shared/index.ts b/modules/realfi-partner-sdk/src/sdk/shared/index.ts new file mode 100644 index 0000000000..3654ba4394 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/index.ts @@ -0,0 +1,10 @@ +export * from "./types.js"; +export * from "./utils.js"; +export * from "./base.js"; +export * from "./client-id.js"; +export * from "./detect-params.js"; +export * from "./timelock.js"; +export * from "./reserve-assets.js"; +export * from "./slots.js"; +export * from "./cancel.js"; +export * from "./errors.js"; diff --git a/modules/realfi-partner-sdk/src/sdk/shared/network-registry.ts b/modules/realfi-partner-sdk/src/sdk/shared/network-registry.ts new file mode 100644 index 0000000000..2b5b41c7f7 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/network-registry.ts @@ -0,0 +1,102 @@ +// Per-network on-chain bootstrap references for protocol detection. + +import { Core } from "@blaze-cardano/sdk"; + +import type { IDetectInput } from "./detect-params.js"; + +export type TNetworkPreset = "mainnet" | "preprod" | "preview"; + +// Source of truth: frontend/app/config/{mainnet,preprod,preview}.json +// (proxyBootstrap/treasuryBootstrap/stakingVaultBootstrap, stablecoinAssetName, +// sUSDrAssetName). Update an entry only when that network's protocol is +// redeployed with new bootstrap UTxOs. +// +// Frozen (entry + bootstrap objects): NETWORK_REGISTRY is shared by reference +// into detectSDKParams — a consumer mutating proxyBootstrap.txHash would +// otherwise poison every later detectParams(provider, "mainnet") call. +const freezeBootstrap = < + T extends { txHash: Core.TransactionId; outputIndex: bigint }, +>( + b: T, +): Readonly => Object.freeze(b); + +const freezeDetectInput = (entry: IDetectInput): Readonly => + Object.freeze({ + ...entry, + proxyBootstrap: freezeBootstrap(entry.proxyBootstrap), + treasuryBootstrap: freezeBootstrap(entry.treasuryBootstrap), + stakingVaultBootstrap: freezeBootstrap(entry.stakingVaultBootstrap), + ...(entry.yieldOracleBootstrap + ? { yieldOracleBootstrap: freezeBootstrap(entry.yieldOracleBootstrap) } + : {}), + }); + +export const NETWORK_REGISTRY: Readonly> = + Object.freeze({ + mainnet: freezeDetectInput({ + proxyBootstrap: { + txHash: Core.TransactionId( + "d09c01e21d4ee92b9e58686ca0284288c9c889d8e1a9ab7ab799211a171863ac", + ), + outputIndex: 0n, + }, + treasuryBootstrap: { + txHash: Core.TransactionId( + "d09c01e21d4ee92b9e58686ca0284288c9c889d8e1a9ab7ab799211a171863ac", + ), + outputIndex: 1n, + }, + stakingVaultBootstrap: { + txHash: Core.TransactionId( + "d09c01e21d4ee92b9e58686ca0284288c9c889d8e1a9ab7ab799211a171863ac", + ), + outputIndex: 2n, + }, + assetNameHex: "55534472", + sUSDrAssetNameHex: "7355534472", + }), + preprod: freezeDetectInput({ + proxyBootstrap: { + txHash: Core.TransactionId( + "d9654f43caff2b471bc4db912d8ec6d1932cb48093c3fa2fc3f564519ac855f7", + ), + outputIndex: 0n, + }, + treasuryBootstrap: { + txHash: Core.TransactionId( + "d9654f43caff2b471bc4db912d8ec6d1932cb48093c3fa2fc3f564519ac855f7", + ), + outputIndex: 1n, + }, + stakingVaultBootstrap: { + txHash: Core.TransactionId( + "d9654f43caff2b471bc4db912d8ec6d1932cb48093c3fa2fc3f564519ac855f7", + ), + outputIndex: 2n, + }, + assetNameHex: "55534472", + sUSDrAssetNameHex: "7355534472", + }), + preview: freezeDetectInput({ + proxyBootstrap: { + txHash: Core.TransactionId( + "a32795a0be2dfef61583ab0d7b2c959bbbeab159530dc5a3ef0fa61d94595c99", + ), + outputIndex: 1n, + }, + treasuryBootstrap: { + txHash: Core.TransactionId( + "cf7450305eeaca76ee15a2a863b7d2d272dce7493feae489ec18395cc22b4646", + ), + outputIndex: 2n, + }, + stakingVaultBootstrap: { + txHash: Core.TransactionId( + "17ad2403529298bc8b6a3150069cb0edf55a17e3c334d8b9e0f98ca0e3922bbb", + ), + outputIndex: 0n, + }, + assetNameHex: "55534472", + sUSDrAssetNameHex: "7355534472", + }), + }); diff --git a/modules/realfi-partner-sdk/src/sdk/shared/public.ts b/modules/realfi-partner-sdk/src/sdk/shared/public.ts new file mode 100644 index 0000000000..f2934cce4b --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/public.ts @@ -0,0 +1,16 @@ +// Partner-facing helper subset, exposed as the public `Utils` namespace. +export { + addressToDestination, + destinationToAddress, + getSignatureKeyHashesFromMultisigScript, + getScriptKeyHashesFromMultisigScript, + getAllKeyHashesFromMultisigScript, + normalizeProtocolVersion, + normalizeOrderVersion, +} from "./utils.js"; +export { + findReserveAsset, + usdrToReserve, + usdrToReserveCeil, +} from "./reserve-assets.js"; +export { buildTimelockAddress } from "./timelock.js"; diff --git a/modules/realfi-partner-sdk/src/sdk/shared/reserve-assets.ts b/modules/realfi-partner-sdk/src/sdk/shared/reserve-assets.ts new file mode 100644 index 0000000000..4fc505d0dc --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/reserve-assets.ts @@ -0,0 +1,86 @@ +import type { IReserveAsset } from "./types.js"; + +type TSettingsWithReserveAssets = { + reserve_assets: IReserveAsset[]; +}; + +type TOrderInfoWithReserveAsset = { + reserveAsset?: [string, string]; + amount: bigint; +}; + +/** + * Find a reserve asset config by policy+name from settings. + */ +export function findReserveAsset( + settings: TSettingsWithReserveAssets, + asset: [string, string], +): IReserveAsset { + const found = settings.reserve_assets.find( + (ra) => ra.asset[0] === asset[0] && ra.asset[1] === asset[1], + ); + if (!found) { + throw new Error( + `Reserve asset not found in settings: ${asset[0]}${asset[1]}`, + ); + } + if (found.numerator === 0n) { + throw new Error("Reserve asset numerator must be non-zero"); + } + if (found.denominator === 0n) { + throw new Error("Reserve asset denominator must be non-zero"); + } + return found; +} + +/** + * Convert USDr amount to reserve amount (floor division, protocol-protective for burns). + * Matches on-chain: usdr_to_reserve(amount, ra) = amount * denominator / numerator + */ +export function usdrToReserve(usdrAmount: bigint, ra: IReserveAsset): bigint { + return (usdrAmount * ra.denominator) / ra.numerator; +} + +/** + * Convert USDr amount to reserve amount (ceiling division, protocol-protective for mints). + * Matches on-chain: usdr_to_reserve_ceil(amount, ra) = (amount * denominator + numerator - 1) / numerator + */ +export function usdrToReserveCeil( + usdrAmount: bigint, + ra: IReserveAsset, +): bigint { + return (usdrAmount * ra.denominator + ra.numerator - 1n) / ra.numerator; +} + +/** + * Compute per-reserve-asset deltas from order infos. + * Groups orders by reserve asset and converts USDr amounts to reserve amounts. + * @param negate If true, negate the delta (used for withdraw where amounts are positive but treasury outflow is negative) + */ +export function computeReserveDeltas( + orderInfos: TOrderInfoWithReserveAsset[], + settings: TSettingsWithReserveAssets, + negate: boolean = false, +): Map { + const deltas = new Map(); + const amountsByAsset = new Map(); + + for (const orderInfo of orderInfos) { + const assetKey = orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1]; + amountsByAsset.set( + assetKey, + (amountsByAsset.get(assetKey) ?? 0n) + orderInfo.amount, + ); + } + + for (const [assetKey, totalUsdr] of amountsByAsset.entries()) { + const orderWithAsset = orderInfos.find( + (o) => o.reserveAsset![0] + o.reserveAsset![1] === assetKey, + )!; + const ra = findReserveAsset(settings, orderWithAsset.reserveAsset!); + const reserveAmount = usdrToReserve(negate ? -totalUsdr : totalUsdr, ra); + deltas.set(assetKey, reserveAmount); + } + + return deltas; +} diff --git a/modules/realfi-partner-sdk/src/sdk/shared/slots.ts b/modules/realfi-partner-sdk/src/sdk/shared/slots.ts new file mode 100644 index 0000000000..790d70909a --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/slots.ts @@ -0,0 +1,73 @@ +import type { Provider } from "@blaze-cardano/query"; +import { Core } from "@blaze-cardano/sdk"; + +/** + * The slot/time conversions a slot-alignment needs. Structural (rather than the + * `Provider` class) so callers can pass any provider — Blockfrost, Kupmios, + * `EmulatorProvider` — and tests can pass a plain object with a known slot + * config. Note that `Emulator` (the clock, not its provider) also satisfies this + * shape while rounding the other way; {@link slotFloor} handles both. + */ +export type TSlotClock = Pick; + +/** + * The integer slot that contains `timeMs`: the latest slot that has already + * started at `timeMs`. + * + * `provider.unixToSlot` does **not** floor — it returns + * `(ms - zeroTime) / slotLength + zeroSlot`, so for any wall-clock time that is + * not exactly on a slot boundary it yields a **fractional** slot. Two things + * then go wrong if that value is used as-is: + * + * 1. A tx body stores `invalid_before` / `invalid_hereafter` as **integer** + * slots, and the CBOR writer silently truncates the fraction. The value the + * validator reads is therefore not the value the SDK computed with. + * 2. The round-trip `slotToUnix(unixToSlot(t))` — the natural way to express + * "snap `t` to its slot" — is the *identity* on `t`, not an alignment. + * + * That combination cost us a crashed windowed deposit on preview: the vault + * output's `diffusion_start` kept the sub-slot remainder while the tx's validity + * lower bound was floored, so `validate_deposit_diffusion`'s + * `diffusion_start == now` check failed by that remainder (REALFI-653). The + * emulator hid it because the clock injected in tests is already slot-aligned — + * not because of any provider difference: `EmulatorProvider` extends the same + * `Provider` base and returns the same fractional slots. + * + * Flooring alone would not be enough for a clock that ROUNDS UP: `Emulator` + * itself (as opposed to the `EmulatorProvider` Blaze hands the SDK) implements + * `unixToSlot` with `Math.ceil`, and being structural, `TSlotClock` accepts it. + * Flooring a ceiled slot is a no-op, which would hand back a slot that has not + * started yet. So the candidate is checked against its own start time and walked + * back when it overshoots — a branch no real provider ever takes, and the reason + * the contract above holds for *any* clock rather than only the fractional ones. + * + * **Audit invariant:** `unixToSlot` must not be called anywhere else in the SDK. + * `rg 'unixToSlot' src/` matching only this file *is* the audit — keep it that + * way so a future time→slot conversion cannot reintroduce the bug. + */ +export function slotFloor( + clock: TSlotClock, + timeMs: bigint | number, +): Core.Slot { + const candidate = Math.floor(Number(clock.unixToSlot(timeMs))); + const overshoots = + Number(clock.slotToUnix(Core.Slot(candidate))) > Number(timeMs); + return Core.Slot(overshoots ? candidate - 1 : candidate); +} + +/** + * `timeMs` snapped back to the start of its slot, as POSIX ms — exactly the + * "now" a validator reads from a tx whose validity bound is + * `slotFloor(clock, timeMs)`. Use this for any timestamp that has to equal a + * validity bound on-chain (a diffusion window's `diffusion_start`, a rate quote + * time), so the datum and the tx body cannot disagree. + * + * Idempotent — aligning an already-aligned time is a no-op — so a time derived + * from an aligned one (a backoff, a forward window) can be aligned again safely. + */ +export function slotAlignedTimeMs( + clock: TSlotClock, + timeMs: bigint | number, +): bigint { + return BigInt(clock.slotToUnix(slotFloor(clock, timeMs))); +} diff --git a/modules/realfi-partner-sdk/src/sdk/shared/timelock.ts b/modules/realfi-partner-sdk/src/sdk/shared/timelock.ts new file mode 100644 index 0000000000..74a09fea66 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/timelock.ts @@ -0,0 +1,376 @@ +import { addressFromCredentials } from "@blaze-cardano/core"; +import { Core } from "@blaze-cardano/sdk"; +import type { TClientSource } from "./client-id.js"; +import type { TMultisigScript } from "./types.js"; + +type TDestinationCredentialLike = + | { VerificationKey: [string] } + | { Script: [string] }; + +type TTimelockDestinationLike = { + address: { + payment_credential: TDestinationCredentialLike; + stake_credential?: + | { Inline: [TDestinationCredentialLike] } + | { Pointer: unknown }; + }; +}; + +function bigintToSlot(value: bigint, label: string): Core.Slot { + if (value < 0n || value > BigInt(Number.MAX_SAFE_INTEGER)) { + throw new Error(`${label} must be a non-negative safe integer`); + } + return Core.Slot(Number(value)); +} + +function bigintToNativeScriptCount(value: bigint, label: string): number { + if (value < 0n || value > BigInt(Number.MAX_SAFE_INTEGER)) { + throw new Error(`${label} must be a non-negative safe integer`); + } + return Number(value); +} + +function timelockStartNativeScript(unlockSlot: bigint): Core.NativeScript { + return Core.NativeScript.newTimelockStart( + new Core.TimelockStart(bigintToSlot(unlockSlot, "unlockSlot")), + ); +} + +/** + * Convert the protocol MultisigScript shape to a Cardano native script. + * + * The protocol's `Script` variant references an arbitrary script hash, which + * native scripts cannot require directly, so this helper rejects it. + */ +export function multisigScriptToNativeScript( + multisig: TMultisigScript, +): Core.NativeScript { + if ("Signature" in multisig) { + const hash = Core.Ed25519KeyHashHex(multisig.Signature.key_hash); + return Core.NativeScript.newScriptPubkey(new Core.ScriptPubkey(hash)); + } + if ("AllOf" in multisig) { + return Core.NativeScript.newScriptAll( + new Core.ScriptAll( + multisig.AllOf.scripts.map(multisigScriptToNativeScript), + ), + ); + } + if ("AnyOf" in multisig) { + return Core.NativeScript.newScriptAny( + new Core.ScriptAny( + multisig.AnyOf.scripts.map(multisigScriptToNativeScript), + ), + ); + } + if ("AtLeast" in multisig) { + return Core.NativeScript.newScriptNOfK( + new Core.ScriptNOfK( + multisig.AtLeast.scripts.map(multisigScriptToNativeScript), + bigintToNativeScriptCount( + multisig.AtLeast.required, + "AtLeast.required", + ), + ), + ); + } + if ("Before" in multisig) { + return Core.NativeScript.newTimelockExpiry( + new Core.TimelockExpiry( + bigintToSlot(multisig.Before.time, "Before.time"), + ), + ); + } + if ("After" in multisig) { + return timelockStartNativeScript(multisig.After.time); + } + if ("Script" in multisig) { + throw new Error( + "MultisigScript Script variant cannot be converted to a native script", + ); + } + + throw new Error("Unrecognized MultisigScript variant"); +} + +/** + * Build the native script used for timelock destinations after unstaking. + * + * The script enforces: AllOf { Signature(userKeyHash), After(unlockTime) } + * meaning the user can only spend the locked USDr after the unlock time. + * + * Use this to reconstruct the script when spending from a timelock address. + */ +export function buildTimelockNativeScript( + userKeyHash: string, + unlockTime: bigint, +): Core.NativeScript { + const pubkeyScript = Core.NativeScript.newScriptPubkey( + new Core.ScriptPubkey(Core.Ed25519KeyHashHex(userKeyHash)), + ); + const afterScript = timelockStartNativeScript(unlockTime); + return Core.NativeScript.newScriptAll( + new Core.ScriptAll([pubkeyScript, afterScript]), + ); +} + +/** + * Build the native script used for treasury-managed unstake destinations. + * + * The script enforces: AllOf { After(unlockSlot), ownerMultisigScript }. + */ +export function buildMultisigTimelockNativeScript( + owner: TMultisigScript, + unlockSlot: bigint, +): Core.NativeScript { + return Core.NativeScript.newScriptAll( + new Core.ScriptAll([ + timelockStartNativeScript(unlockSlot), + multisigScriptToNativeScript(owner), + ]), + ); +} + +/** + * Pick the timelock native script that a UTxO is actually locked at. + * + * One owner key and one unlock slot yield two different scripts depending on + * which flow created the timelock: the retail unstake path builds + * `AllOf { Signature, After }` and the treasury/multisig path + * `AllOf { After, Signature }`. Same requirements, different element order, + * different hash. The locking address names the script, so it is the authority + * on which one to provide — guessing produces a witness the ledger cannot + * resolve (Sentry DAPP-58). + * + * Timelocks requiring keys beyond `ownerKeyHash` match neither candidate and + * are rejected here, where the reason can be stated, rather than deep inside + * transaction building. + */ +export function resolveTimelockNativeScript( + lockingAddress: Core.Address, + ownerKeyHash: string, + unlockSlot: bigint, +): Core.NativeScript { + const paymentPart = lockingAddress.getProps().paymentPart; + if (!paymentPart || paymentPart.type !== Core.CredentialType.ScriptHash) { + throw new Error( + `${lockingAddress.toBech32()} is not a script address, so it is not a timelock this wallet can claim`, + ); + } + + const candidates = [ + buildTimelockNativeScript(ownerKeyHash, unlockSlot), + buildMultisigTimelockNativeScript( + { Signature: { key_hash: ownerKeyHash } }, + unlockSlot, + ), + ]; + const match = candidates.find( + (candidate) => candidate.hash() === paymentPart.hash, + ); + if (!match) { + throw new Error( + `Script hash ${paymentPart.hash} is not a timelock this wallet can claim: ` + + `neither timelock shape for owner ${ownerKeyHash} at unlock slot ${unlockSlot} produces it. ` + + `A timelock requiring further keys must be claimed through the flow that created it.`, + ); + } + return match; +} + +/** + * Reconstruct the timelock address for a given user key hash, optional stake + * credential, and unlock slot. Useful for querying the live UTxO set to + * determine whether a claim has already been made. + */ +export function buildTimelockAddress( + networkId: Core.NetworkId, + userKeyHash: string, + unlockSlot: bigint, + stakeCredential?: Core.Credential, +): Core.Address { + const nativeScript = buildTimelockNativeScript(userKeyHash, unlockSlot); + return addressFromCredentials( + networkId, + Core.Credential.fromCore({ + type: Core.CredentialType.ScriptHash, + hash: nativeScript.hash(), + }), + stakeCredential, + ); +} + +/** + * Build a destination that routes funds to a timelock native script while + * preserving the original stake credential. + */ +export function buildTimelockDestination( + userDestination: T, + unlockTime: bigint, +): { + address: { + payment_credential: { Script: [string] }; + stake_credential: T["address"]["stake_credential"]; + }; + datum: "NoDatum"; +} { + const paymentCred = userDestination.address.payment_credential; + let userKeyHash: string; + + if ("VerificationKey" in paymentCred) { + userKeyHash = paymentCred.VerificationKey[0]; + } else { + throw new Error( + "Unstake destination must use a verification key payment credential", + ); + } + + const nativeScript = buildTimelockNativeScript(userKeyHash, unlockTime); + const scriptHash = nativeScript.hash(); + + return { + address: { + payment_credential: { Script: [scriptHash] }, + stake_credential: userDestination.address.stake_credential, + }, + datum: "NoDatum", + }; +} + +function credentialToMetadatum( + cred: TDestinationCredentialLike, +): Core.Metadatum { + const map = new Core.MetadatumMap(); + if ("VerificationKey" in cred) { + map.insert( + Core.Metadatum.newText("VerificationKey"), + Core.Metadatum.newText(cred.VerificationKey[0]), + ); + } else { + map.insert( + Core.Metadatum.newText("Script"), + Core.Metadatum.newText(cred.Script[0]), + ); + } + return Core.Metadatum.newMap(map); +} + +export function destinationToUnstakeMetadatum( + destination: TTimelockDestinationLike, +): Core.Metadatum { + const addressMap = new Core.MetadatumMap(); + addressMap.insert( + Core.Metadatum.newText("payment_credential"), + credentialToMetadatum(destination.address.payment_credential), + ); + + const stakeCredential = destination.address.stake_credential; + if (stakeCredential && "Inline" in stakeCredential) { + const inlineMap = new Core.MetadatumMap(); + inlineMap.insert( + Core.Metadatum.newText("Inline"), + credentialToMetadatum(stakeCredential.Inline[0]), + ); + addressMap.insert( + Core.Metadatum.newText("stake_credential"), + Core.Metadatum.newMap(inlineMap), + ); + } + + return Core.Metadatum.newMap(addressMap); +} + +/** Label 55534472: unstake destination + unlock_time on every unstake order. */ +export const UNSTAKE_METADATA_LABEL = 55534472n; + +/** Build the metadatum for label 55534472 from a destination and unlock slot. */ +export function buildUnstakeMetadatum( + destination: TTimelockDestinationLike, + unlockSlot: bigint, +): Core.Metadatum { + const unstakeMetaMap = new Core.MetadatumMap(); + unstakeMetaMap.insert( + Core.Metadatum.newText("unlock_time"), + Core.Metadatum.newInteger(unlockSlot), + ); + unstakeMetaMap.insert( + Core.Metadatum.newText("destination"), + destinationToUnstakeMetadatum(destination), + ); + return Core.Metadatum.newMap(unstakeMetaMap); +} + +/** Label 55534473: SDK builder origin + version on every order transaction. */ +export const ORDER_ORIGIN_METADATA_LABEL = 55534473n; + +/** Build the metadatum for label 55534473 from a source + version pair. */ +export function buildOrderOriginMetadatum( + source: TClientSource, + sdkVersion: string, +): Core.Metadatum { + const map = new Core.MetadatumMap(); + map.insert(Core.Metadatum.newText("source"), Core.Metadatum.newText(source)); + map.insert( + Core.Metadatum.newText("version"), + Core.Metadatum.newText(sdkVersion), + ); + return Core.Metadatum.newMap(map); +} + +/** Build a Metadata object containing only the origin label (55534473). */ +export function buildOrderOriginMetadata( + source: TClientSource, + sdkVersion: string, +): Core.Metadata { + const metadataMap = new Map(); + metadataMap.set( + ORDER_ORIGIN_METADATA_LABEL, + buildOrderOriginMetadatum(source, sdkVersion), + ); + return new Core.Metadata(metadataMap); +} + +export function buildUnstakeOrderMetadata( + destination: TTimelockDestinationLike, + unlockSlot: bigint, + source: TClientSource, + sdkVersion: string, +): Core.Metadata { + const metadataMap = new Map(); + metadataMap.set( + UNSTAKE_METADATA_LABEL, + buildUnstakeMetadatum(destination, unlockSlot), + ); + metadataMap.set( + ORDER_ORIGIN_METADATA_LABEL, + buildOrderOriginMetadatum(source, sdkVersion), + ); + return new Core.Metadata(metadataMap); +} + +/** + * Build a destination that routes funds to a treasury multisig timelock native + * script while preserving the original stake credential. + */ +export function buildMultisigTimelockDestination< + T extends TTimelockDestinationLike, +>( + destination: T, + owner: TMultisigScript, + unlockSlot: bigint, +): { + address: { + payment_credential: { Script: [string] }; + stake_credential: T["address"]["stake_credential"]; + }; + datum: "NoDatum"; +} { + const nativeScript = buildMultisigTimelockNativeScript(owner, unlockSlot); + return { + address: { + payment_credential: { Script: [nativeScript.hash()] }, + stake_credential: destination.address.stake_credential, + }, + datum: "NoDatum", + }; +} diff --git a/modules/realfi-partner-sdk/src/sdk/shared/types.ts b/modules/realfi-partner-sdk/src/sdk/shared/types.ts new file mode 100644 index 0000000000..902c3568bb --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/types.ts @@ -0,0 +1,142 @@ +import type { Core } from "@blaze-cardano/sdk"; + +/** + * Protocol version identifier + */ +export type TProtocolVersion = + | "V0" + | "V0_1" + | "V0_2" + | "V0_3" + | "V0_4" + | "V1_0" + | "V1_0_Rc1" + | "V1_1_Rc1"; + +/** + * Bootstrap parameters for initializing the SDK + */ +export interface IProxyBootstrap { + txHash: Core.TransactionId; + outputIndex: bigint; +} + +/** + * Base parameters common to all SDK versions + */ +export interface IBaseSDKParams { + version: TProtocolVersion; + proxyBootstrap: IProxyBootstrap; + assetNameHex: string; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Address to deploy reference scripts to (and resolve them from). When set, + * deployment locks reference UTxOs at this address and resolution queries it + * first (a small, fast UTxO set). When omitted, Blaze's burn address is used. + */ + scriptDeploymentAddress?: Core.Address; +} + +/** + * Reference inputs that can be cached for performance + */ +export interface ICachedReferenceInputs { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + treasuryRefInput?: Core.TransactionUnspentOutput; + orderRefInput?: Core.TransactionUnspentOutput; + stakingVaultRefInput?: Core.TransactionUnspentOutput; + // V1.0 additional protocol scripts + protocolMintRefInput?: Core.TransactionUnspentOutput; + protocolStakeRefInput?: Core.TransactionUnspentOutput; + protocolManagementRefInput?: Core.TransactionUnspentOutput; +} + +/** + * Result type for raw proxy-datum fetches. + */ +export interface IRawProxyDatumResult { + proxyUtxo: Core.TransactionUnspentOutput; + proxyDatum: Core.PlutusData; +} + +/** + * Result type for parsed proxy-datum fetches. + */ +export interface IProxyDatumResult extends IRawProxyDatumResult { + parsedProxyDatum: T; +} + +/** + * Result type for getTreasuryDatum operations + */ +export interface ITreasuryDatumResult { + treasuryUtxo: Core.TransactionUnspentOutput; + treasuryDatum: Core.PlutusData; + parsedTreasuryDatum: T; +} + +/** + * Result type for getVaultDatum operations + */ +export interface IVaultDatumResult { + vaultUtxo: Core.TransactionUnspentOutput; + vaultDatum: Core.PlutusData; + parsedVaultDatum: T; +} + +/** + * Output reference type used in scripts + */ +export interface IOutputReference { + transaction_id: Core.TransactionId; + output_index: bigint; +} + +/** + * Version-agnostic MultisigScript. Structurally identical across all + * protocol versions (same Plutus CBOR encoding). + */ +export type TMultisigScript = + | { Signature: { key_hash: string } } + | { AllOf: { scripts: TMultisigScript[] } } + | { AnyOf: { scripts: TMultisigScript[] } } + | { AtLeast: { required: bigint; scripts: TMultisigScript[] } } + | { Before: { time: bigint } } + | { After: { time: bigint } } + | { Script: { script_hash: string } }; + +/** + * Version-agnostic reserve asset. + */ +export interface IReserveAsset { + asset: [string, string]; + numerator: bigint; + denominator: bigint; +} + +/** + * Version-agnostic proxy settings — common fields only. + * Hides version-specific fields (direct_mint/burn_permission, registry shape). + */ +export interface IProxySettings { + mint_permission: TMultisigScript; + burn_permission: TMultisigScript; + withdraw_permission: TMultisigScript; + deposit_permission: TMultisigScript; + stake_permission: TMultisigScript; + unstake_permission: TMultisigScript; + reserve_assets: IReserveAsset[]; +} + +/** + * Permission key — for safely indexing into IProxySettings. + */ +export type TPermissionKey = + | "mint_permission" + | "burn_permission" + | "withdraw_permission" + | "deposit_permission" + | "stake_permission" + | "unstake_permission"; diff --git a/modules/realfi-partner-sdk/src/sdk/shared/utils.ts b/modules/realfi-partner-sdk/src/sdk/shared/utils.ts new file mode 100644 index 0000000000..f43428b91d --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/shared/utils.ts @@ -0,0 +1,1319 @@ +import { addressFromCredentials } from "@blaze-cardano/core"; +import { parse, type TSchema } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + Core, + TxBuilder, + type Blaze, + type CIP30DataSignature, + type Wallet, +} from "@blaze-cardano/sdk"; + +import * as Data from "@blaze-cardano/data"; +import { + SignatureList, + type Destination, +} from "../../generated-types/v0_3/index.js"; +import { ScriptAlreadyDeployedError } from "./errors.js"; +import { V0_3Types } from "../../generated-types/index.js"; +import type { TMultisigScript, TProtocolVersion } from "./types.js"; + +type TDestinationCredentialLike = + | { VerificationKey: [string] } + | { Script: [string] }; + +type TDestinationLike = { + address: { + payment_credential: TDestinationCredentialLike; + stake_credential?: { Inline: [TDestinationCredentialLike] } | unknown; + }; + datum: + | "NoDatum" + | { DatumHash: [string] } + | { InlineDatum: [Core.PlutusData | unknown] }; +}; + +/** + * Create a reward account from a script + */ +export function rewardAccountFromScript( + script: Core.Script, + network: Core.NetworkId, +): Core.RewardAccount { + const credential = credentialFromScript(script); + return Core.RewardAccount.fromCredential(credential.toCore(), network); +} + +/** + * Create a credential from a script + */ +export function credentialFromScript(script: Core.Script): Core.Credential { + return credentialFromScriptHash(script.hash()); +} + +/** + * Create a credential from a script hash + */ +export function credentialFromScriptHash( + scriptHash: Core.Hash28ByteBase16, +): Core.Credential { + return Core.Credential.fromCore({ + type: Core.CredentialType.ScriptHash, + hash: scriptHash, + }); +} + +/** + * Send a value (with an attached datum) to either a key-credentialled or + * script-credentialled address. This helper emits an explicit output for + * the destination address so callers (mintOneShot / updateOneShotDatum / + * etc.) work transparently in both single-signer and multisig deployments. + * + * Mutates `tx` (matching Blaze's builder pattern) and returns it for chaining. + */ +export function lockOrPayAssets( + tx: TxBuilder, + address: Core.Address, + value: Core.Value, + datum: Core.PlutusData, +): TxBuilder { + return addDirectOutput(tx, address, value, datum); +} + +/** + * Add an explicit transaction output for the target address and value. + * + * Mutates `tx` and returns it for call sites that want to keep builder-style + * chaining. + */ +export function addDirectOutput( + tx: TxBuilder, + address: Core.Address, + value: Core.Value, + datum?: Core.PlutusData, +): TxBuilder { + const output = new Core.TransactionOutput(address, value); + if (datum) { + output.setDatum(Core.Datum.newInlineData(datum)); + } + tx.addOutput(output); + return tx; +} + +/** + * Blockfrost responds to `getUnspentOutputs` on an unused address with HTTP + * 404 ("requested component has not been found"), which the provider surfaces + * as a generic Error. Treat only that exact failure as "not found at this + * address" so outages and malformed responses still propagate. + * + * The query path is matched with an optional leading slash: @blaze-cardano/query + * builds `/addresses/...`, while a caller paging the same endpoint itself builds + * `addresses/...` (Blockfrost's base url already ends in `/`). The cron carries + * a matcher for the same message + * (`cli/src/scripts/lib/order-utxo-fetch.ts`); keep the two in step. + */ +const BLOCKFROST_ADDRESS_NOT_FOUND = + /^getUnspentOutputs: Blockfrost threw "The requested component has not been found\." for query: \/?addresses\//; + +function isBlockfrostAddressNotFoundError(error: unknown): boolean { + return ( + error instanceof Error && BLOCKFROST_ADDRESS_NOT_FOUND.test(error.message) + ); +} + +/** + * Fully resolve the address's current unspent outputs. + * + * Blockfrost can expose a reference script through the transaction-output + * endpoint before (or without) hydrating `reference_script_hash` on the address + * UTxO endpoint. Re-resolving the inputs returned by the address query + * preserves the unspent-only constraint while recovering the full output + * metadata from the exact transactions. + */ +async function hydrateUnspentOutputs

( + blaze: Blaze, + address: Core.Address, +): Promise { + const unspent = await blaze.provider.getUnspentOutputs(address); + if (unspent.length === 0) return []; + return blaze.provider.resolveUnspentOutputs( + unspent.map((utxo) => utxo.input()), + ); +} + +/** + * A `hydrateUnspentOutputs` call shared by every hash resolved against the same + * address in one pass. Hydration costs one provider request per UTxO at the + * address, so a caller resolving eight script hashes against a provider that + * omits script metadata would otherwise pay the whole sweep eight times, and + * the dapp runs this against a rate-limited Blockfrost proxy. Scoped to a + * single call rather than cached on the SDK so a later pass still sees a script + * deployed in the meantime. + */ +type THydrateAddress = () => Promise; + +function shareHydration

( + blaze: Blaze, + address: Core.Address, +): THydrateAddress { + let pending: Promise | undefined; + return () => (pending ??= hydrateUnspentOutputs(blaze, address)); +} + +/** + * Resolve a script reference at a specific address, tolerating Blockfrost's + * throw for an address with no history instead of an empty result, and its + * missing script metadata on the address UTxO endpoint. + */ +async function resolveScriptRefAtAddress

( + blaze: Blaze, + hash: Core.Hash28ByteBase16, + address: Core.Address, + hydrate: THydrateAddress = () => hydrateUnspentOutputs(blaze, address), +): Promise { + try { + const resolved = await blaze.provider.resolveScriptRef(hash, address); + if (resolved) return resolved; + } catch (error) { + if (!isBlockfrostAddressNotFoundError(error)) throw error; + return undefined; + } + + const hydrated = await hydrate(); + return hydrated.find((utxo) => utxo.output().scriptRef()?.hash() === hash); +} + +/** + * Deploy a script as a reference script. + * + * When `address` is provided, the reference UTxO is locked at that address + * (instead of Blaze's default burn address), which lets resolution query a + * small, dedicated UTxO set rather than the shared burn address. + * + * Throws `ScriptAlreadyDeployedError` (carrying the existing reference + * UTxO) if the script is already deployed *at the target location* — the + * specified `address` when given, otherwise the burn-address default. The + * guard is intentionally scoped to the deploy target only: a copy that + * exists elsewhere (e.g. a legacy copy at the burn address) does NOT block + * deploying to a newly specified address, which is exactly what a migration + * needs. Callers that want idempotent reruns should catch that specific class. + */ +export async function deployScript

( + blaze: Blaze, + script: Core.Script, + address?: Core.Address, +): Promise { + const refInput = address + ? await resolveScriptRefAtAddress(blaze, script.hash(), address) + : await blaze.provider.resolveScriptRef(script.hash()); + if (refInput) { + throw new ScriptAlreadyDeployedError(script.hash(), refInput); + } + // `address === undefined` -> Blaze locks the script at the burn address. + const deployTx = blaze.newTransaction().deployScript(script, address); + return deployTx; +} + +const NFT_LOOKUP_ATTEMPTS = 3; +const NFT_LOOKUP_BACKOFF_MS = 250; + +const sleep = (ms: number): Promise => + new Promise((resolve) => setTimeout(resolve, ms)); + +/** + * Look up an NFT UTxO, retrying indexer lag after the output moves. + * Treats both a thrown 404 and an empty result as lag. Re-throws the last + * provider error when the budget is exhausted. + */ +export async function getUnspentOutputByNftWithRetry( + provider: Provider, + assetId: Core.AssetId, +): Promise { + let lastError: unknown; + for (let attempt = 1; attempt <= NFT_LOOKUP_ATTEMPTS; attempt++) { + try { + const utxo = await provider.getUnspentOutputByNFT(assetId); + if (utxo) return utxo; + lastError = undefined; + } catch (error) { + lastError = error; + } + if (attempt < NFT_LOOKUP_ATTEMPTS) { + await sleep(NFT_LOOKUP_BACKOFF_MS * attempt); + } + } + if (lastError) throw lastError; + return undefined; +} + +/** + * Rebuild `utxo` with `datum` attached inline, preserving its input ref, + * address, value and reference script. + */ +function withInlineDatum( + utxo: Core.TransactionUnspentOutput, + datum: Core.PlutusData, +): Core.TransactionUnspentOutput { + const output = utxo.output(); + const promoted = new Core.TransactionOutput( + output.address(), + output.amount(), + ); + promoted.setDatum(Core.Datum.newInlineData(datum)); + const scriptRef = output.scriptRef(); + if (scriptRef) { + promoted.setScriptRef(scriptRef); + } + return new Core.TransactionUnspentOutput(utxo.input(), promoted); +} + +/** + * Read an NFT singleton (proxy, treasury, vault) and its datum. + * + * Protocol singletons are locked inline. A hash-form read is a provider + * artifact (Blockfrost omitting `inline_datum`). Validators require + * `InlineDatum` on the singleton input; passing the preimage as `addInput`'s + * 3rd arg is a supplemental witness datum that local eval and phase-1 reject. + * Resolve the hash, verify the preimage, and reattach it inline. + * + * The lookup is retried: a singleton always exists, so a not-found answer is + * the provider's index lagging the UTxO's latest move, not a missing singleton. + */ +export async function readSingletonDatum( + provider: Provider, + nftAssetId: Core.AssetId, +): Promise<{ + utxo: Core.TransactionUnspentOutput; + datum: Core.PlutusData; +}> { + const read = await getUnspentOutputByNftWithRetry(provider, nftAssetId); + if (!read) { + throw new Error(`No UTXO found with NFT: ${nftAssetId}`); + } + + const inline = read.output().datum()?.asInlineData(); + if (inline) { + return { utxo: read, datum: inline }; + } + + const datumHash = read.output().datum()?.asDataHash(); + if (!datumHash) { + throw new Error(`No datum found in UTXO with NFT: ${nftAssetId}`); + } + + const resolved = await provider.resolveDatum(datumHash); + const preimageHash = Core.blake2b_256(resolved.toCbor()); + if (preimageHash !== datumHash) { + throw new Error( + `Datum resolved for UTXO with NFT ${nftAssetId} does not match its datum hash: ` + + `resolved preimage hashes to ${preimageHash}, UTXO reports ${datumHash}`, + ); + } + + const input = read.input(); + console.warn( + `[realfi-sdk] singleton ${nftAssetId} read at ${input.transactionId()}#${input.index()} ` + + `reported datum hash ${datumHash} instead of its inline datum; reattaching the resolved preimage inline`, + ); + return { utxo: withInlineDatum(read, resolved), datum: resolved }; +} + +/** + * Get datum from a UTxO containing a specific NFT, optionally parsed under + * `datumSchema`. Datum-hash reads are repaired by {@link readSingletonDatum}. + */ +export async function getDatumFromNFT< + P extends Provider, + W extends Wallet, + T = unknown, +>( + blaze: Blaze, + nftAssetId: Core.AssetId, + datumSchema?: TSchema, +): Promise<{ + utxo: Core.TransactionUnspentOutput; + datum: Core.PlutusData; + parsedDatum: T; +}> { + const { utxo, datum } = await readSingletonDatum(blaze.provider, nftAssetId); + + if (datumSchema) { + const parsedDatum = parse(datumSchema, datum) as T; + return { utxo, datum, parsedDatum }; + } + + return { utxo, datum, parsedDatum: undefined as T }; +} + +/** + * Get script reference inputs, using cached values when available. + * + * When `address` is provided, each script is resolved at that address first + * (a fast, dedicated query) and only falls back to Blaze's burn-address + * default if it isn't found there. This keeps previously burn-address-deployed + * scripts resolvable while migrating to a specified deployment address. + */ +export async function getReferenceInputs

( + blaze: Blaze, + scriptHashes: Record, + cachedInputs?: Partial>, + address?: Core.Address, +): Promise> { + const referenceInputs: Record = {}; + const hydrate = address ? shareHydration(blaze, address) : undefined; + + for (const [name, hash] of Object.entries(scriptHashes)) { + if (cachedInputs?.[name]) { + referenceInputs[name] = cachedInputs[name]; + continue; + } + + const refInput = + (address && + (await resolveScriptRefAtAddress(blaze, hash, address, hydrate))) || + (await blaze.provider.resolveScriptRef(hash)); + if (!refInput) { + throw new Error( + `No reference input found for ${name} script (${hash}). Make sure it is deployed.`, + ); + } + referenceInputs[name] = refInput; + } + + return referenceInputs; +} + +/** + * Extract signature key hashes from a multisig script + */ +export const getSignatureKeyHashesFromMultisigScript = ( + multisig: TMultisigScript, +): string[] => { + const result: string[] = []; + + if ("Signature" in multisig) { + result.push(multisig.Signature.key_hash); + } else if ("AtLeast" in multisig) { + multisig.AtLeast.scripts + .map((s) => getSignatureKeyHashesFromMultisigScript(s)) + .flat() + .forEach((s) => { + result.push(s); + }); + } else if ("AllOf" in multisig) { + multisig.AllOf.scripts + .map((s) => getSignatureKeyHashesFromMultisigScript(s)) + .flat() + .forEach((s) => { + result.push(s); + }); + } else if ("AnyOf" in multisig) { + multisig.AnyOf.scripts + .map((s) => getSignatureKeyHashesFromMultisigScript(s)) + .flat() + .forEach((s) => { + result.push(s); + }); + } + + return [...new Set(result).values()]; +}; + +/** + * Extract script key hashes from a multisig script + */ +export const getScriptKeyHashesFromMultisigScript = ( + multisig: TMultisigScript, +): string[] => { + const result: string[] = []; + + if ("Script" in multisig) { + result.push(multisig.Script.script_hash); + } else if ("AtLeast" in multisig) { + multisig.AtLeast.scripts + .map((s) => getScriptKeyHashesFromMultisigScript(s)) + .flat() + .forEach((s) => { + result.push(s); + }); + } else if ("AllOf" in multisig) { + multisig.AllOf.scripts + .map((s) => getScriptKeyHashesFromMultisigScript(s)) + .flat() + .forEach((s) => { + result.push(s); + }); + } else if ("AnyOf" in multisig) { + multisig.AnyOf.scripts + .map((s) => getScriptKeyHashesFromMultisigScript(s)) + .flat() + .forEach((s) => { + result.push(s); + }); + } + + return [...new Set(result).values()]; +}; + +/** + * Extract all key hashes (signature + script) from a multisig script + */ +export const getAllKeyHashesFromMultisigScript = ( + multisig: TMultisigScript, +): string[] => { + const keyHashes = getSignatureKeyHashesFromMultisigScript(multisig); + const scriptHashes = getScriptKeyHashesFromMultisigScript(multisig); + return [...new Set([...keyHashes, ...scriptHashes]).values()]; +}; + +// ───────────────────────────────────────────────────────────────────────────── +// Order Input Helpers +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Sort order inputs by txHash and outputIndex for deterministic ordering. + * This ensures consistent payload generation across all signers. + */ +export const sortOrderInputs = ( + orderInputs: Core.TransactionInput[], +): Core.TransactionInput[] => { + return [...orderInputs].sort((a, b) => { + const txHashA = a.transactionId().toString(); + const txHashB = b.transactionId().toString(); + if (txHashA < txHashB) return -1; + if (txHashA > txHashB) return 1; + const indexA = a.index(); + const indexB = b.index(); + return indexA < indexB ? -1 : indexA > indexB ? 1 : 0; + }); +}; + +/** + * Build a nonce from the first order UTxO. + */ +export const buildNonceFromUtxo = ( + utxo: Core.TransactionInput, +): V0_3Types.Nonce => ({ + UTxO: [ + { + transaction_id: utxo.transactionId().toString(), + output_index: utxo.index(), + }, + ], +}); + +/** + * Build the origin ByteArray (CBOR-serialized OutputReference) from a UTxO. + * Used by v0_4 SDK and shared helpers. + */ +export const buildOriginFromUtxo = ( + utxo: Core.TransactionUnspentOutput, +): string => { + const input = utxo.input(); + const txId = input.transactionId().toString(); + const outputIndex = input.index(); + const fieldsList = new Core.PlutusList(); + fieldsList.add(Core.PlutusData.newBytes(Buffer.from(txId, "hex"))); + fieldsList.add(Core.PlutusData.newInteger(outputIndex)); + const outputRefData = Core.PlutusData.newConstrPlutusData( + new Core.ConstrPlutusData(0n, fieldsList), + ); + return outputRefData.toCbor(); +}; + +/** + * KeySignature type matching the contract's KeySignature tuple. + * A tuple of [VerificationKey, COSESign1] where: + * - VerificationKey: 32-byte Ed25519 public key (hex string) + * - COSESign1: COSE signature with headers (raw CBOR bytes) and detached payload + */ +export type TKeySignature = [ + string, // VerificationKey (32-byte public key hex) + { + headers: { + protected: string; // Raw CBOR hex bytes (HeaderMap = ByteArray in contract) + unprotected: string; // Raw CBOR hex bytes (empty = "") + }; + payload?: string; // Detached - undefined, actual payload stored separately + signature: string; + }, +]; + +export const destructureCip30Signature = async ( + cip30Signature: CIP30DataSignature, +): Promise<{ + publicKey: string; + coseSign1: { + headers: { + protected: string; + unprotected: string; + }; + signature: string; + }; +}> => { + // Read the COSE_Sign1 with CBOR primitives from the dependency tree. + // Async for callers that await it. + const { protected: protectedCbor, signature } = readCoseSign1Parts( + cip30Signature.signature.toString(), + ); + // Extract public key from COSE_Key (at label -2) + const publicKey = extractPublicKeyFromCoseKey(cip30Signature.key.toString()); + return { + publicKey, + coseSign1: { + headers: { + protected: protectedCbor, + unprotected: "", // Empty ByteArray + }, + signature, + }, + }; +}; + +/** + * Produce a COSE (CIP-8) signature tuple over `payloadHash` using the connected + * wallet's key. The reusable building block for signer callbacks — e.g. the + * settings-governance `signAuthPayload` or an orchestrator signed redeemer — + * that wraps `signData` + `destructureCip30Signature` into the on-chain tuple. + */ +export const signPayloadHashWithWallet = async < + P extends Provider, + W extends Wallet, +>( + blaze: Blaze, + payloadHash: string, +): Promise => { + const address = await blaze.wallet.getChangeAddress(); + const cip30Signature = await blaze.wallet.signData(address, payloadHash); + const { publicKey, coseSign1 } = + await destructureCip30Signature(cip30Signature); + return [publicKey, coseSign1]; +}; + +/** + * Create a SignedRedeemer_ExtraProtocolRedeemer structure for on-chain verification. + * + * @param extra - The extra protocol redeemer data (e.g., request_to_outputs mapping) + * @param payload - The SignedPayload_ProtocolRedeemer CBOR hex string (action + nonce) + * @param signatures - Array of KeySignature tuples from each signer + * @returns A SignedRedeemer_ExtraProtocolRedeemer ready for use in transaction + */ +export const createSignedRedeemer = ( + extra: V0_3Types.ExtraProtocolRedeemer, + payload: string, + signatures: SignatureList, +): V0_3Types.SignedRedeemer_ExtraProtocolRedeemer => { + if (signatures.length === 0) { + throw new Error("At least one signature is required"); + } + + return { + extra, + payload, + signatures: signatures as SignatureList, + }; +}; + +// ───────────────────────────────────────────────────────────────────────────── +// CBOR Helpers +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Extract the 32-byte Ed25519 public key from a COSE_Key structure. + * COSE_Key for Ed25519 has the key at label -2. + * The COSE_Key CBOR structure looks like: a4 01 01 03 27 20 06 21 5820 <32 bytes> + * Where 21 5820 indicates label -2 followed by a 32-byte bytestring. + */ +const extractPublicKeyFromCoseKey = (coseKeyHex: string): string => { + // Parse the COSE_Key CBOR manually to find the public key + // The key at label -2 (encoded as 0x21 in CBOR) contains the 32-byte public key + // Look for 0x21 0x58 0x20 which indicates: label -2, bytestring, 32 bytes + const keyBytes = Buffer.from(coseKeyHex, "hex"); + + // Find the pattern: 21 58 20 (label -2, bytes, length 32) + let pubKeyStart = -1; + for (let i = 0; i < keyBytes.length - 34; i++) { + if ( + keyBytes[i] === 0x21 && + keyBytes[i + 1] === 0x58 && + keyBytes[i + 2] === 0x20 + ) { + pubKeyStart = i + 3; // Skip the 21 58 20 prefix + break; + } + } + + if (pubKeyStart === -1) { + throw new Error("Could not find public key in COSE_Key structure"); + } + + const pubKey = keyBytes.slice(pubKeyStart, pubKeyStart + 32); + if (pubKey.length !== 32) { + throw new Error(`Invalid public key length: ${pubKey.length}`); + } + + return pubKey.toString("hex"); +}; + +// ───────────────────────────────────────────────────────────────────────────── +// COSE_Sign1 (CIP-8) reader +// ───────────────────────────────────────────────────────────────────────────── + +// CBOR major types used here. +const CBOR_MAJOR_BYTES = 2; +const CBOR_MAJOR_TEXT = 3; +const CBOR_MAJOR_ARRAY = 4; +const CBOR_MAJOR_MAP = 5; +const CBOR_MAJOR_TAG = 6; +const CBOR_MAJOR_SIMPLE = 7; // simple values (false/true/null) and floats + +const CBOR_ADDITIONAL_INDEFINITE = 31; +const CBOR_BREAK = 0xff; // terminates an indefinite-length string/array/map +const CBOR_TAG_COSE_SIGN1 = 18; // COSE_Sign1's registered tag (encodes as d2) +const CBOR_SIMPLE_NULL = 22; // `f6` + +/** + * Read a CBOR header at `offset`, returning the major type, the argument + * (length / value), whether the item is indefinite-length, and the offset of + * the item's content. Supports the definite forms (0-23 inline and the + * 1/2/4/8-byte arguments) plus indefinite-length strings, arrays, and maps. + */ +const readCborHeader = ( + bytes: Uint8Array, + offset: number, +): { + major: number; + argument: number; + indefinite: boolean; + contentOffset: number; +} => { + const initial = bytes[offset]; + if (initial === undefined) { + throw new Error("COSE_Sign1 CBOR ended unexpectedly"); + } + const major = initial >> 5; + const additional = initial & 0x1f; + + if (additional < 24) { + return { + major, + argument: additional, + indefinite: false, + contentOffset: offset + 1, + }; + } + + if (additional === CBOR_ADDITIONAL_INDEFINITE) { + // Only strings, arrays, and maps have an indefinite-length form. A break + // byte (0xff) parses as major 7 here, so a stray break is rejected too. + if (major < CBOR_MAJOR_BYTES || major > CBOR_MAJOR_MAP) { + throw new Error( + `Unsupported indefinite-length CBOR major type: ${major}`, + ); + } + return { major, argument: 0, indefinite: true, contentOffset: offset + 1 }; + } + + // 24/25/26/27 -> 1/2/4/8 following length bytes. 28-30 are reserved. + if (additional > 27) { + throw new Error(`Unsupported CBOR additional info: ${additional}`); + } + const lengthBytes = 1 << (additional - 24); + let argument = 0; + for (let i = 0; i < lengthBytes; i++) { + const b = bytes[offset + 1 + i]; + if (b === undefined) { + throw new Error("COSE_Sign1 CBOR length ended unexpectedly"); + } + argument = argument * 256 + b; + } + return { + major, + argument, + indefinite: false, + contentOffset: offset + 1 + lengthBytes, + }; +}; + +/** + * Read the definite-length chunks of an indefinite-length CBOR string whose + * first chunk header is at `offset`, returning the concatenated content and + * the offset just past the closing break byte. + */ +const readIndefiniteStringChunks = ( + bytes: Uint8Array, + major: number, + offset: number, +): { content: Uint8Array; nextOffset: number } => { + const chunks: Uint8Array[] = []; + let next = offset; + while (bytes[next] !== CBOR_BREAK) { + const chunk = readCborHeader(bytes, next); + if (chunk.major !== major || chunk.indefinite) { + throw new Error("Invalid chunk in an indefinite-length CBOR string"); + } + const end = chunk.contentOffset + chunk.argument; + if (end > bytes.length) { + throw new Error("COSE_Sign1 CBOR ended unexpectedly"); + } + chunks.push(bytes.slice(chunk.contentOffset, end)); + next = end; + } + return { content: Buffer.concat(chunks), nextOffset: next + 1 }; +}; + +/** + * Skip over one complete CBOR data item starting at `offset`, returning the + * offset immediately after it. Handles the item shapes that occur inside a + * COSE_Sign1 (byte/text strings, integers, arrays, maps, tags — definite or + * indefinite length) recursively. + */ +const skipCborItem = (bytes: Uint8Array, offset: number): number => { + const { major, argument, indefinite, contentOffset } = readCborHeader( + bytes, + offset, + ); + if (indefinite) { + if (major === CBOR_MAJOR_BYTES || major === CBOR_MAJOR_TEXT) { + return readIndefiniteStringChunks(bytes, major, contentOffset).nextOffset; + } + // Indefinite array or map: items until the break byte. + let next = contentOffset; + while (bytes[next] !== CBOR_BREAK) { + if (bytes[next] === undefined) { + throw new Error("COSE_Sign1 CBOR ended unexpectedly"); + } + next = skipCborItem(bytes, next); // array item / map key + if (major === CBOR_MAJOR_MAP) { + next = skipCborItem(bytes, next); // map value + } + } + return next + 1; + } + switch (major) { + case 0: // unsigned int + case 1: // negative int + case CBOR_MAJOR_SIMPLE: // simple value (false/true/null) or float + // readCborHeader already consumed the value/float bytes into `argument`. + return contentOffset; + case CBOR_MAJOR_BYTES: + case CBOR_MAJOR_TEXT: { + const end = contentOffset + argument; + if (end > bytes.length) { + throw new Error("COSE_Sign1 CBOR ended unexpectedly"); + } + return end; + } + case CBOR_MAJOR_ARRAY: { + let next = contentOffset; + for (let i = 0; i < argument; i++) { + next = skipCborItem(bytes, next); + } + return next; + } + case CBOR_MAJOR_MAP: { + let next = contentOffset; + for (let i = 0; i < argument; i++) { + next = skipCborItem(bytes, next); // key + next = skipCborItem(bytes, next); // value + } + return next; + } + case CBOR_MAJOR_TAG: + return skipCborItem(bytes, contentOffset); // tagged content + default: + throw new Error(`Unsupported CBOR major type in COSE_Sign1: ${major}`); + } +}; + +/** + * Read the byte-string content at `offset`, returning its hex and the offset + * after it. + */ +const readCborByteString = ( + bytes: Uint8Array, + offset: number, +): { hex: string; nextOffset: number } => { + const { major, argument, indefinite, contentOffset } = readCborHeader( + bytes, + offset, + ); + if (major !== CBOR_MAJOR_BYTES) { + throw new Error( + `Expected a CBOR byte string in COSE_Sign1, got major type ${major}`, + ); + } + if (indefinite) { + const { content, nextOffset } = readIndefiniteStringChunks( + bytes, + major, + contentOffset, + ); + return { hex: Buffer.from(content).toString("hex"), nextOffset }; + } + const end = contentOffset + argument; + if (end > bytes.length) { + throw new Error("COSE_Sign1 CBOR ended unexpectedly"); + } + return { + hex: Buffer.from(bytes.slice(contentOffset, end)).toString("hex"), + nextOffset: end, + }; +}; + +/** + * Parse a CIP-8 COSE_Sign1 and extract the pieces the on-chain KeySignature + * tuple needs: the protected header map bytes (byte-string content, wrapper + * removed) and the raw Ed25519 signature bytes. + * + * COSE_Sign1 = [ protected: bstr, unprotected: map, payload: bstr / nil, + * signature: bstr ], optionally wrapped in CBOR tag 18. The protected element + * is itself a byte string whose content is the serialized header map; reading + * the byte-string content yields the raw header-map bytes the tuple stores. + * Indefinite-length encodings of the array, the maps, and the byte strings + * are accepted alongside the definite forms. + */ +export const readCoseSign1Parts = ( + coseSign1Hex: string, +): { protected: string; signature: string } => { + const bytes = Buffer.from(coseSign1Hex, "hex"); + + let offset = 0; + // Optional CBOR tag: only tag 18 (COSE_Sign1's registered tag, the `d2` + // prefix) is accepted — tagged input is accepted by design, since the + // Ledger signing path emits d2-tagged COSE_Sign1s, but any other tag means + // this isn't a COSE_Sign1 and must be rejected rather than silently unwrapped. + const first = readCborHeader(bytes, offset); + if (first.major === CBOR_MAJOR_TAG) { + if (first.argument !== CBOR_TAG_COSE_SIGN1) { + throw new Error( + `COSE_Sign1 has unexpected CBOR tag ${first.argument} (expected 18)`, + ); + } + offset = first.contentOffset; + } + + const array = readCborHeader(bytes, offset); + if (array.major !== CBOR_MAJOR_ARRAY) { + throw new Error("COSE_Sign1 is not a CBOR array"); + } + if (!array.indefinite && array.argument !== 4) { + throw new Error("COSE_Sign1 is not a 4-element CBOR array"); + } + + // Element 0: protected header byte string (content = serialized header map). + const protectedRead = readCborByteString(bytes, array.contentOffset); + + // Element 1: unprotected header map — must be a CBOR map (major 5), + // definite or indefinite. Peek the header before skipCborItem consumes it + // so we assert on the same read the skip performs, not a second one. + const unprotectedHeader = readCborHeader(bytes, protectedRead.nextOffset); + if (unprotectedHeader.major !== CBOR_MAJOR_MAP) { + throw new Error( + `COSE_Sign1 unprotected header is not a CBOR map (got major type ${unprotectedHeader.major})`, + ); + } + const afterUnprotected = skipCborItem(bytes, protectedRead.nextOffset); + + // Element 2: payload — must be a byte string (major 2) or null (`f6`). + const payloadHeader = readCborHeader(bytes, afterUnprotected); + const isNullPayload = + payloadHeader.major === CBOR_MAJOR_SIMPLE && + !payloadHeader.indefinite && + payloadHeader.argument === CBOR_SIMPLE_NULL; + if (payloadHeader.major !== CBOR_MAJOR_BYTES && !isNullPayload) { + throw new Error( + `COSE_Sign1 payload is not a byte string or null (got major type ${payloadHeader.major})`, + ); + } + const afterPayload = skipCborItem(bytes, afterUnprotected); + + // Element 3: signature byte string. + const signatureRead = readCborByteString(bytes, afterPayload); + + // An indefinite-length COSE_Sign1 array must close right after element 3. + if (array.indefinite && bytes[signatureRead.nextOffset] !== CBOR_BREAK) { + throw new Error("COSE_Sign1 is not a 4-element CBOR array"); + } + + return { protected: protectedRead.hex, signature: signatureRead.hex }; +}; + +// ───────────────────────────────────────────────────────────────────────────── +// Treasury Operation Payload Helpers (Withdraw/Deposit) +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Build the SignedPayload_ProtocolRedeemer for a withdraw operation. + * Uses the treasury UTxO as the nonce source. + * + * @param requests - Array of withdraw requests with destinations and amounts + * @param treasuryUtxo - The treasury UTxO (consumed in tx, used as nonce) + * @returns SignedPayload_ProtocolRedeemer CBOR hex string + */ +export const getSignedPayloadForWithdraw = ( + amount: bigint, + treasuryUtxo: Core.TransactionUnspentOutput, +): string => { + if (amount <= 0n) { + throw new Error("Withdraw amount must be positive"); + } + + // Reuse existing nonce builder + const nonce = buildNonceFromUtxo(treasuryUtxo.input()); + + const action: V0_3Types.ProtocolRedeemer = { + Withdraw: { withdraw_amount: amount }, + }; + + const signedPayload: V0_3Types.SignedPayload_ProtocolRedeemer = { + action, + nonce, + }; + return Data.serialize(V0_3Types.SignedPayload_ProtocolRedeemer, signedPayload) + .toCbor() + .toString(); +}; + +/** + * Build the SignedPayload_ProtocolRedeemer for a deposit operation. + * Uses the treasury UTxO as the nonce source. + * + * @param amount - The amount of reserve tokens to deposit + * @param treasuryUtxo - The treasury UTxO (consumed in tx, used as nonce) + * @returns SignedPayload_ProtocolRedeemer CBOR hex string + */ +export const getSignedPayloadForDeposit = ( + amount: bigint, + treasuryUtxo: Core.TransactionUnspentOutput, +): string => { + if (amount <= 0n) { + throw new Error("Deposit amount must be positive"); + } + + const nonce = buildNonceFromUtxo(treasuryUtxo.input()); + + const action: V0_3Types.ProtocolRedeemer = { + Deposit: { deposit_amount: amount }, + }; + + const signedPayload: V0_3Types.SignedPayload_ProtocolRedeemer = { + action, + nonce, + }; + return Data.serialize(V0_3Types.SignedPayload_ProtocolRedeemer, signedPayload) + .toCbor() + .toString(); +}; + +// ───────────────────────────────────────────────────────────────────────────── +// Address Conversion Helpers +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Convert a Cardano address to a Destination type for order transactions. + * Extracts payment and stake credentials from the address. + * + * @param address - The Cardano address to convert + * @param datum - Optional datum for the destination (defaults to "NoDatum") + * @returns A Destination object suitable for order transactions + */ +export function addressToDestination( + address: Core.Address, + datum: Destination["datum"] = "NoDatum", +): Destination { + const props = address.getProps(); + const paymentPart = props.paymentPart; + + if (!paymentPart) { + throw new Error("Address must have a payment part"); + } + + const paymentCredential = + paymentPart.type === Core.CredentialType.KeyHash + ? { VerificationKey: [paymentPart.hash] as [string] } + : { Script: [paymentPart.hash] as [string] }; + + let stakeCredential: Destination["address"]["stake_credential"] = undefined; + if (props.delegationPart) { + const stakeCred = + props.delegationPart.type === Core.CredentialType.KeyHash + ? { VerificationKey: [props.delegationPart.hash] as [string] } + : { Script: [props.delegationPart.hash] as [string] }; + stakeCredential = { Inline: [stakeCred] }; + } + + return { + address: { + payment_credential: paymentCredential, + stake_credential: stakeCredential, + }, + datum, + }; +} + +/** + * Convert a Destination-like value into a Cardano address. + * Supports enterprise and base addresses. Pointer credentials are ignored. + */ +export function destinationToAddress( + network: Core.NetworkId, + destination: TDestinationLike, +): Core.Address { + const paymentCred = destination.address.payment_credential; + const stakingCred = destination.address.stake_credential; + let paymentCredCore: Core.Credential; + let stakingCredCore: Core.Credential | undefined; + + if ( + stakingCred && + typeof stakingCred === "object" && + "Inline" in stakingCred + ) { + const inlineCredential = ( + stakingCred as { Inline: [TDestinationCredentialLike] } + ).Inline[0]; + if ("VerificationKey" in inlineCredential) { + stakingCredCore = Core.Credential.fromCore({ + type: Core.CredentialType.KeyHash, + hash: inlineCredential.VerificationKey[0], + }); + } else if ("Script" in inlineCredential) { + stakingCredCore = Core.Credential.fromCore({ + type: Core.CredentialType.ScriptHash, + hash: inlineCredential.Script[0], + }); + } + } + + if ("VerificationKey" in paymentCred) { + paymentCredCore = Core.Credential.fromCore({ + type: Core.CredentialType.KeyHash, + hash: paymentCred.VerificationKey[0], + }); + } else { + paymentCredCore = Core.Credential.fromCore({ + type: Core.CredentialType.ScriptHash, + hash: paymentCred.Script[0], + }); + } + + return addressFromCredentials(network, paymentCredCore, stakingCredCore); +} + +/** + * Add an output for a Destination, including script-payment addresses and + * any datum metadata attached to the destination. + * + * Attaches the datum directly to a fresh TransactionOutput rather than + * routing through Core.TransactionOutput.fromCore, because generated + * TPlutusData values from @blaze-cardano/data are already Blaze + * PlutusData instances and PlutusData.fromCore does not know how to + * decode them (throws NotImplementedError). + */ +export function addDestinationOutput( + tx: TxBuilder, + network: Core.NetworkId, + destination: TDestinationLike, + value: Core.Value, +): void { + const output = new Core.TransactionOutput( + destinationToAddress(network, destination), + value, + ); + const { datum } = destination; + if (datum !== "NoDatum") { + if ("DatumHash" in datum) { + output.setDatum(Core.Datum.newDataHash(datum.DatumHash[0])); + } else { + output.setDatum( + Core.Datum.newInlineData(datum.InlineDatum[0] as Core.PlutusData), + ); + } + } + tx.addOutput(output); +} + +// ───────────────────────────────────────────────────────────────────────────── +// Cross-Version Cancel Helpers +// ───────────────────────────────────────────────────────────────────────────── + +const NORMALIZED_PROTOCOL_VERSION_MAP: Record = { + v0: "V0", + v0_1: "V0_1", + v0_2: "V0_2", + v0_3: "V0_3", + v0_4: "V0_4", + v1_0: "V1_0", + v1_0_rc1: "V1_0_Rc1", + v1_1_rc1: "V1_1_Rc1", +}; + +/** + * Normalize externally-sourced protocol/order version strings into the SDK's + * canonical `TProtocolVersion` values. + */ +export const normalizeProtocolVersion = ( + version: string | null | undefined, +): TProtocolVersion | undefined => { + if (!version) { + return undefined; + } + + return NORMALIZED_PROTOCOL_VERSION_MAP[version.trim().toLowerCase()]; +}; + +/** + * Alias for frontend order-version sources (GraphQL/backend strings). + */ +export const normalizeOrderVersion = normalizeProtocolVersion; + +/** + * Extract the inline datum from a UTxO. + */ +export const getInlineDatumFromUtxo = ( + utxo: Core.TransactionUnspentOutput, + label = "Order UTXO", +): Core.PlutusData => { + const datum = utxo.output().datum()?.asInlineData(); + if (!datum) { + throw new Error(`${label} has no inline datum`); + } + return datum; +}; + +/** + * Extract the payment script hash from an order UTxO's output address. + */ +export const getScriptHashFromOrderUtxo = ( + utxo: Core.TransactionUnspentOutput, +): Core.Hash28ByteBase16 => { + const paymentPart = utxo.output().address().getProps().paymentPart; + + if (!paymentPart) { + throw new Error("Order UTXO address has no payment credential"); + } + + if (paymentPart.type !== Core.CredentialType.ScriptHash) { + throw new Error("Order UTXO payment credential is not a script hash"); + } + + return paymentPart.hash; +}; + +/** + * Resolve one reference input per unique script hash. + */ +export async function resolveReferenceInputsByScriptHash< + P extends Provider, + W extends Wallet, +>( + blaze: Blaze, + scriptHashes: Iterable, + cachedInputs?: + | ReadonlyMap + | Partial>, + address?: Core.Address, +): Promise> { + const referenceInputs = new Map< + Core.Hash28ByteBase16, + Core.TransactionUnspentOutput + >(); + + for (const hash of new Set(scriptHashes)) { + const cachedInput = + cachedInputs instanceof Map + ? cachedInputs.get(hash) + : ( + cachedInputs as + | Partial> + | undefined + )?.[hash as string]; + + if (cachedInput) { + referenceInputs.set(hash, cachedInput); + continue; + } + + const refInput = + (address && (await resolveScriptRefAtAddress(blaze, hash, address))) || + (await blaze.provider.resolveScriptRef(hash)); + + if (!refInput) { + throw new Error( + `Missing order reference script input for hash ${hash}. Make sure the order script is deployed.`, + ); + } + + referenceInputs.set(hash, refInput); + } + + return referenceInputs; +} + +/** + * Resolve the order reference inputs needed to spend a batch of order UTxOs. + */ +export async function resolveOrderReferenceInputs< + P extends Provider, + W extends Wallet, +>( + blaze: Blaze, + orderUtxos: Iterable, + cachedInputs?: + | ReadonlyMap + | Partial>, + address?: Core.Address, +): Promise> { + const scriptHashes: Core.Hash28ByteBase16[] = []; + + for (const utxo of orderUtxos) { + scriptHashes.push(getScriptHashFromOrderUtxo(utxo)); + } + + return resolveReferenceInputsByScriptHash( + blaze, + scriptHashes, + cachedInputs, + address, + ); +} + +/** + * Strict owner-only parser for order datums used by cross-version cancel. + * + * All currently-supported order datum variants encode as: + * Constr(0, [owner, destination, action, data]). + */ +export const parseOrderOwnerGenericFromDatum = ( + datum: Core.PlutusData, +): TMultisigScript => { + const constr = datum.asConstrPlutusData(); + if (!constr) { + throw new Error("Order datum is not a constructor PlutusData"); + } + + if (constr.getAlternative() !== 0n) { + throw new Error( + `Order datum has unexpected constructor index ${constr.getAlternative().toString()} (expected 0)`, + ); + } + + const fields = constr.getData(); + if (fields.getLength() < 4) { + throw new Error( + `Order datum has ${fields.getLength().toString()} fields (expected at least 4)`, + ); + } + + return parse(V0_3Types.MultisigScript, fields.get(0)) as TMultisigScript; +}; + +/** + * Strict owner-only parser for cancel flows. + */ +export const parseOrderOwnerGeneric = ( + utxo: Core.TransactionUnspentOutput, +): TMultisigScript => { + return parseOrderOwnerGenericFromDatum(getInlineDatumFromUtxo(utxo)); +}; diff --git a/modules/realfi-partner-sdk/src/sdk/v0/index.ts b/modules/realfi-partner-sdk/src/sdk/v0/index.ts new file mode 100644 index 0000000000..51fd9fabb4 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v0/index.ts @@ -0,0 +1,269 @@ +import * as Data from "@blaze-cardano/data"; +import { parse, Void } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + Core, + makeValue, + TxBuilder, + type Wallet, +} from "@blaze-cardano/sdk"; +import { AssetAmount } from "@sundaeswap/asset"; + +import { BaseTypes, V0Types } from "../../generated-types/index.js"; +import { + type IBaseSDKParams, + type ICachedReferenceInputs, + type IProxyDatumResult, + lockOrPayAssets, + RealfiSDKBase, +} from "../shared/index.js"; + +/** + * V0 datum type - simple datum with logic hash and no settings + */ +export const AdminDatum = Data.Type.Object( + { + logic: Data.Type.String(), + settings: Data.Type.Void(), + }, + { ctor: 0n }, +); + +export type TAdminDatumType = { + logic: string; + settings: void; +}; + +export interface IRealfiSDKParamsV0 { + version: "V0"; + proxyBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + assetNameHex: string; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Address to deploy reference scripts to (and resolve them from). When + * omitted, Blaze's burn address is used for both deploy and resolve. + */ + scriptDeploymentAddress?: Core.Address; + referenceInputs?: { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + }; +} + +/** + * V0 SDK implementation. + * + * Simple minting without treasury management. + * All operations (oneshot, protocol, mint proxy) are consolidated here. + */ +export class RealfiSDKV0< + P extends Provider, + W extends Wallet, +> extends RealfiSDKBase { + readonly version = "V0" as const; + + // Script hashes and policy IDs + readonly stablecoinPolicyId: Core.PolicyId; + readonly oneShotPolicyId: Core.PolicyId; + readonly protocolScriptHash: Core.Hash28ByteBase16; + + // Scripts + protected readonly oneShotScript: Core.Script; + protected readonly protocolScript: Core.Script; + protected readonly mintProxyScript: Core.Script; + + private constructor( + blaze: Blaze, + params: IBaseSDKParams, + scripts: { + oneShotScript: Core.Script; + protocolScript: Core.Script; + mintProxyScript: Core.Script; + }, + cachedReferenceInputs?: ICachedReferenceInputs, + ) { + super(blaze, params, cachedReferenceInputs); + + this.oneShotScript = scripts.oneShotScript; + this.protocolScript = scripts.protocolScript; + this.mintProxyScript = scripts.mintProxyScript; + + this.oneShotPolicyId = Core.PolicyId(this.oneShotScript.hash()); + this.protocolScriptHash = this.protocolScript.hash(); + this.stablecoinPolicyId = Core.PolicyId(this.mintProxyScript.hash()); + } + + /** + * Create a V0 SDK instance. + */ + static create

( + blaze: Blaze, + params: IRealfiSDKParamsV0, + ): RealfiSDKV0 { + const enableTrace = params.enableTrace ?? false; + + // Instantiate one-shot script + const oneShotScript = new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script; + + // Instantiate protocol script (V0 uses no parameters) + const protocolScript = new V0Types.V0ProtocolProtocolWithdraw(enableTrace) + .Script; + + // Instantiate mint proxy script (parameterized by one-shot policy ID) + const oneShotPolicyId = oneShotScript.hash(); + const mintProxyScript = new BaseTypes.BaseMintProxyMintProxyMint( + oneShotPolicyId, + enableTrace, + ).Script; + + return new RealfiSDKV0( + blaze, + { + version: "V0", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + enableTrace, + scriptDeploymentAddress: params.scriptDeploymentAddress, + }, + { + oneShotScript, + protocolScript, + mintProxyScript, + }, + { + protocolRefInput: params.referenceInputs?.protocolRefInput, + proxyRefInput: params.referenceInputs?.proxyRefInput, + }, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // One-Shot Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the one-shot NFT with the initial datum. + * This consumes the bootstrap UTXO and can only be done once. + */ + async mintOneShot( + receiverAddress: Core.Address, + datum: TAdminDatumType, + ): Promise<{ tx: TxBuilder; policyId: Core.PolicyId }> { + const utxo = await this.resolveBootstrapUtxo(); + const serializedDatum = Data.serialize(AdminDatum, { + logic: datum.logic, + settings: datum.settings, + }); + + const baseTx = this.blaze + .newTransaction() + .addInput(utxo) + .addMint( + this.oneShotPolicyId, + new Map([[Core.AssetName(""), 1n]]), + Data.Void(), + ); + const tx = lockOrPayAssets( + baseTx, + receiverAddress, + makeValue(1000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ).provideScript(this.oneShotScript); + + return { tx, policyId: this.oneShotPolicyId }; + } + + /** + * Update the one-shot datum. + * This spends the one-shot UTXO and sends it back to the receiver with new datum. + */ + async updateOneShotDatum( + receiverAddress: Core.Address, + newDatum: TAdminDatumType, + ): Promise { + const oneshotUtxo = await this.blaze.provider.getUnspentOutputByNFT( + Core.AssetId(this.oneShotPolicyId), + ); + if (!oneshotUtxo) { + throw new Error("No UTXO found with the one-shot NFT"); + } + + const serializedDatum = Data.serialize(AdminDatum, { + logic: newDatum.logic, + settings: newDatum.settings, + }); + + return lockOrPayAssets( + this.blaze.newTransaction().addInput(oneshotUtxo), + receiverAddress, + makeValue(1000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ); + } + + /** + * Get the proxy datum from the one-shot token UTXO. + * Result is cached after first fetch. + */ + async getParsedProxyDatum(): Promise> { + if (this.cachedProxyDatumResult) { + return this.cachedProxyDatumResult as IProxyDatumResult; + } + + const { proxyUtxo, proxyDatum } = await this.getRawProxyDatum(); + const parsedProxyDatum = parse(AdminDatum, proxyDatum); + const result = { proxyUtxo, proxyDatum, parsedProxyDatum }; + + this.cachedProxyDatumResult = result; + return result; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Minting Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a mint (positive amount) or burn (negative amount) transaction. + * V0 minting is simple - no treasury involvement. + */ + async buildMintTx(amount: AssetAmount): Promise { + const rewardAccount = this.getProtocolRewardAccount(); + + const utxo = await this.blaze.provider.getUnspentOutputByNFT( + Core.AssetId(this.oneShotPolicyId), + ); + if (!utxo) { + throw new Error("No UTXO found with the one-shot NFT"); + } + + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + proxy: this.mintProxyScript.hash(), + }); + + const tx = this.blaze + .newTransaction() + .addReferenceInput(utxo) + .addWithdrawal(rewardAccount, 0n, Void()) + .addReferenceInput(refInputs.protocol!) + .addReferenceInput(refInputs.proxy!) + .addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), amount.amount]]), + Void(), + ); + + return tx; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/v0_1/index.ts b/modules/realfi-partner-sdk/src/sdk/v0_1/index.ts new file mode 100644 index 0000000000..55d35ae65d --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v0_1/index.ts @@ -0,0 +1,451 @@ +import { + addressFromCredential, + addressFromValidator, + Hash28ByteBase16, + toHex, +} from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { parse, Void } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + Core, + makeValue, + TxBuilder, + Value, + type Wallet, +} from "@blaze-cardano/sdk"; + +import { AssetAmount } from "@sundaeswap/asset"; +import { BaseTypes, V0_1Types } from "../../generated-types/index.js"; +import type { TreasuryDatum as V0_1TreasuryDatum } from "../../generated-types/v0_1/index.js"; +import { + addDirectOutput, + credentialFromScriptHash, + deployScript, + getDatumFromNFT, + getSignatureKeyHashesFromMultisigScript, + type IBaseSDKParams, + type ICachedReferenceInputs, + type IProxyDatumResult, + type IRealfiSDKWithTreasury, + type ITreasuryDatumResult, + lockOrPayAssets, + RealfiSDKBase, +} from "../shared/index.js"; + +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiSDKParamsV0_1 { + version: "V0_1"; + proxyBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + assetNameHex: string; + /** + * The bootstrap UTXO reference for treasury script parameterization. + * Treasury script and NFT are derived from this. + */ + treasuryBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Address to deploy reference scripts to (and resolve them from). When + * omitted, Blaze's burn address is used for both deploy and resolve. + */ + scriptDeploymentAddress?: Core.Address; + referenceInputs?: { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + treasuryRefInput?: Core.TransactionUnspentOutput; + }; +} + +/** + * V0_1 SDK implementation. + * + * Includes treasury management, reserve backing, and circulating supply tracking. + * All operations (oneshot, protocol, mint proxy, treasury) are consolidated here. + */ +export class RealfiSDKV0_1

+ extends RealfiSDKBase + implements IRealfiSDKWithTreasury +{ + readonly version = "V0_1" as const; + + // Script hashes and policy IDs + readonly stablecoinPolicyId: Core.PolicyId; + readonly oneShotPolicyId: Core.PolicyId; + readonly protocolScriptHash: Core.Hash28ByteBase16; + readonly treasuryScriptHash: Core.Hash28ByteBase16; + readonly treasuryNFTAssetId: Core.AssetId; + + // Scripts + protected readonly oneShotScript: Core.Script; + protected readonly protocolScript: Core.Script; + protected readonly mintProxyScript: Core.Script; + protected readonly treasuryScript: Core.Script; + + private constructor( + blaze: Blaze, + params: IBaseSDKParams, + scripts: { + oneShotScript: Core.Script; + protocolScript: Core.Script; + mintProxyScript: Core.Script; + treasuryScript: Core.Script; + }, + treasuryNFTAssetId: Core.AssetId, + cachedReferenceInputs?: ICachedReferenceInputs, + ) { + super(blaze, params, cachedReferenceInputs); + + this.oneShotScript = scripts.oneShotScript; + this.protocolScript = scripts.protocolScript; + this.mintProxyScript = scripts.mintProxyScript; + this.treasuryScript = scripts.treasuryScript; + + this.oneShotPolicyId = Core.PolicyId(this.oneShotScript.hash()); + this.protocolScriptHash = this.protocolScript.hash(); + this.stablecoinPolicyId = Core.PolicyId(this.mintProxyScript.hash()); + this.treasuryScriptHash = this.treasuryScript.hash(); + this.treasuryNFTAssetId = treasuryNFTAssetId; + } + + /** + * Create a V0_1 SDK instance. + */ + static create

( + blaze: Blaze, + params: IRealfiSDKParamsV0_1, + ): RealfiSDKV0_1 { + const enableTrace = params.enableTrace ?? false; + + // Instantiate one-shot script + const oneShotScript = new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script; + const oneShotPolicyId = oneShotScript.hash(); + + // Instantiate protocol script (V0_1 parameterized by one-shot policy ID) + const protocolScript = new V0_1Types.V0_1ProtocolProtocolWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + // Instantiate mint proxy script (parameterized by one-shot policy ID) + const mintProxyScript = new BaseTypes.BaseMintProxyMintProxyMint( + oneShotPolicyId, + enableTrace, + ).Script; + + // Instantiate treasury script (parameterized by UTXO ref and one-shot policy ID) + const treasuryScript = new V0_1Types.V0_1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + // Derive treasury NFT asset ID from treasury script hash + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + const treasuryNFTAssetId = Core.AssetId( + treasuryScript.hash() + treasuryAssetName.toString(), + ); + + return new RealfiSDKV0_1( + blaze, + { + version: "V0_1", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + enableTrace, + scriptDeploymentAddress: params.scriptDeploymentAddress, + }, + { + oneShotScript, + protocolScript, + mintProxyScript, + treasuryScript, + }, + treasuryNFTAssetId, + { + protocolRefInput: params.referenceInputs?.protocolRefInput, + proxyRefInput: params.referenceInputs?.proxyRefInput, + treasuryRefInput: params.referenceInputs?.treasuryRefInput, + }, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Treasury Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the treasury NFT. + * This creates a new treasury with an initial datum. + * Uses the treasury bootstrap UTXO that was provided when creating the SDK. + */ + async mintTreasuryNFT( + treasuryBootstrapUtxo: Core.TransactionUnspentOutput, + initialDatum: V0_1TreasuryDatum = { circulating_supply: 0n }, + ): Promise<{ tx: TxBuilder; nftAssetId: Core.AssetId }> { + const treasuryPolicyId = Core.PolicyId(this.treasuryScript.hash()); + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + const treasuryAddress = addressFromValidator( + this.network, + this.treasuryScript, + ); + + const datum = Data.serialize(V0_1Types.TreasuryDatum, initialDatum); + const tx = this.blaze + .newTransaction() + .addInput(treasuryBootstrapUtxo) + .addMint( + treasuryPolicyId, + new Map([[treasuryAssetName, 1n]]), + Data.Void(), + ) + .lockAssets( + treasuryAddress, + makeValue(1000000n, [this.treasuryNFTAssetId, 1n]), + datum, + ) + .provideScript(this.treasuryScript); + + return { tx, nftAssetId: this.treasuryNFTAssetId }; + } + + /** + * Deploy the treasury script as a reference script. + */ + async deployTreasury(): Promise { + return deployScript( + this.blaze, + this.treasuryScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Get the treasury datum. + */ + async getTreasuryDatum(): Promise> { + const { + utxo: treasuryUtxo, + datum: treasuryDatum, + parsedDatum: parsedTreasuryDatum, + } = await getDatumFromNFT( + this.blaze, + this.treasuryNFTAssetId, + V0_1Types.TreasuryDatum, + ); + + if (!treasuryUtxo) { + throw new Error("No UTXO found with the treasury NFT"); + } + if (!treasuryDatum) { + throw new Error("No treasury datum found"); + } + + return { + treasuryUtxo, + treasuryDatum, + parsedTreasuryDatum: parsedTreasuryDatum as V0_1TreasuryDatum, + }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // One-Shot Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the one-shot NFT with the initial datum. + * This consumes the bootstrap UTXO and can only be done once. + */ + async mintOneShot( + receiverAddress: Core.Address, + datum: V0_1Types.ProxyDatum, + ): Promise<{ tx: TxBuilder; policyId: Core.PolicyId }> { + const utxo = await this.resolveBootstrapUtxo(); + const serializedDatum = Data.serialize(V0_1Types.ProxyDatum, { + logic: datum.logic, + settings: datum.settings, + }); + + const baseTx = this.blaze + .newTransaction() + .addInput(utxo) + .addMint( + this.oneShotPolicyId, + new Map([[Core.AssetName(""), 1n]]), + Data.Void(), + ); + const tx = lockOrPayAssets( + baseTx, + receiverAddress, + makeValue(1000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ).provideScript(this.oneShotScript); + + return { tx, policyId: this.oneShotPolicyId }; + } + + /** + * Update the one-shot datum. + * This spends the one-shot UTXO and sends it back to the receiver with new datum. + */ + async updateOneShotDatum( + receiverAddress: Core.Address, + newDatum: V0_1Types.ProxyDatum, + ): Promise { + const oneshotUtxo = await this.blaze.provider.getUnspentOutputByNFT( + Core.AssetId(this.oneShotPolicyId), + ); + if (!oneshotUtxo) { + throw new Error("No UTXO found with the one-shot NFT"); + } + + const serializedDatum = Data.serialize(V0_1Types.ProxyDatum, { + logic: newDatum.logic, + settings: newDatum.settings, + }); + + const tx = lockOrPayAssets( + this.blaze.newTransaction().addInput(oneshotUtxo), + receiverAddress, + makeValue(1000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ); + + return tx; + } + + /** + * Get the proxy datum from the one-shot token UTXO. + * Result is cached after first fetch. + */ + async getParsedProxyDatum(): Promise< + IProxyDatumResult + > { + if (this.cachedProxyDatumResult) { + return this + .cachedProxyDatumResult as IProxyDatumResult; + } + + const { proxyUtxo, proxyDatum } = await this.getRawProxyDatum(); + const parsedProxyDatum = parse(V0_1Types.ProxyDatum, proxyDatum); + const result = { proxyUtxo, proxyDatum, parsedProxyDatum }; + + this.cachedProxyDatumResult = result; + return result; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Minting Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a mint (positive amount) or burn (negative amount) transaction. + * V0_1 minting includes treasury update for circulating supply tracking. + */ + async buildMintTx(assetAmount: AssetAmount): Promise { + const isBurn = assetAmount.amount < 0n; + const rewardAccount = this.getProtocolRewardAccount(); + + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + + const treasuryScriptHash = Hash28ByteBase16( + parsedProxyDatum.settings.registry.treasury, + ); + + // Get all reference inputs in one call (cached after first fetch) + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + proxy: this.mintProxyScript.hash(), + treasury: treasuryScriptHash, + }); + + const { utxo: treasuryUtxo, parsedDatum: parsedTreasuryDatum } = + await getDatumFromNFT( + this.blaze, + this.treasuryNFTAssetId, + V0_1Types.TreasuryDatum, + ); + + const circulatingSupply = (parsedTreasuryDatum as V0_1TreasuryDatum) + .circulating_supply; + const newCirculatingSupply = circulatingSupply + assetAmount.amount; + + const newTreasuryDatum = Data.serialize(V0_1Types.TreasuryDatum, { + circulating_supply: newCirculatingSupply, + }); + + const reserveToken = parsedProxyDatum.settings.reserve_token.join(""); + const treasuryAddress = addressFromCredential( + this.network, + credentialFromScriptHash(treasuryScriptHash), + ); + + const redeemer = isBurn + ? Data.serialize(V0_1Types.ProtocolRedeemer, "Burn") + : Data.serialize(V0_1Types.ProtocolRedeemer, "Mint"); + + const assetName = Core.AssetName(this.assetNameHex); + + const initialTreasuryValue = treasuryUtxo!.output().amount(); + const valueToAdd = makeValue(0n, [reserveToken, assetAmount.amount]); + const updatedTreasuryValue = Value.merge(initialTreasuryValue, valueToAdd); + + const tx = this.blaze + .newTransaction() + .addReferenceInput(proxyUtxo!) + .addWithdrawal(rewardAccount, 0n, redeemer) + .addReferenceInput(refInputs.protocol!) + .addReferenceInput(refInputs.proxy!) + .addReferenceInput(refInputs.treasury!) + .addInput(treasuryUtxo!, Void()) + .addMint( + this.stablecoinPolicyId, + new Map([[assetName, assetAmount.amount]]), + Void(), + ) + .lockAssets(treasuryAddress, updatedTreasuryValue, newTreasuryDatum); + + if (isBurn) { + const requiredSigners = getSignatureKeyHashesFromMultisigScript( + parsedProxyDatum.settings.burn_permission, + ).map((key) => Core.Ed25519KeyHashHex(key)); + + for (const signer of requiredSigners) { + tx.addRequiredSigner(signer); + } + + const receiverAddress = await this.blaze.wallet.getChangeAddress(); + addDirectOutput( + tx, + receiverAddress, + makeValue(0n, [reserveToken, -assetAmount.amount]), + ); + } else { + const requiredSigners = getSignatureKeyHashesFromMultisigScript( + parsedProxyDatum.settings.mint_permission, + ).map((key) => Core.Ed25519KeyHashHex(key)); + + for (const signer of requiredSigners) { + tx.addRequiredSigner(signer); + } + } + + return tx; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/v0_2/index.ts b/modules/realfi-partner-sdk/src/sdk/v0_2/index.ts new file mode 100644 index 0000000000..fb35cca586 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v0_2/index.ts @@ -0,0 +1,581 @@ +import { + addressFromCredential, + addressFromValidator, + AssetId, + Hash28ByteBase16, + toHex, +} from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { parse, Void } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + Core, + makeValue, + TxBuilder, + Value, + type Wallet, +} from "@blaze-cardano/sdk"; + +import { AssetAmount } from "@sundaeswap/asset"; +import { + BaseTypes, + V0_1Types, + V0_2Types, +} from "../../generated-types/index.js"; +import { TreasuryDatum as V0_1TreasuryDatum } from "../../generated-types/v0_1/index.js"; +import { + addDirectOutput, + credentialFromScriptHash, + deployScript, + getDatumFromNFT, + getSignatureKeyHashesFromMultisigScript, + type IBaseSDKParams, + type ICachedReferenceInputs, + type IProxyDatumResult, + type IRealfiSDKWithTreasury, + type ITreasuryDatumResult, + lockOrPayAssets, + RealfiSDKBase, +} from "../shared/index.js"; +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiSDKParamsV0_2 { + version: "V0_2"; + proxyBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + assetNameHex: string; + /** + * The treasury bootstrap UTxO reference. The treasury script and NFT asset ID + * are derived from this reference and the stablecoin policy ID. + */ + treasuryBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Address to deploy reference scripts to (and resolve them from). When + * omitted, Blaze's burn address is used for both deploy and resolve. + */ + scriptDeploymentAddress?: Core.Address; + referenceInputs?: { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + treasuryRefInput?: Core.TransactionUnspentOutput; + }; +} + +/** + * V0_2 SDK implementation. + * + * Extends V0_1 with deposit and withdraw operations for treasury management. + * All operations (oneshot, protocol, mint proxy, treasury) are consolidated here. + */ +export class RealfiSDKV0_2

+ extends RealfiSDKBase + implements IRealfiSDKWithTreasury +{ + readonly version = "V0_2" as const; + + // Script hashes and policy IDs + readonly stablecoinPolicyId: Core.PolicyId; + readonly oneShotPolicyId: Core.PolicyId; + readonly protocolScriptHash: Core.Hash28ByteBase16; + readonly treasuryScriptHash: Core.Hash28ByteBase16; + readonly treasuryNFTAssetId: Core.AssetId; + readonly treasuryAddress: Core.Address; + + // Scripts + protected readonly oneShotScript: Core.Script; + protected readonly protocolScript: Core.Script; + protected readonly mintProxyScript: Core.Script; + protected readonly treasuryScript: Core.Script; + + private constructor( + blaze: Blaze, + params: IBaseSDKParams, + scripts: { + oneShotScript: Core.Script; + protocolScript: Core.Script; + mintProxyScript: Core.Script; + treasuryScript: Core.Script; + }, + cachedReferenceInputs?: ICachedReferenceInputs, + ) { + super(blaze, params, cachedReferenceInputs); + + this.oneShotScript = scripts.oneShotScript; + this.protocolScript = scripts.protocolScript; + this.mintProxyScript = scripts.mintProxyScript; + this.treasuryScript = scripts.treasuryScript; + + this.oneShotPolicyId = Core.PolicyId(this.oneShotScript.hash()); + this.protocolScriptHash = this.protocolScript.hash(); + this.stablecoinPolicyId = Core.PolicyId(this.mintProxyScript.hash()); + this.treasuryScriptHash = this.treasuryScript.hash(); + + // Derive treasury NFT asset ID from treasury script hash + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + this.treasuryNFTAssetId = Core.AssetId( + this.treasuryScriptHash + treasuryAssetName.toString(), + ); + this.treasuryAddress = addressFromValidator( + this.network, + this.treasuryScript, + ); + } + + /** + * Create a V0_2 SDK instance. + */ + static create

( + blaze: Blaze, + params: IRealfiSDKParamsV0_2, + ): RealfiSDKV0_2 { + const enableTrace = params.enableTrace ?? false; + + // Instantiate one-shot script + const oneShotScript = new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script; + const oneShotPolicyId = oneShotScript.hash(); + // Instantiate protocol script (V0_2 uses V0_2ProtocolProtocolWithdraw) + const protocolScript = new V0_2Types.V0_2ProtocolProtocolWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + // Instantiate mint proxy script (parameterized by one-shot policy ID) + const mintProxyScript = new BaseTypes.BaseMintProxyMintProxyMint( + oneShotPolicyId, + enableTrace, + ).Script; + // Instantiate treasury script from treasury bootstrap + const treasuryScript = new V0_1Types.V0_1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + return new RealfiSDKV0_2( + blaze, + { + version: "V0_2", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + enableTrace, + scriptDeploymentAddress: params.scriptDeploymentAddress, + }, + { + oneShotScript, + protocolScript, + mintProxyScript, + treasuryScript, + }, + { + protocolRefInput: params.referenceInputs?.protocolRefInput, + proxyRefInput: params.referenceInputs?.proxyRefInput, + treasuryRefInput: params.referenceInputs?.treasuryRefInput, + }, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Treasury Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the treasury NFT. + * This creates a new treasury with an initial datum. + * The treasury bootstrap UTxO must be provided to consume it. + */ + async mintTreasuryNFT( + treasuryBootstrapUtxo: Core.TransactionUnspentOutput, + initialDatum: V0_1TreasuryDatum = { circulating_supply: 0n }, + ): Promise<{ tx: TxBuilder; nftAssetId: Core.AssetId }> { + const treasuryPolicyId = Core.PolicyId(this.treasuryScriptHash); + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + const treasuryAddress = addressFromValidator( + this.network, + this.treasuryScript, + ); + + const datum = Data.serialize(V0_1TreasuryDatum, initialDatum); + const tx = await this.blaze + .newTransaction() + .addInput(treasuryBootstrapUtxo) + .addMint( + treasuryPolicyId, + new Map([[treasuryAssetName, 1n]]), + Data.Void(), + ) + .lockAssets( + treasuryAddress, + makeValue(10000000n, [this.treasuryNFTAssetId, 1n]), + datum, + ) + .provideScript(this.treasuryScript); + + return { tx, nftAssetId: this.treasuryNFTAssetId }; + } + + /** + * Deploy the treasury script as a reference script. + */ + async deployTreasury(): Promise { + return deployScript( + this.blaze, + this.treasuryScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Get the treasury datum. + */ + async getTreasuryDatum(): Promise> { + const { + utxo: treasuryUtxo, + datum: treasuryDatum, + parsedDatum: parsedTreasuryDatum, + } = await getDatumFromNFT( + this.blaze, + this.treasuryNFTAssetId, + V0_1TreasuryDatum, + ); + + if (!treasuryUtxo) { + throw new Error("No UTXO found with the treasury NFT"); + } + if (!treasuryDatum) { + throw new Error("No treasury datum found"); + } + + return { + treasuryUtxo, + treasuryDatum, + parsedTreasuryDatum: parsedTreasuryDatum as V0_1TreasuryDatum, + }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // One-Shot Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the one-shot NFT with the initial datum. + * V0_2 uses V0_2Types.ProxyDatum which includes withdraw/deposit permissions. + */ + async mintOneShot( + receiverAddress: Core.Address, + datum: V0_2Types.ProxyDatum, + ): Promise<{ tx: TxBuilder; policyId: Core.PolicyId }> { + const utxo = await this.resolveBootstrapUtxo(); + const serializedDatum = Data.serialize(V0_2Types.ProxyDatum, { + logic: datum.logic, + settings: datum.settings, + }); + + const baseTx = this.blaze + .newTransaction() + .addInput(utxo) + .addMint( + this.oneShotPolicyId, + new Map([[Core.AssetName(""), 1n]]), + Data.Void(), + ); + const tx = lockOrPayAssets( + baseTx, + receiverAddress, + makeValue(10000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ).provideScript(this.oneShotScript); + return { tx, policyId: this.oneShotPolicyId }; + } + + /** + * Update the one-shot datum. + */ + async updateOneShotDatum( + receiverAddress: Core.Address, + newDatum: V0_2Types.ProxyDatum, + ): Promise { + const oneshotUtxo = await this.blaze.provider.getUnspentOutputByNFT( + Core.AssetId(this.oneShotPolicyId), + ); + if (!oneshotUtxo) { + throw new Error("No UTXO found with the one-shot NFT"); + } + + const serializedDatum = Data.serialize(V0_2Types.ProxyDatum, { + logic: newDatum.logic, + settings: newDatum.settings, + }); + + return lockOrPayAssets( + this.blaze.newTransaction().addInput(oneshotUtxo), + receiverAddress, + makeValue(10000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ); + } + + /** + * Get the proxy datum from the one-shot token UTXO. + * V0_2 returns V0_2Types.ProxyDatum which includes withdraw/deposit permissions. + * Result is cached after first fetch. + */ + async getParsedProxyDatum(): Promise< + IProxyDatumResult + > { + if (this.cachedProxyDatumResult) { + return this + .cachedProxyDatumResult as IProxyDatumResult; + } + + const { proxyUtxo, proxyDatum } = await this.getRawProxyDatum(); + const parsedProxyDatum = parse(V0_2Types.ProxyDatum, proxyDatum); + const result = { proxyUtxo, proxyDatum, parsedProxyDatum }; + + this.cachedProxyDatumResult = result; + return result; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Minting Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a mint (positive amount) or burn (negative amount) transaction. + * V0_2 minting uses V0_2Types.ProtocolRedeemer. + */ + async buildMintTx(assetAmount: AssetAmount): Promise { + const isBurn = assetAmount.amount < 0n; + const rewardAccount = this.getProtocolRewardAccount(); + const conversionRatio = 1; // V0_2 uses 1:1 conversion ratio (no decimals taken into account, etc.) + + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + + const treasuryScriptHash = Hash28ByteBase16( + parsedProxyDatum.settings.registry.treasury, + ); + + // Get all reference inputs in one call (cached after first fetch) + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + proxy: this.mintProxyScript.hash(), + treasury: treasuryScriptHash, + }); + + const { utxo: treasuryUtxo, parsedDatum: parsedTreasuryDatum } = + await getDatumFromNFT( + this.blaze, + this.treasuryNFTAssetId, + V0_1Types.TreasuryDatum, + ); + + const circulatingSupply = (parsedTreasuryDatum as V0_1TreasuryDatum) + .circulating_supply; + const newCirculatingSupply = circulatingSupply + assetAmount.amount; + + const newTreasuryDatum = Data.serialize(V0_1Types.TreasuryDatum, { + circulating_supply: newCirculatingSupply, + }); + + const reserveToken = parsedProxyDatum.settings.reserve_token.join(""); + const reserveTokenAmount = BigInt(conversionRatio) * assetAmount.amount; + const treasuryAddress = addressFromCredential( + this.network, + credentialFromScriptHash(treasuryScriptHash), + ); + + const redeemer = isBurn + ? Data.serialize(V0_2Types.ProtocolRedeemer, "Burn") + : Data.serialize(V0_2Types.ProtocolRedeemer, "Mint"); + + const assetName = Core.AssetName(this.assetNameHex); + const initialTreasuryValue = treasuryUtxo!.output().amount(); + const valueToAdd = makeValue(0n, [reserveToken, reserveTokenAmount]); + const updatedTreasuryValue = Value.merge(initialTreasuryValue, valueToAdd); + + const tx = this.blaze + .newTransaction() + .addReferenceInput(proxyUtxo!) + .addWithdrawal(rewardAccount, 0n, redeemer) + .addReferenceInput(refInputs.protocol!) + .addReferenceInput(refInputs.proxy!) + .addReferenceInput(refInputs.treasury!) + .addInput(treasuryUtxo!, Void()) + .addMint( + this.stablecoinPolicyId, + new Map([[assetName, assetAmount.amount]]), + Void(), + ) + .lockAssets(treasuryAddress, updatedTreasuryValue, newTreasuryDatum); + + if (isBurn) { + const requiredSigners = getSignatureKeyHashesFromMultisigScript( + parsedProxyDatum.settings.burn_permission, + ).map((key) => Core.Ed25519KeyHashHex(key)); + + for (const signer of requiredSigners) { + tx.addRequiredSigner(signer); + } + + const receiverAddress = await this.blaze.wallet.getChangeAddress(); + addDirectOutput( + tx, + receiverAddress, + makeValue(0n, [reserveToken, -assetAmount.amount]), + ); + } else { + const requiredSigners = getSignatureKeyHashesFromMultisigScript( + parsedProxyDatum.settings.mint_permission, + ).map((key) => Core.Ed25519KeyHashHex(key)); + + for (const signer of requiredSigners) { + tx.addRequiredSigner(signer); + } + } + + return tx; + } + + // ───────────────────────────────────────────────────────────────────────────── + // V0_2-specific Operations: Deposit and Withdraw + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a deposit transaction to add reserve to the treasury. + */ + async buildDepositTx(assetAmount: AssetAmount): Promise { + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + proxy: this.mintProxyScript.hash(), + treasury: this.treasuryScriptHash, + }); + + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + const { treasuryUtxo, treasuryDatum } = await this.getTreasuryDatum(); + + const redeemer = Data.serialize(V0_2Types.ProtocolRedeemer, { + Deposit: { + deposit_amount: assetAmount.amount, + }, + }); + + const rewardAccount = this.getProtocolRewardAccount(); + const requiredSigners = getSignatureKeyHashesFromMultisigScript( + parsedProxyDatum.settings.deposit_permission, + ).map((key) => Core.Ed25519KeyHashHex(key)); + + const reserveToken = AssetId( + assetAmount.id ?? parsedProxyDatum.settings.reserve_token.join(""), + ); + const treasuryAddress = addressFromCredential( + this.network, + credentialFromScriptHash( + Hash28ByteBase16(parsedProxyDatum.settings.registry.treasury), + ), + ); + + const inititalTreasuryValue = treasuryUtxo.output().amount(); + const depositValue = makeValue(0n, [reserveToken, assetAmount.amount]); + const newTreasuryValue = Value.merge(inititalTreasuryValue, depositValue); + + const tx = this.blaze + .newTransaction() + .addWithdrawal(rewardAccount, 0n, redeemer) + .addReferenceInput(proxyUtxo) + .addReferenceInput(refInputs.protocol!) + .addReferenceInput(refInputs.proxy!) + .addReferenceInput(refInputs.treasury!) + .addInput(treasuryUtxo!, Data.Void()) + .lockAssets(treasuryAddress, newTreasuryValue, treasuryDatum); + + for (const signer of requiredSigners) { + tx.addRequiredSigner(signer); + } + + return tx; + } + + /** + * Build a withdraw transaction to remove reserve from the treasury. + * @param amount Amount to withdraw from treasury + * @param receiverAddress Address to send withdrawn assets to; defaults to wallet address + */ + async buildWithdrawTx( + assetAmount: AssetAmount, + receiverAddress?: string, + ): Promise { + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + proxy: this.mintProxyScript.hash(), + treasury: this.treasuryScriptHash, + }); + + const receiver = receiverAddress + ? Core.Address.fromBech32(receiverAddress) + : await this.blaze.wallet.getChangeAddress(); + + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + const { treasuryUtxo, treasuryDatum } = await this.getTreasuryDatum(); + + const redeemer = Data.serialize(V0_2Types.ProtocolRedeemer, { + Withdraw: { + withdraw_amount: assetAmount.amount, + }, + }); + + const rewardAccount = this.getProtocolRewardAccount(); + const requiredSigners = getSignatureKeyHashesFromMultisigScript( + parsedProxyDatum.settings.withdraw_permission, + ).map((key) => Core.Ed25519KeyHashHex(key)); + + const reserveToken = AssetId( + assetAmount.id ?? parsedProxyDatum.settings.reserve_token.join(""), + ); + const treasuryAddress = addressFromCredential( + this.network, + credentialFromScriptHash( + Hash28ByteBase16(parsedProxyDatum.settings.registry.treasury), + ), + ); + + const inititalTreasuryValue = treasuryUtxo.output().amount(); + const withdrawValue = makeValue(0n, [reserveToken, -assetAmount.amount]); + const newTreasuryValue = Value.merge(inititalTreasuryValue, withdrawValue); + + const tx = this.blaze + .newTransaction() + .addWithdrawal(rewardAccount, 0n, redeemer) + .addReferenceInput(proxyUtxo) + .addReferenceInput(refInputs.protocol!) + .addReferenceInput(refInputs.proxy!) + .addReferenceInput(refInputs.treasury!) + .addInput(treasuryUtxo!, Data.Void()); + addDirectOutput( + tx, + receiver, + makeValue(0n, [reserveToken, assetAmount.amount]), + ); + tx.lockAssets(treasuryAddress, newTreasuryValue, treasuryDatum); + + for (const signer of requiredSigners) { + tx.addRequiredSigner(signer); + } + + return tx; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/v0_3/index.ts b/modules/realfi-partner-sdk/src/sdk/v0_3/index.ts new file mode 100644 index 0000000000..a808ef690f --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v0_3/index.ts @@ -0,0 +1,1150 @@ +import { + addressFromCredential, + addressFromValidator, + AssetId, + Ed25519KeyHashHex, + Hash28ByteBase16, + PlutusData, + toHex, +} from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { parse } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + Core, + makeValue, + TxBuilder, + Value, + type Wallet, +} from "@blaze-cardano/sdk"; + +import type { AssetAmount } from "@sundaeswap/asset"; +import { + BaseTypes, + V0_1Types, + V0_3Types, +} from "../../generated-types/index.js"; +import { TreasuryDatum as V0_1TreasuryDatum } from "../../generated-types/v0_1/index.js"; +import type { + Destination, + MultisigScript, + OrderDatum, + ProxyDatum, + SignatureList, +} from "../../generated-types/v0_3/index.js"; +import { + addDirectOutput, + buildNonceFromUtxo, + credentialFromScriptHash, + deployScript, + destinationToAddress, + getDatumFromNFT, + getSignatureKeyHashesFromMultisigScript, + getSignedPayloadForDeposit, + getSignedPayloadForWithdraw, + parseCancelOwner, + resolveOrderReferenceInputs, + type IBaseSDKParams, + type ICachedReferenceInputs, + type IProxyDatumResult, + type IRealfiSDKWithTreasury, + type ITreasuryDatumResult, + type TProtocolVersion, + lockOrPayAssets, + RealfiSDKBase, + sortOrderInputs, +} from "../shared/index.js"; +import type { Request } from "../../generated-types/v0_3/index.js"; + +/** + * Parsed order information extracted from a UTXO. + */ +interface IOrderInfo { + utxo: Core.TransactionUnspentOutput; + datum: OrderDatum; + action: "mint" | "burn"; + amount: bigint; +} + +/** + * Treasury state for order execution. + */ +interface ITreasuryState { + treasuryUtxo: Core.TransactionUnspentOutput; + treasuryValue: Core.Value; + parsedTreasuryDatum: V0_1TreasuryDatum; + currentReserve: bigint; + newReserve: bigint; +} + +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiSDKParamsV0_3 { + version: "V0_3"; + proxyBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + assetNameHex: string; + /** + * The treasury bootstrap UTxO reference. The treasury script and NFT asset ID + * are derived from this reference and the stablecoin policy ID. + */ + treasuryBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Address to deploy reference scripts to (and resolve them from). When + * omitted, Blaze's burn address is used for both deploy and resolve. + */ + scriptDeploymentAddress?: Core.Address; + referenceInputs?: { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + treasuryRefInput?: Core.TransactionUnspentOutput; + orderRefInput?: Core.TransactionUnspentOutput; + }; +} + +/** + * V0_3 SDK implementation. + * + * Extends V0_1 with deposit and withdraw operations for treasury management. + * All operations (oneshot, protocol, mint proxy, treasury) are consolidated here. + */ +export class RealfiSDKV0_3

+ extends RealfiSDKBase + implements IRealfiSDKWithTreasury +{ + readonly version = "V0_3" as const; + + // Script hashes and policy IDs + readonly stablecoinPolicyId: Core.PolicyId; + readonly oneShotPolicyId: Core.PolicyId; + readonly protocolScriptHash: Core.Hash28ByteBase16; + readonly treasuryScriptHash: Core.Hash28ByteBase16; + readonly treasuryNFTAssetId: Core.AssetId; + readonly orderScriptHash: Core.Hash28ByteBase16; + readonly orderScriptAddress: Core.Address; + readonly treasuryAddress: Core.Address; + + // Scripts + protected readonly oneShotScript: Core.Script; + protected readonly protocolScript: Core.Script; + protected readonly mintProxyScript: Core.Script; + protected readonly treasuryScript: Core.Script; + protected readonly orderScript: Core.Script; + + private constructor( + blaze: Blaze, + params: IBaseSDKParams, + scripts: { + oneShotScript: Core.Script; + protocolScript: Core.Script; + mintProxyScript: Core.Script; + treasuryScript: Core.Script; + orderScript: Core.Script; + }, + cachedReferenceInputs?: ICachedReferenceInputs, + ) { + super(blaze, params, cachedReferenceInputs); + + this.oneShotScript = scripts.oneShotScript; + this.protocolScript = scripts.protocolScript; + this.mintProxyScript = scripts.mintProxyScript; + this.treasuryScript = scripts.treasuryScript; + this.orderScript = scripts.orderScript; + this.treasuryAddress = addressFromValidator( + this.network, + this.treasuryScript, + ); + + this.oneShotPolicyId = Core.PolicyId(this.oneShotScript.hash()); + this.protocolScriptHash = this.protocolScript.hash(); + this.stablecoinPolicyId = Core.PolicyId(this.mintProxyScript.hash()); + this.treasuryScriptHash = this.treasuryScript.hash(); + this.orderScriptHash = this.orderScript.hash(); + this.orderScriptAddress = addressFromValidator( + this.network, + this.orderScript, + ); + + // Derive treasury NFT asset ID from treasury script hash + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + this.treasuryNFTAssetId = Core.AssetId( + this.treasuryScriptHash + treasuryAssetName.toString(), + ); + } + + /** + * Create a V0_3 SDK instance. + */ + static create

( + blaze: Blaze, + params: IRealfiSDKParamsV0_3, + ): RealfiSDKV0_3 { + const enableTrace = params.enableTrace ?? false; + + // Instantiate one-shot script + const oneShotScript = new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script; + const oneShotPolicyId = oneShotScript.hash(); + // Instantiate protocol script (V0_3 uses V0_3ProtocolProtocolWithdraw) + const protocolScript = new V0_3Types.V0_3ProtocolProtocolWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + // Instantiate mint proxy script (parameterized by one-shot policy ID) + const mintProxyScript = new BaseTypes.BaseMintProxyMintProxyMint( + oneShotPolicyId, + enableTrace, + ).Script; + // Instantiate treasury script from treasury bootstrap + const treasuryScript = new V0_1Types.V0_1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + const orderScript = new V0_3Types.V0_3OrderOrderSpend( + oneShotPolicyId, + enableTrace, + ).Script; + + return new RealfiSDKV0_3( + blaze, + { + version: "V0_3", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + enableTrace, + scriptDeploymentAddress: params.scriptDeploymentAddress, + }, + { + oneShotScript, + protocolScript, + mintProxyScript, + treasuryScript, + orderScript, + }, + { + protocolRefInput: params.referenceInputs?.protocolRefInput, + proxyRefInput: params.referenceInputs?.proxyRefInput, + treasuryRefInput: params.referenceInputs?.treasuryRefInput, + orderRefInput: params.referenceInputs?.orderRefInput, + }, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Treasury Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the treasury NFT. + * This creates a new treasury with an initial datum. + * The treasury bootstrap UTxO must be provided to consume it. + */ + async mintTreasuryNFT( + treasuryBootstrapUtxo: Core.TransactionUnspentOutput, + initialDatum: V0_1TreasuryDatum = { circulating_supply: 0n }, + ): Promise<{ tx: TxBuilder; nftAssetId: Core.AssetId }> { + const treasuryPolicyId = Core.PolicyId(this.treasuryScriptHash); + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + const treasuryAddress = addressFromValidator( + this.network, + this.treasuryScript, + ); + + const datum = Data.serialize(V0_1TreasuryDatum, initialDatum); + const tx = await this.blaze + .newTransaction() + .addInput(treasuryBootstrapUtxo) + .addMint( + treasuryPolicyId, + new Map([[treasuryAssetName, 1n]]), + Data.Void(), + ) + .lockAssets( + treasuryAddress, + makeValue(10000000n, [this.treasuryNFTAssetId, 1n]), + datum, + ) + .provideScript(this.treasuryScript); + + return { tx, nftAssetId: this.treasuryNFTAssetId }; + } + + /** + * Deploy the treasury script as a reference script. + */ + async deployTreasury(): Promise { + return deployScript( + this.blaze, + this.treasuryScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Deploy the Orders script as a reference script. + */ + async deployOrderContract(): Promise { + return deployScript( + this.blaze, + this.orderScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Get the treasury datum. + */ + async getTreasuryDatum(): Promise> { + const { + utxo: treasuryUtxo, + datum: treasuryDatum, + parsedDatum: parsedTreasuryDatum, + } = await getDatumFromNFT( + this.blaze, + this.treasuryNFTAssetId, + V0_1TreasuryDatum, + ); + + if (!treasuryUtxo) { + throw new Error("No UTXO found with the treasury NFT"); + } + if (!treasuryDatum) { + throw new Error("No treasury datum found"); + } + + return { + treasuryUtxo, + treasuryDatum, + parsedTreasuryDatum: parsedTreasuryDatum as V0_1TreasuryDatum, + }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // One-Shot Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the one-shot NFT with the initial datum. + * V0_3 uses ProxyDatum which includes withdraw/deposit permissions. + */ + async mintOneShot( + receiverAddress: Core.Address, + datum: ProxyDatum, + ): Promise<{ tx: TxBuilder; policyId: Core.PolicyId }> { + const utxo = await this.resolveBootstrapUtxo(); + const serializedDatum = Data.serialize(V0_3Types.ProxyDatum, { + logic: datum.logic, + settings: datum.settings, + }); + + const baseTx = this.blaze + .newTransaction() + .addInput(utxo) + .addMint( + this.oneShotPolicyId, + new Map([[Core.AssetName(""), 1n]]), + Data.Void(), + ); + const tx = lockOrPayAssets( + baseTx, + receiverAddress, + makeValue(10000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ).provideScript(this.oneShotScript); + return { tx, policyId: this.oneShotPolicyId }; + } + + /** + * Update the one-shot datum. + */ + async updateOneShotDatum( + receiverAddress: Core.Address, + newDatum: ProxyDatum, + ): Promise { + const oneshotUtxo = await this.blaze.provider.getUnspentOutputByNFT( + Core.AssetId(this.oneShotPolicyId), + ); + if (!oneshotUtxo) { + throw new Error("No UTXO found with the one-shot NFT"); + } + + const serializedDatum = Data.serialize(V0_3Types.ProxyDatum, { + logic: newDatum.logic, + settings: newDatum.settings, + }); + + return lockOrPayAssets( + this.blaze.newTransaction().addInput(oneshotUtxo), + receiverAddress, + makeValue(10000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ); + } + + /** + * Get the proxy datum from the one-shot token UTXO. + * V0_3 returns ProxyDatum which includes withdraw/deposit permissions. + * Result is cached after first fetch. + */ + async getParsedProxyDatum(): Promise> { + if (this.cachedProxyDatumResult) { + return this.cachedProxyDatumResult as IProxyDatumResult; + } + + const { proxyUtxo, proxyDatum } = await this.getRawProxyDatum(); + const parsedProxyDatum = parse(V0_3Types.ProxyDatum, proxyDatum); + const result = { proxyUtxo, proxyDatum, parsedProxyDatum }; + + this.cachedProxyDatumResult = result; + return result; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Order Execution Helpers + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Parse order UTXOs into IOrderInfo objects and validate they're all the same type. + * @returns The parsed order infos and the action type (mint or burn) + */ + private parseOrderInfos(orderUtxos: Core.TransactionUnspentOutput[]): { + orderInfos: IOrderInfo[]; + actionType: "mint" | "burn"; + } { + const orderInfos: IOrderInfo[] = []; + let actionType: "mint" | "burn" | null = null; + + for (const utxo of orderUtxos) { + const datumData = utxo.output().datum()?.asInlineData(); + if (!datumData) { + throw new Error("Order UTXO has no inline datum"); + } + const datum = parse(V0_3Types.OrderDatum, datumData) as OrderDatum; + + let action: "mint" | "burn"; + let amount: bigint; + + if ("OMint" in datum.action) { + action = "mint"; + amount = datum.action.OMint.amount; + } else if ("ORedeem" in datum.action) { + action = "burn"; + amount = datum.action.ORedeem.amount; + } else { + throw new Error("Unknown order action type"); + } + + // Verify all orders are the same type + if (actionType === null) { + actionType = action; + } else if (actionType !== action) { + throw new Error( + "Mixed order types in inputs. All orders must be of the same type.", + ); + } + + orderInfos.push({ utxo, datum, action, amount }); + } + + if (!actionType) { + throw new Error("No orders to execute"); + } + + return { orderInfos, actionType }; + } + + /** + * Calculate treasury state for order execution. + * Validates that treasury has sufficient reserve tokens for burn operations. + */ + private async calculateTreasuryState( + totalAmount: bigint, + actionType: "mint" | "burn", + reserveTokenAssetId: Core.AssetId, + ): Promise { + const { treasuryUtxo, parsedTreasuryDatum } = await this.getTreasuryDatum(); + const treasuryValue = treasuryUtxo.output().amount(); + const treasuryAssets = treasuryValue.multiasset(); + const currentReserve = treasuryAssets?.get(reserveTokenAssetId) ?? 0n; + const newReserve = currentReserve + totalAmount; + + // For burn operations, validate treasury has enough reserve tokens + if (actionType === "burn") { + if (currentReserve === 0n) { + throw new Error( + "Treasury has no reserve tokens. Cannot execute burn orders.", + ); + } + // totalAmount is negative for burns, so newReserve < 0 means insufficient funds + if (newReserve < 0n) { + throw new Error( + `Insufficient reserve tokens in treasury. Treasury has ${currentReserve} but burn requires ${-totalAmount}.`, + ); + } + } + + return { + treasuryUtxo, + treasuryValue, + parsedTreasuryDatum, + currentReserve, + newReserve, + }; + } + + /** + * Add destination outputs for executed orders. + * For mints: sends stablecoins to destinations. + * For burns: sends reserve tokens to destinations. + */ + private addDestinationOutputs( + tx: TxBuilder, + orderInfos: IOrderInfo[], + actionType: "mint" | "burn", + stablecoinAssetId: Core.AssetId, + reserveTokenAssetId: Core.AssetId, + ): void { + for (const orderInfo of orderInfos) { + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + + if (actionType === "mint") { + const outputValue = makeValue(2000000n, [ + stablecoinAssetId, + orderInfo.amount, + ]); + addDirectOutput(tx, destAddress, outputValue); + } else { + // For burns, amount is negative in the datum, so negate it for output + const outputValue = makeValue(2000000n, [ + reserveTokenAssetId, + -orderInfo.amount, + ]); + console.log(destAddress.toBech32(), orderInfo.amount); + addDirectOutput(tx, destAddress, outputValue); + } + } + } + + /** + * Update treasury with new reserve balance and circulating supply. + */ + private updateTreasury( + tx: TxBuilder, + treasuryState: ITreasuryState, + totalAmount: bigint, + reserveTokenAssetId: Core.AssetId, + ): void { + const newTreasuryDatum: V0_1TreasuryDatum = { + circulating_supply: + treasuryState.parsedTreasuryDatum.circulating_supply + totalAmount, + }; + const serializedTreasuryDatum = Data.serialize( + V0_1TreasuryDatum, + newTreasuryDatum, + ); + + tx.addInput(treasuryState.treasuryUtxo, Data.Void()); + const newTreasuryValue = Value.merge( + makeValue(treasuryState.treasuryValue.coin(), [ + this.treasuryNFTAssetId, + 1n, + ]), + makeValue(0n, [reserveTokenAssetId, treasuryState.newReserve]), + ); + tx.lockAssets( + this.treasuryAddress, + newTreasuryValue, + serializedTreasuryDatum, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Minting Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * + * @param action "mint" | "burn" + * @param amount amount of stablecoin to mint or burn + * @param owner Optional owner multisig script. Defaults to the wallet's change address. + * @param destination When minting, where to send the minted stablecoins. When burning, where to send the redeemed assets. A datum can be attached. + * @param data Optional datum data. Defaults to Data.Void() + * @returns TxBuilder + */ + async buildOrderTx({ + action, + amount, + owner, + destination, + data = Data.Void(), + }: { + action: "mint" | "burn"; + amount: bigint; + owner?: MultisigScript; + destination: Destination; + data?: PlutusData; + }): Promise { + const CONVERTION_RATIO = 1n; // Define conversion ratio between stablecoin and reserve token. Should come from datum/settings + const stableCoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const orderContractAddress = addressFromValidator( + this.network, + this.orderScript, + ); + + if (!owner) { + owner = { + Signature: { + key_hash: (await this.blaze.wallet.getChangeAddress()) + .getProps() + .paymentPart!.hash!.toString(), + }, + }; + } else { + const scriptTypes = Object.keys(owner); + if (scriptTypes.length !== 1 || scriptTypes[0] !== "Signature") { + //TODO: support other multisig types once the backend supports them + throw new Error( + "Only Signature multisig script is currently supported for owner", + ); + } + } + const orderAction = + action === "mint" + ? { OMint: { amount } } + : { ORedeem: { amount: -amount } }; + const orderDatum: OrderDatum = { + action: orderAction, + owner, + destination, + data, + }; + const serializedDatum = Data.serialize(V0_3Types.OrderDatum, orderDatum); + const proxyDatum = await this.getParsedProxyDatum(); + const reserveTokenAssetId = Core.AssetId( + proxyDatum.parsedProxyDatum.settings.reserve_token.join(""), + ); + + const tx = this.blaze.newTransaction(); + + let valueToLock: Core.Value; + //TODO: include fees and min ada for when the order is executed? + if (action === "mint") { + // minting stablecoin, lock reserve token + const reserveTokenAmount = amount * CONVERTION_RATIO; + + valueToLock = makeValue(1000000n, [ + reserveTokenAssetId, + reserveTokenAmount, + ]); + } else { + // burning stablecoin, lock stablecoin + valueToLock = makeValue(1000000n, [stableCoinAssetId, amount]); + } + tx.lockAssets(orderContractAddress, valueToLock, serializedDatum); + + return tx; + } + /** + * Build the SignedPayload_ProtocolRedeemer from order inputs. + * Returns CBOR hex string to be signed and included in SignedMessage. + */ + async getSignedPayloadFromOrderInputs( + orderUtxos: Core.TransactionInput[], + ): Promise { + if (orderUtxos.length === 0) { + throw new Error("At least one order UTxO is required"); + } + + // Sort inputs for deterministic ordering + const sortedInputs = sortOrderInputs(orderUtxos); + + // Build nonce from first UTxO + const nonce = buildNonceFromUtxo(sortedInputs[0]!); + + // Resolve UTxOs and build request list + const resolvedUtxos = + await this.blaze.provider.resolveUnspentOutputs(sortedInputs); + const requestList: Request[] = []; + let actionType: "OMint" | "ORedeem" | null = null; + + for (const utxo of resolvedUtxos) { + const parsed = this.parseOrderActionForPayload(utxo); + + // Validate all orders are the same type + if (actionType === null) { + actionType = parsed.actionType; + } else if (actionType !== parsed.actionType) { + throw new Error( + "Mixed order types in inputs. All orders must be of the same type.", + ); + } + + requestList.push( + this.buildRequestFromUtxo(utxo, parsed.amount, parsed.destination), + ); + } + + // Build the action (ProtocolRedeemer) + const action: V0_3Types.ProtocolRedeemer = + actionType === "OMint" + ? { Mint: { requests: requestList } } + : { Burn: { requests: requestList } }; + + // Build and serialize SignedPayload_ProtocolRedeemer + const signedPayload: V0_3Types.SignedPayload_ProtocolRedeemer = { + action, + nonce, + }; + const serialized = Data.serialize( + V0_3Types.SignedPayload_ProtocolRedeemer, + signedPayload, + ); + return serialized.toCbor().toString(); + } + + /** + * Parse an order UTxO and extract action type, amount, and destination. + */ + private parseOrderActionForPayload(utxo: Core.TransactionUnspentOutput): { + actionType: "OMint" | "ORedeem"; + amount: bigint; + destination: V0_3Types.Destination; + } { + const datum = utxo.output().datum()?.asInlineData(); + if (!datum) { + throw new Error("Order UTXO has no inline datum"); + } + + const parsedDatum = parse(V0_3Types.OrderDatum, datum); + + if ("OMint" in parsedDatum.action) { + return { + actionType: "OMint", + amount: parsedDatum.action.OMint.amount, + destination: parsedDatum.destination, + }; + } else if ("ORedeem" in parsedDatum.action) { + return { + actionType: "ORedeem", + amount: parsedDatum.action.ORedeem.amount, + destination: parsedDatum.destination, + }; + } + + throw new Error("Unknown order action type"); + } + + /** + * Build a Request from an order UTxO. + * Serializes the origin (OutputReference) as CBOR to match Aiken's format. + */ + private buildRequestFromUtxo( + utxo: Core.TransactionUnspentOutput, + amount: bigint, + destination: V0_3Types.Destination, + ): Request { + const input = utxo.input(); + const txId = input.transactionId().toString(); + const outputIndex = input.index(); + + // Serialize origin as PlutusData (matching Aiken's cbor.serialise format) + // OutputReference struct: { transaction_id: ByteArray, output_index: Int } + const fieldsList = new Core.PlutusList(); + fieldsList.add(Core.PlutusData.newBytes(Buffer.from(txId, "hex"))); + fieldsList.add(Core.PlutusData.newInteger(outputIndex)); + const outputRefData = Core.PlutusData.newConstrPlutusData( + new Core.ConstrPlutusData(0n, fieldsList), + ); + + return { + origin: outputRefData.toCbor(), + amount, + destination, + }; + } + + /** + * Build a transaction to execute orders. + * This consumes order UTXOs, validates the signed redeemer, mints/burns stablecoins, + * and sends the results to the destinations specified in the orders. + * + * @param params.orderInputs - The order transaction inputs to execute + * @param params.signedPayload - The signed payload hex string from getSignedPayloadFromOrderInputs + * @param params.signatures - Array of signatures from each signer + * @returns TxBuilder ready to be completed and signed + */ + async buildExecuteOrdersTx(params: { + orderInputs: Core.TransactionInput[]; + signedPayload: string; + signatures: SignatureList; + }): Promise { + const { orderInputs, signedPayload, signatures } = params; + + // Sort and resolve order UTXOs + const sortedOrderInputs = sortOrderInputs(orderInputs); + const orderUtxos = + await this.blaze.provider.resolveUnspentOutputs(sortedOrderInputs); + + // Parse orders and validate they're all the same type + const { orderInfos, actionType } = this.parseOrderInfos(orderUtxos); + + // Get protocol datum for permissions and registry + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + + // Get script reference inputs (uses caching from base class) + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + order: this.orderScriptHash, + treasury: this.treasuryScriptHash, + }); + const protocolRefInput = refInputs.protocol; + const orderRefInput = refInputs.order; + const treasuryRefInput = refInputs.treasury; + + if (!protocolRefInput || !orderRefInput || !treasuryRefInput) { + throw new Error( + "Missing reference script inputs. Make sure all scripts are deployed.", + ); + } + + // Calculate total amount and get asset IDs + const totalAmount = orderInfos.reduce((sum, info) => sum + info.amount, 0n); + const reserveTokenAssetId = Core.AssetId( + parsedProxyDatum.settings.reserve_token.join(""), + ); + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + + // Calculate treasury state and validate for burns + const treasuryState = await this.calculateTreasuryState( + totalAmount, + actionType, + reserveTokenAssetId, + ); + + // Build request_to_outputs mapping (1:1 since outputs are in same order as inputs) + const requestToOutputs: Record = {}; + for (let i = 0; i < orderInfos.length; i++) { + requestToOutputs[i] = BigInt(i); + } + + // Serialize redeemers + const serializedSignedRedeemer = Data.serialize( + V0_3Types.SignedRedeemer_ExtraProtocolRedeemer, + { + extra: { request_to_outputs: requestToOutputs }, + payload: signedPayload, + signatures: signatures, + }, + ); + const executeRedeemer = Data.serialize(V0_3Types.OrderRedeemer, "Execute"); + + // Build the transaction + + const tx = this.blaze.newTransaction(); + + // Add order inputs with Execute redeemer + for (const orderInfo of orderInfos) { + tx.addInput(orderInfo.utxo, executeRedeemer); + } + + // Add reference inputs + tx.addReferenceInput(protocolRefInput); + tx.addReferenceInput(orderRefInput); + tx.addReferenceInput(proxyUtxo); + tx.addReferenceInput(treasuryRefInput); + + // Add protocol withdrawal with signed redeemer + const protocolRewardAccount = Core.RewardAccount.fromCredential( + { + type: Core.CredentialType.ScriptHash, + hash: this.protocolScriptHash, + }, + this.network, + ); + tx.addWithdrawal(protocolRewardAccount, 0n, serializedSignedRedeemer); + + // Mint/burn stablecoins + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Add destination outputs + this.addDestinationOutputs( + tx, + orderInfos, + actionType, + stablecoinAssetId, + reserveTokenAssetId, + ); + + // Update treasury + this.updateTreasury(tx, treasuryState, totalAmount, reserveTokenAssetId); + + // Provide the mint proxy script for minting + tx.provideScript(this.mintProxyScript); + + return tx; + } + + /** + * Build a transaction to cancel orders. + * This returns the locked assets to the specified destination address. + * The transaction must be signed by the owner(s) specified in each order's datum. + * + * @param params.orderInputs - The order transaction inputs to cancel + * @param params.destination - Optional destination address. Defaults to the wallet's change address. + * @returns TxBuilder ready to be completed and signed + */ + async buildCancelOrdersTx(params: { + orderInputs: Core.TransactionInput[]; + destination?: Core.Address; + versionHint?: TProtocolVersion; // version of the orders to cancel. Optional, only to ensure correct datum parsing. + }): Promise { + const { orderInputs, destination, versionHint } = params; + + // Resolve order UTXOs + const orderUtxos = + await this.blaze.provider.resolveUnspentOutputs(orderInputs); + + if (orderUtxos.length === 0) { + throw new Error("No orders to cancel"); + } + + const cachedOrderRefs = this.cachedReferenceInputs.orderRefInput + ? new Map([ + [this.orderScriptHash, this.cachedReferenceInputs.orderRefInput], + ]) + : undefined; + + const orderRefInputs = await resolveOrderReferenceInputs( + this.blaze, + orderUtxos, + cachedOrderRefs, + this.scriptDeploymentAddress, + ); + + // Build the cancel redeemer + const cancelRedeemer = Data.serialize(V0_3Types.OrderRedeemer, "Cancel"); + + // Determine destination address + const destAddress = + destination ?? (await this.blaze.wallet.getChangeAddress()); + + // Build the transaction + + const tx = this.blaze.newTransaction(); + + for (const orderRefInput of orderRefInputs.values()) { + tx.addReferenceInput(orderRefInput); + } + + // cache current version of order script reference input + const currentOrderRefInput = orderRefInputs.get(this.orderScriptHash); + if (currentOrderRefInput && !this.cachedReferenceInputs.orderRefInput) { + this.cachedReferenceInputs.orderRefInput = currentOrderRefInput; + } + + // Collect all required signers from order owners + const requiredSigners = new Set(); + + // Process each order + for (const utxo of orderUtxos) { + const owner = await parseCancelOwner(utxo, versionHint); + + // Extract required signers from the owner's MultisigScript + for (const keyHash of getSignatureKeyHashesFromMultisigScript(owner)) { + requiredSigners.add(keyHash); + } + + // Add order input with Cancel redeemer + tx.addInput(utxo, cancelRedeemer); + + // Return the locked assets to destination + const outputValue = utxo.output().amount(); + addDirectOutput(tx, destAddress, outputValue); + } + + // Add all required signers to the transaction + for (const keyHash of requiredSigners) { + tx.addRequiredSigner(Ed25519KeyHashHex(keyHash)); + } + + return tx; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Treasury Operations: Withdraw and Deposit + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a transaction to withdraw reserve tokens from the treasury. + * The transaction must be signed by the authorized withdraw permission signers. + * + * @param params.requests - Array of withdraw requests with destinations and amounts + * @param params.signedPayload - The signed payload hex string from getSignedPayloadForWithdraw + * @param params.signatures - Array of KeySignature tuples from authorized signers + * @returns TxBuilder ready to be completed and signed + */ + /** + * Build a withdraw transaction to remove reserve from the treasury. + * @param amount Amount to withdraw from treasury + * @param receiverAddress Address to send withdrawn assets to; defaults to wallet address + */ + async buildWithdrawTx( + assetAmount: AssetAmount, + receiverAddress?: string, + ): Promise { + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + proxy: this.mintProxyScript.hash(), + treasury: this.treasuryScriptHash, + }); + + const receiver = receiverAddress + ? Core.Address.fromBech32(receiverAddress) + : await this.blaze.wallet.getChangeAddress(); + + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + const { treasuryUtxo, treasuryDatum } = await this.getTreasuryDatum(); + + const serializedPayload = getSignedPayloadForWithdraw( + assetAmount.amount, + treasuryUtxo!, + ); + // Build SignedRedeemer_ExtraProtocolRedeemer + const serializedSignedRedeemer = Data.serialize( + V0_3Types.SignedRedeemer_ExtraProtocolRedeemer, + { + extra: { request_to_outputs: { 0: 0n } }, + payload: serializedPayload, + signatures: [], + }, + ); + + const rewardAccount = this.getProtocolRewardAccount(); + const requiredSigners = getSignatureKeyHashesFromMultisigScript( + parsedProxyDatum.settings.withdraw_permission, + ).map((key) => Core.Ed25519KeyHashHex(key)); + + const reserveToken = AssetId( + assetAmount.id ?? parsedProxyDatum.settings.reserve_token.join(""), + ); + const treasuryAddress = addressFromCredential( + this.network, + credentialFromScriptHash( + Hash28ByteBase16(parsedProxyDatum.settings.registry.treasury), + ), + ); + + const inititalTreasuryValue = treasuryUtxo.output().amount(); + const withdrawValue = makeValue(0n, [reserveToken, -assetAmount.amount]); + const newTreasuryValue = Value.merge(inititalTreasuryValue, withdrawValue); + + const tx = this.blaze + .newTransaction() + .addWithdrawal(rewardAccount, 0n, serializedSignedRedeemer) + .addReferenceInput(proxyUtxo) + .addReferenceInput(refInputs.protocol!) + .addReferenceInput(refInputs.proxy!) + .addReferenceInput(refInputs.treasury!) + .addInput(treasuryUtxo!, Data.Void()); + addDirectOutput( + tx, + receiver, + makeValue(0n, [reserveToken, assetAmount.amount]), + ); + tx.lockAssets(treasuryAddress, newTreasuryValue, treasuryDatum); + + for (const signer of requiredSigners) { + tx.addRequiredSigner(signer); + } + + return tx; + } + + async buildDepositTx(assetAmount: AssetAmount): Promise { + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + proxy: this.mintProxyScript.hash(), + treasury: this.treasuryScriptHash, + }); + + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + const { treasuryUtxo, treasuryDatum } = await this.getTreasuryDatum(); + + const serializedPayload = getSignedPayloadForDeposit( + assetAmount.amount, + treasuryUtxo!, + ); + // Build SignedRedeemer_ExtraProtocolRedeemer + const serializedSignedRedeemer = Data.serialize( + V0_3Types.SignedRedeemer_ExtraProtocolRedeemer, + { + extra: { request_to_outputs: { 0: 0n } }, + payload: serializedPayload, + signatures: [], + }, + ); + + const rewardAccount = this.getProtocolRewardAccount(); + const requiredSigners = getSignatureKeyHashesFromMultisigScript( + parsedProxyDatum.settings.deposit_permission, + ).map((key) => Core.Ed25519KeyHashHex(key)); + + const reserveToken = AssetId( + assetAmount.id ?? parsedProxyDatum.settings.reserve_token.join(""), + ); + const treasuryAddress = addressFromCredential( + this.network, + credentialFromScriptHash( + Hash28ByteBase16(parsedProxyDatum.settings.registry.treasury), + ), + ); + + const inititalTreasuryValue = treasuryUtxo.output().amount(); + const depositValue = makeValue(0n, [reserveToken, assetAmount.amount]); + const newTreasuryValue = Value.merge(inititalTreasuryValue, depositValue); + + const tx = this.blaze + .newTransaction() + .addWithdrawal(rewardAccount, 0n, serializedSignedRedeemer) + .addReferenceInput(proxyUtxo) + .addReferenceInput(refInputs.protocol!) + .addReferenceInput(refInputs.proxy!) + .addReferenceInput(refInputs.treasury!) + .addInput(treasuryUtxo!, Data.Void()) + .lockAssets(treasuryAddress, newTreasuryValue, treasuryDatum); + + for (const signer of requiredSigners) { + tx.addRequiredSigner(signer); + } + + return tx; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/v0_4/index.ts b/modules/realfi-partner-sdk/src/sdk/v0_4/index.ts new file mode 100644 index 0000000000..1a37055e17 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v0_4/index.ts @@ -0,0 +1,2127 @@ +import { + addressFromValidator, + blake2b_256, + Ed25519KeyHashHex, + HexBlob, + PlutusData, + toHex, +} from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { parse } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + Core, + makeValue, + TxBuilder, + Value, + type Wallet, +} from "@blaze-cardano/sdk"; + +import { + BaseTypes, + V0_1Types, + V0_4Types, +} from "../../generated-types/index.js"; +import { TreasuryDatum as V0_1TreasuryDatum } from "../../generated-types/v0_1/index.js"; +import type { + Destination, + MultisigScript, + OrderDatum, + ProxyDatum, + Settings, + VaultDatum, +} from "../../generated-types/v0_4/index.js"; +import { + addDirectOutput, + addDestinationOutput, + buildNonceFromUtxo, + buildTimelockAddress, + buildTimelockDestination, + buildTimelockNativeScript, + buildUnstakeMetadatum, + UNSTAKE_METADATA_LABEL, + deployScript, + destinationToAddress, + findReserveAsset, + getDatumFromNFT, + getSignatureKeyHashesFromMultisigScript, + usdrToReserve, + usdrToReserveCeil, + computeReserveDeltas, + parseCancelOwner, + resolveOrderReferenceInputs, + type ICachedReferenceInputs, + type IProxyDatumResult, + type IRealfiSDKWithTreasury, + type ITreasuryDatumResult, + type IVaultDatumResult, + type TClientSource, + type TProtocolVersion, + lockOrPayAssets, + RealfiSDKBase, + sortOrderInputs, +} from "../shared/index.js"; + +// ───────────────────────────────────────────────────────────────────────────── +// Types +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Parsed order information extracted from a UTXO. + */ +interface IOrderInfo { + utxo: Core.TransactionUnspentOutput; + datum: OrderDatum; + actionType: TOrderActionType; + amount: bigint; + /** Yield amount for deposit actions */ + yield?: bigint; + /** Reserve asset for treasury actions, undefined for stake/unstake */ + reserveAsset?: [string, string]; +} + +type TOrderActionType = + | "mint" + | "burn" + | "deposit" + | "withdraw" + | "stake" + | "unstake"; + +interface ITxBuilderWithInternals { + body: Core.TransactionBody; + redeemers: Core.Redeemers; +} + +const MIN_LOVELACE = 2000000n; + +/** + * Floor division for BigInt (rounds toward negative infinity). + * JavaScript BigInt `/` truncates toward zero, but Aiken (Plutus) + * uses floor division. These differ for negative dividends. + */ +/** + * Extract the requests list from a signed payload action, regardless of action type. + * Both TreasuryRequest and Request have `origin: { transaction_id, output_index }`. + */ +function getRequestsFromAction( + action: V0_4Types.ProtocolRedeemer, +): Array<{ origin: { transaction_id: string; output_index: bigint } }> { + if ("Mint" in action) return action.Mint.requests; + if ("Burn" in action) return action.Burn.requests; + if ("Withdraw" in action) return action.Withdraw.requests; + if ("Deposit" in action) return action.Deposit.requests; + if ("Stake" in action) return action.Stake.requests; + if ("Unstake" in action) return action.Unstake.requests; + throw new Error("Unknown action type in signed payload"); +} + +function floorDiv(a: bigint, b: bigint): bigint { + const q = a / b; + // Adjust if signs differ and there's a remainder + if ((a ^ b) < 0n && q * b !== a) { + return q - 1n; + } + return q; +} + +/** + * Calculate yield split between staked and unstaked portions. + * Matches on-chain deposit.ak logic: staked_yield_share = total_yield * vault_usdr / treasury_circulating + */ +function calculateYieldShares( + totalYield: bigint, + vaultUSDr: bigint, + treasuryCirculating: bigint, +): { stakedYieldShare: bigint; unstakedYieldShare: bigint } { + const stakedYieldShare = + treasuryCirculating > 0n + ? floorDiv(totalYield * vaultUSDr, treasuryCirculating) + : 0n; + const unstakedYieldShare = totalYield - stakedYieldShare; + return { stakedYieldShare, unstakedYieldShare }; +} + +function toSpendOrderingKey(input: Core.TransactionInput): string { + return `${input.transactionId().toString()}${input.index().toString()}`; +} + +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiSDKParamsV0_4 { + version: "V0_4"; + proxyBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** USDr asset name hex */ + assetNameHex: string; + /** sUSDr asset name hex */ + sUSDrAssetNameHex: string; + /** The treasury bootstrap UTxO reference */ + treasuryBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** The staking vault bootstrap UTxO reference */ + stakingVaultBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Address to deploy reference scripts to (and resolve them from). When + * omitted, Blaze's burn address is used for both deploy and resolve. + */ + scriptDeploymentAddress?: Core.Address; + referenceInputs?: { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + treasuryRefInput?: Core.TransactionUnspentOutput; + orderRefInput?: Core.TransactionUnspentOutput; + stakingVaultRefInput?: Core.TransactionUnspentOutput; + }; + clientSource?: TClientSource; +} + +// ───────────────────────────────────────────────────────────────────────────── +// SDK Class +// ───────────────────────────────────────────────────────────────────────────── + +/** + * V0_4 SDK implementation. + * + * Extends the protocol with staking (USDr->sUSDr), unstaking (sUSDr->USDr), + * multi-reserve assets, deposit with interest splitting, and index-based optimization. + * All order types (mint, burn, deposit, withdraw, stake, unstake) are request-based. + */ +export class RealfiSDKV0_4

+ extends RealfiSDKBase + implements IRealfiSDKWithTreasury +{ + readonly version = "V0_4" as const; + + // Script hashes and policy IDs + readonly stablecoinPolicyId: Core.PolicyId; + readonly oneShotPolicyId: Core.PolicyId; + readonly protocolScriptHash: Core.Hash28ByteBase16; + readonly treasuryScriptHash: Core.Hash28ByteBase16; + readonly treasuryNFTAssetId: Core.AssetId; + readonly orderScriptHash: Core.Hash28ByteBase16; + readonly orderScriptAddress: Core.Address; + readonly treasuryAddress: Core.Address; + readonly stakingVaultScriptHash: Core.Hash28ByteBase16; + readonly stakingVaultAddress: Core.Address; + readonly stakingVaultNFTAssetId: Core.AssetId; + readonly sUSDrAssetNameHex: string; + + // Scripts + protected readonly oneShotScript: Core.Script; + protected readonly protocolScript: Core.Script; + protected readonly mintProxyScript: Core.Script; + protected readonly treasuryScript: Core.Script; + protected readonly orderScript: Core.Script; + protected readonly stakingVaultScript: Core.Script; + + private constructor( + blaze: Blaze, + params: { + version: "V0_4"; + proxyBootstrap: { txHash: Core.TransactionId; outputIndex: bigint }; + assetNameHex: string; + sUSDrAssetNameHex: string; + enableTrace?: boolean; + scriptDeploymentAddress?: Core.Address; + clientSource?: TClientSource; + }, + scripts: { + oneShotScript: Core.Script; + protocolScript: Core.Script; + mintProxyScript: Core.Script; + treasuryScript: Core.Script; + orderScript: Core.Script; + stakingVaultScript: Core.Script; + }, + cachedReferenceInputs?: ICachedReferenceInputs, + ) { + super( + blaze, + { + version: "V0_4", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + enableTrace: params.enableTrace, + scriptDeploymentAddress: params.scriptDeploymentAddress, + clientSource: params.clientSource, + }, + cachedReferenceInputs, + ); + + this.sUSDrAssetNameHex = params.sUSDrAssetNameHex; + + this.oneShotScript = scripts.oneShotScript; + this.protocolScript = scripts.protocolScript; + this.mintProxyScript = scripts.mintProxyScript; + this.treasuryScript = scripts.treasuryScript; + this.orderScript = scripts.orderScript; + this.stakingVaultScript = scripts.stakingVaultScript; + + this.oneShotPolicyId = Core.PolicyId(this.oneShotScript.hash()); + this.protocolScriptHash = this.protocolScript.hash(); + this.stablecoinPolicyId = Core.PolicyId(this.mintProxyScript.hash()); + this.treasuryScriptHash = this.treasuryScript.hash(); + this.orderScriptHash = this.orderScript.hash(); + this.stakingVaultScriptHash = this.stakingVaultScript.hash(); + + this.treasuryAddress = addressFromValidator( + this.network, + this.treasuryScript, + ); + this.orderScriptAddress = addressFromValidator( + this.network, + this.orderScript, + ); + this.stakingVaultAddress = addressFromValidator( + this.network, + this.stakingVaultScript, + ); + + // Treasury NFT: policy = treasury script hash, name = "treasury" + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + this.treasuryNFTAssetId = Core.AssetId( + this.treasuryScriptHash + treasuryAssetName.toString(), + ); + + // Staking vault NFT: policy = staking vault script hash, name = "staking_vault" + const vaultAssetName = Core.AssetName(toHex(Buffer.from("staking_vault"))); + this.stakingVaultNFTAssetId = Core.AssetId( + this.stakingVaultScriptHash + vaultAssetName.toString(), + ); + } + + /** + * Create a V0_4 SDK instance. + */ + static create

( + blaze: Blaze, + params: IRealfiSDKParamsV0_4, + ): RealfiSDKV0_4 { + const enableTrace = params.enableTrace ?? false; + + const oneShotScript = new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script; + const oneShotPolicyId = oneShotScript.hash(); + + const protocolScript = new V0_4Types.V0_4ProtocolProtocolWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + const mintProxyScript = new BaseTypes.BaseMintProxyMintProxyMint( + oneShotPolicyId, + enableTrace, + ).Script; + + const treasuryScript = new V0_1Types.V0_1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + const orderScript = new V0_4Types.V0_4OrderOrderSpend( + oneShotPolicyId, + enableTrace, + ).Script; + + const stakingVaultScript = new V0_4Types.V0_4StakingVaultStakingVaultSpend( + { + transaction_id: params.stakingVaultBootstrap.txHash, + output_index: params.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + return new RealfiSDKV0_4( + blaze, + { + version: "V0_4", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + sUSDrAssetNameHex: params.sUSDrAssetNameHex, + enableTrace, + scriptDeploymentAddress: params.scriptDeploymentAddress, + clientSource: params.clientSource, + }, + { + oneShotScript, + protocolScript, + mintProxyScript, + treasuryScript, + orderScript, + stakingVaultScript, + }, + { + protocolRefInput: params.referenceInputs?.protocolRefInput, + proxyRefInput: params.referenceInputs?.proxyRefInput, + treasuryRefInput: params.referenceInputs?.treasuryRefInput, + orderRefInput: params.referenceInputs?.orderRefInput, + stakingVaultRefInput: params.referenceInputs?.stakingVaultRefInput, + }, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Treasury Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the treasury NFT. + */ + async mintTreasuryNFT( + treasuryBootstrapUtxo: Core.TransactionUnspentOutput, + initialDatum: V0_1TreasuryDatum = { circulating_supply: 0n }, + ): Promise<{ tx: TxBuilder; nftAssetId: Core.AssetId }> { + const treasuryPolicyId = Core.PolicyId(this.treasuryScriptHash); + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + + const datum = Data.serialize(V0_1TreasuryDatum, initialDatum); + const tx = await this.blaze + .newTransaction() + .addInput(treasuryBootstrapUtxo) + .addMint( + treasuryPolicyId, + new Map([[treasuryAssetName, 1n]]), + Data.Void(), + ) + .lockAssets( + this.treasuryAddress, + makeValue(10000000n, [this.treasuryNFTAssetId, 1n]), + datum, + ) + .provideScript(this.treasuryScript); + + return { tx, nftAssetId: this.treasuryNFTAssetId }; + } + + async deployTreasury(): Promise { + return deployScript( + this.blaze, + this.treasuryScript, + this.scriptDeploymentAddress, + ); + } + + async deployOrderContract(): Promise { + return deployScript( + this.blaze, + this.orderScript, + this.scriptDeploymentAddress, + ); + } + + async getTreasuryDatum(): Promise> { + const { + utxo: treasuryUtxo, + datum: treasuryDatum, + parsedDatum: parsedTreasuryDatum, + } = await getDatumFromNFT( + this.blaze, + this.treasuryNFTAssetId, + V0_1TreasuryDatum, + ); + + if (!treasuryUtxo) { + throw new Error("No UTXO found with the treasury NFT"); + } + if (!treasuryDatum) { + throw new Error("No treasury datum found"); + } + + return { + treasuryUtxo, + treasuryDatum, + parsedTreasuryDatum: parsedTreasuryDatum as V0_1TreasuryDatum, + }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Staking Vault Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the staking vault NFT and create initial vault UTxO. + */ + async mintStakingVaultNFT( + stakingVaultBootstrapUtxo: Core.TransactionUnspentOutput, + initialDatum: VaultDatum = { circulating_susdr: 0n }, + ): Promise<{ tx: TxBuilder; nftAssetId: Core.AssetId }> { + const vaultPolicyId = Core.PolicyId(this.stakingVaultScriptHash); + const vaultAssetName = Core.AssetName(toHex(Buffer.from("staking_vault"))); + + const datum = Data.serialize(V0_4Types.VaultDatum, initialDatum); + const tx = await this.blaze + .newTransaction() + .addInput(stakingVaultBootstrapUtxo) + .addMint(vaultPolicyId, new Map([[vaultAssetName, 1n]]), Data.Void()) + .lockAssets( + this.stakingVaultAddress, + makeValue(10000000n, [this.stakingVaultNFTAssetId, 1n]), + datum, + ) + .provideScript(this.stakingVaultScript); + + return { tx, nftAssetId: this.stakingVaultNFTAssetId }; + } + + async deployStakingVault(): Promise { + return deployScript( + this.blaze, + this.stakingVaultScript, + this.scriptDeploymentAddress, + ); + } + + /** The sUSDr asset ID (stablecoin policy + staked-USDr asset name). */ + getSusdrAssetId(): Core.AssetId { + return Core.AssetId(this.stablecoinPolicyId + this.sUSDrAssetNameHex); + } + + async getVaultDatum(): Promise> { + const { + utxo: vaultUtxo, + datum: vaultDatum, + parsedDatum: parsedVaultDatum, + } = await getDatumFromNFT( + this.blaze, + this.stakingVaultNFTAssetId, + V0_4Types.VaultDatum, + ); + + if (!vaultUtxo) { + throw new Error("No UTXO found with the staking vault NFT"); + } + if (!vaultDatum) { + throw new Error("No vault datum found"); + } + + return { + vaultUtxo, + vaultDatum, + parsedVaultDatum: parsedVaultDatum as VaultDatum, + }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // One-Shot Operations + // ───────────────────────────────────────────────────────────────────────────── + + async mintOneShot( + receiverAddress: Core.Address, + datum: ProxyDatum, + ): Promise<{ tx: TxBuilder; policyId: Core.PolicyId }> { + const utxo = await this.resolveBootstrapUtxo(); + const serializedDatum = Data.serialize(V0_4Types.ProxyDatum, { + logic: datum.logic, + settings: datum.settings, + }); + + const baseTx = this.blaze + .newTransaction() + .addInput(utxo) + .addMint( + this.oneShotPolicyId, + new Map([[Core.AssetName(""), 1n]]), + Data.Void(), + ); + const tx = lockOrPayAssets( + baseTx, + receiverAddress, + makeValue(10000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ).provideScript(this.oneShotScript); + return { tx, policyId: this.oneShotPolicyId }; + } + + async updateOneShotDatum( + receiverAddress: Core.Address, + newDatum: ProxyDatum, + ): Promise { + const oneshotUtxo = await this.blaze.provider.getUnspentOutputByNFT( + Core.AssetId(this.oneShotPolicyId), + ); + if (!oneshotUtxo) { + throw new Error("No UTXO found with the one-shot NFT"); + } + + const serializedDatum = Data.serialize(V0_4Types.ProxyDatum, { + logic: newDatum.logic, + settings: newDatum.settings, + }); + + return lockOrPayAssets( + this.blaze.newTransaction().addInput(oneshotUtxo), + receiverAddress, + makeValue(10000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ); + } + + async getParsedProxyDatum(): Promise> { + if (this.cachedProxyDatumResult) { + return this.cachedProxyDatumResult as IProxyDatumResult; + } + + const { proxyUtxo, proxyDatum } = await this.getRawProxyDatum(); + const parsedProxyDatum = parse(V0_4Types.ProxyDatum, proxyDatum); + const result = { proxyUtxo, proxyDatum, parsedProxyDatum }; + + this.cachedProxyDatumResult = result; + return result; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Order Builder Methods (6 separate methods, shared _buildOrderTx helper) + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Internal helper to build an order transaction. + */ + private async _buildOrderTx(params: { + action: V0_4Types.OrderAction; + valueToLock: Core.Value; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + extraLabels?: Map; + }): Promise { + const orderContractAddress = addressFromValidator( + this.network, + this.orderScript, + ); + + let owner = params.owner; + if (!owner) { + const addressProps = ( + await this.blaze.wallet.getChangeAddress() + ).getProps(); + const keyHash = + addressProps.delegationPart?.hash ?? addressProps.paymentPart?.hash; + if (!keyHash) { + throw new Error("Could not derive owner key hash from wallet address"); + } + owner = { + Signature: { key_hash: keyHash.toString() }, + }; + } + + const orderDatum: OrderDatum = { + action: params.action, + owner, + destination: params.destination, + data: params.data ?? Data.Void(), + }; + const serializedDatum = Data.serialize(V0_4Types.OrderDatum, orderDatum); + + const tx = this.newOrderTransaction(params.extraLabels); + tx.lockAssets(orderContractAddress, params.valueToLock, serializedDatum); + return tx; + } + + /** + * Build a mint order: lock reserve tokens, request USDr minting. + */ + async buildMintOrderTx(params: { + amount: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Mint amount must be positive"); + } + const reserveAssetId = Core.AssetId( + params.reserveAsset[0] + params.reserveAsset[1], + ); + // Convert USDr amount to reserve amount using ceiling division + // to ensure enough reserve is locked for on-chain validation + const settings = await this.getVersionSettings(); + const ra = findReserveAsset(settings, params.reserveAsset); + const reserveAmount = usdrToReserveCeil(params.amount, ra); + return this._buildOrderTx({ + action: { + OMint: { amount: params.amount, reserve_asset: params.reserveAsset }, + }, + valueToLock: makeValue(MIN_LOVELACE, [reserveAssetId, reserveAmount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a redeem (burn) order: lock USDr, request reserve token redemption. + */ + async buildRedeemOrderTx(params: { + amount: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Redeem amount must be positive"); + } + const settings = await this.getVersionSettings(); + findReserveAsset(settings, params.reserveAsset); + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + return this._buildOrderTx({ + action: { + ORedeem: { + amount: params.amount, + reserve_asset: params.reserveAsset, + }, + }, + valueToLock: makeValue(MIN_LOVELACE, [stablecoinAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a deposit order: lock reserve tokens, request treasury deposit. + */ + async buildDepositOrderTx(params: { + principal: bigint; + yield: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.principal < 0n) { + throw new Error("Deposit principal must be non-negative"); + } + if (params.principal === 0n && params.yield === 0n) { + throw new Error("Deposit must have non-zero principal or yield"); + } + const settings = await this.getVersionSettings(); + const ra = findReserveAsset(settings, params.reserveAsset); + const reserveAssetId = Core.AssetId( + params.reserveAsset[0] + params.reserveAsset[1], + ); + + let valueToLock: Core.Value; + + if (params.yield >= 0n) { + // POSITIVE YIELD: need reserve backing for BOTH principal AND yield. + // Contract validates: reserve_to_usdr(treasury_delta) >= principal + yield + // So we must lock: usdrToReserveCeil(principal + yield) reserve tokens + const totalUSDrBacking = params.principal + params.yield; + if (totalUSDrBacking > 0n) { + const reserveAmount = usdrToReserveCeil(totalUSDrBacking, ra); + valueToLock = makeValue(MIN_LOVELACE, [reserveAssetId, reserveAmount]); + } else { + valueToLock = makeValue(MIN_LOVELACE); + } + } else { + // NEGATIVE YIELD: lock principal (in reserve) + unstaked yield share (in USDr). + // The staked share comes from the vault (validated on-chain via vault USDr change). + const principalReserve = + params.principal > 0n ? usdrToReserveCeil(params.principal, ra) : 0n; + + valueToLock = + principalReserve > 0n + ? makeValue(MIN_LOVELACE, [reserveAssetId, principalReserve]) + : makeValue(MIN_LOVELACE); + + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + + // Fetch current state to calculate yield split + const { parsedTreasuryDatum } = await this.getTreasuryDatum(); + const vaultUtxo = (await this.getVaultDatum()).vaultUtxo; + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const treasuryCirculating = parsedTreasuryDatum.circulating_supply; + + const { unstakedYieldShare } = calculateYieldShares( + params.yield, + vaultUSDr, + treasuryCirculating, + ); + + // Lock only the unstaked portion (negated since unstakedYieldShare is negative) + if (unstakedYieldShare < 0n) { + valueToLock = Value.merge( + valueToLock, + makeValue(0n, [stablecoinAssetId, -unstakedYieldShare]), + ); + } + } + return this._buildOrderTx({ + action: { + ODeposit: { + principal: params.principal, + yield: params.yield, + reserve_asset: params.reserveAsset, + }, + }, + valueToLock, + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a withdraw order: lock min ADA, request reserve token withdrawal. + */ + async buildWithdrawOrderTx(params: { + amount: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Withdraw amount must be positive"); + } + const settings = await this.getVersionSettings(); + findReserveAsset(settings, params.reserveAsset); + return this._buildOrderTx({ + action: { + OWithdraw: { + amount: params.amount, + reserve_asset: params.reserveAsset, + }, + }, + valueToLock: makeValue(MIN_LOVELACE), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a stake order: lock USDr, request sUSDr minting. + */ + async buildStakeOrderTx(params: { + amount: bigint; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Stake amount must be positive"); + } + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + return this._buildOrderTx({ + action: { OStake: { amount: params.amount } }, + valueToLock: makeValue(MIN_LOVELACE, [stablecoinAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build an unstake order: lock sUSDr, request USDr release. + * + * The destination is automatically set to a native script address that + * enforces a timelock: AllOf { Signature(user), After(unlockTime) }. + * This means the released USDr can only be spent by the user after the + * unlock time has passed. + * + * @param params.amount - Amount of sUSDr to unstake + * @param params.destination - The user's actual destination (used to extract payment key hash) + * @param params.unlockTime - Slot number after which the user can spend the released USDr + */ + async buildUnstakeOrderTx(params: { + amount: bigint; + destination: Destination; + unlockSlot: bigint; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Unstake amount must be positive"); + } + const sUSDrAssetId = Core.AssetId( + this.stablecoinPolicyId + this.sUSDrAssetNameHex, + ); + + // Build the timelock native script destination from the user's key hash + const timelockDestination = buildTimelockDestination( + params.destination, + params.unlockSlot, + ); + const extraLabels = new Map([ + [ + UNSTAKE_METADATA_LABEL, + buildUnstakeMetadatum(params.destination, params.unlockSlot), + ], + ]); + + return this._buildOrderTx({ + action: { OUnstake: { amount: params.amount } }, + valueToLock: makeValue(MIN_LOVELACE, [sUSDrAssetId, params.amount]), + owner: params.owner, + destination: timelockDestination, + data: params.data, + extraLabels, + }); + } + + /** + * Build a timelock Destination from a user's destination and unlock time. + * + * Creates a native script: AllOf { Signature(userKeyHash), After(unlockTime) } + * and returns a Destination pointing to that script's address. + */ + + static buildTimelockNativeScript = buildTimelockNativeScript; + static buildTimelockAddress = buildTimelockAddress; + + // ───────────────────────────────────────────────────────────────────────────── + // Signed Payload and Signing + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build the V0_4 SignedPayload_ProtocolRedeemer from order inputs. + * Returns both the CBOR hex string (for buildExecuteOrdersTx) and + * the blake2b_256 hash (for CIP-30 signing). + * + * V0.4 contract requires signing the blake2b_256 hash of the payload, + * not the raw CBOR like V0.3. + */ + async getSignedPayloadFromOrderInputs( + orderInputs: Core.TransactionInput[], + ): Promise<{ signedPayload: string; payloadHash: string }> { + if (orderInputs.length === 0) { + throw new Error("At least one order input is required"); + } + + const sortedInputs = sortOrderInputs(orderInputs); + const nonce = buildNonceFromUtxo(sortedInputs[0]!) as V0_4Types.Nonce; + + const resolvedUtxos = + await this.blaze.provider.resolveUnspentOutputs(sortedInputs); + + let actionType: TOrderActionType | null = null; + const treasuryRequests: V0_4Types.TreasuryRequest[] = []; + const requests: V0_4Types.Request[] = []; + + for (const utxo of resolvedUtxos) { + const datumData = utxo.output().datum()?.asInlineData(); + if (!datumData) { + throw new Error("Order UTXO has no inline datum"); + } + const datum = parse(V0_4Types.OrderDatum, datumData) as OrderDatum; + const origin = { + transaction_id: utxo.input().transactionId().toString(), + output_index: utxo.input().index(), + }; + + const parsed = this.classifyOrderAction(datum); + + if (actionType === null) { + actionType = parsed.actionType; + } else if (actionType !== parsed.actionType) { + throw new Error( + "Mixed order types in inputs. All orders must be of the same type.", + ); + } + + if (parsed.isTreasuryAction) { + treasuryRequests.push({ + destination: datum.destination, + amount: parsed.amount, + yield: parsed.yield ?? 0n, + origin, + reserve_asset: parsed.reserveAsset!, + }); + } else { + requests.push({ + destination: datum.destination, + amount: parsed.amount, + origin, + }); + } + } + + let action: V0_4Types.ProtocolRedeemer; + switch (actionType) { + case "mint": + action = { Mint: { requests: treasuryRequests } }; + break; + case "burn": + action = { Burn: { requests: treasuryRequests } }; + break; + case "withdraw": + action = { Withdraw: { requests: treasuryRequests } }; + break; + case "deposit": + action = { Deposit: { requests: treasuryRequests } }; + break; + case "stake": + action = { Stake: { requests } }; + break; + case "unstake": + action = { Unstake: { requests } }; + break; + default: + throw new Error("No orders to process"); + } + + const payload: V0_4Types.SignedPayload_ProtocolRedeemer = { + action, + nonce, + }; + const serialized = Data.serialize( + V0_4Types.SignedPayload_ProtocolRedeemer, + payload, + ); + const signedPayload = serialized.toCbor().toString(); + const payloadHash = blake2b_256(HexBlob(signedPayload)); + + return { signedPayload, payloadHash }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Execute Orders + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a transaction to execute orders. + * + * Handles all 6 action types: mint, burn, deposit, withdraw, stake, unstake. + * The signedPayload is a CBOR hex string (matching V0.3 style). + * + * NOTE: All wallet fee inputs are pre-added to the transaction so that + * input indices for the ExtraProtocolRedeemer are stable. Coin selection + * during complete() should be a no-op since all wallet UTxOs are already + * included, but it cannot be disabled because Blaze also uses that phase + * to prepare collateral. + */ + async buildExecuteOrdersTx(params: { + orderInputs: Core.TransactionInput[]; + signedPayload: string; + signatures: V0_4Types.Tuple_VerificationKey_COSESign1[]; + }): Promise { + const { + orderInputs, + signedPayload: signedPayloadCbor, + signatures, + } = params; + + // Deserialize CBOR hex to object for internal use + const signedPayload = parse( + V0_4Types.SignedPayload_ProtocolRedeemer, + PlutusData.fromCbor(HexBlob(signedPayloadCbor)), + ) as V0_4Types.SignedPayload_ProtocolRedeemer; + + // 1. Sort and resolve order UTxOs + const sortedOrderInputs = sortOrderInputs(orderInputs); + const orderUtxos = + await this.blaze.provider.resolveUnspentOutputs(sortedOrderInputs); + + // 2. Parse orders and validate same type + const orderInfos = this.parseOrderInfos(orderUtxos); + const actionType = orderInfos[0]!.actionType; + + // 3. Get protocol settings + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + const settings = parsedProxyDatum.settings as Settings; + + // 4. Determine what we need + const needsTreasury = ["mint", "burn", "withdraw", "deposit"].includes( + actionType, + ); + const needsVault = ["stake", "unstake", "deposit"].includes(actionType); + + // 5. Get script reference inputs + const scriptHashesNeeded: Record = { + protocol: this.protocolScriptHash, + order: this.orderScriptHash, + }; + if (needsTreasury) { + scriptHashesNeeded.treasury = this.treasuryScriptHash; + } + if (needsVault) { + scriptHashesNeeded.stakingVault = this.stakingVaultScriptHash; + } + const refInputs = await this.getScriptReferenceInputs(scriptHashesNeeded); + + // 6. Fetch treasury and vault if needed + let treasuryUtxo: Core.TransactionUnspentOutput | undefined; + let parsedTreasuryDatum: V0_1TreasuryDatum | undefined; + if (needsTreasury) { + const treasuryResult = await this.getTreasuryDatum(); + treasuryUtxo = treasuryResult.treasuryUtxo; + parsedTreasuryDatum = treasuryResult.parsedTreasuryDatum; + } + + let vaultUtxo: Core.TransactionUnspentOutput | undefined; + let parsedVaultDatum: VaultDatum | undefined; + if (needsVault) { + const vaultResult = await this.getVaultDatum(); + vaultUtxo = vaultResult.vaultUtxo; + parsedVaultDatum = vaultResult.parsedVaultDatum; + } + + // 7. Gather wallet UTxOs so we can include them in index calculations. + // Blaze's complete() adds wallet inputs for fees, which shifts the + // ledger-sorted input indices. By fetching wallet UTxOs upfront and + // adding them explicitly, we know the full input set before computing + // indices for the ExtraProtocolRedeemer. + const walletUtxos = await this.blaze.wallet.getUnspentOutputs(); + const excludedInputIds = new Set(); + const utxoKey = (inp: Core.TransactionInput) => + `${inp.transactionId().toString()}#${inp.index().toString()}`; + // Exclude script inputs (order, treasury, vault) + for (const orderInfo of orderInfos) { + excludedInputIds.add(utxoKey(orderInfo.utxo.input())); + } + if (treasuryUtxo) { + excludedInputIds.add(utxoKey(treasuryUtxo.input())); + } + if (vaultUtxo) { + excludedInputIds.add(utxoKey(vaultUtxo.input())); + } + // Exclude reference inputs (must be disjoint from regular inputs) + excludedInputIds.add(utxoKey(proxyUtxo.input())); + for (const refUtxo of Object.values(refInputs)) { + if (refUtxo) { + excludedInputIds.add(utxoKey(refUtxo.input())); + } + } + const feeUtxos = walletUtxos.filter( + (utxo) => !excludedInputIds.has(utxoKey(utxo.input())), + ); + + // 8. Compute input indices (ledger sorts inputs by txHash + outputIndex). + // Include ALL inputs: order, treasury, vault, AND wallet fee inputs. + const allInputRefs: Core.TransactionInput[] = orderInfos.map((o) => + o.utxo.input(), + ); + if (treasuryUtxo) { + allInputRefs.push(treasuryUtxo.input()); + } + if (vaultUtxo) { + allInputRefs.push(vaultUtxo.input()); + } + for (const feeUtxo of feeUtxos) { + allInputRefs.push(feeUtxo.input()); + } + + const sortedAllInputRefs = [...allInputRefs].sort((a, b) => { + const txA = a.transactionId().toString(); + const txB = b.transactionId().toString(); + if (txA < txB) return -1; + if (txA > txB) return 1; + return Number(a.index()) - Number(b.index()); + }); + + const findInputIdx = (input: Core.TransactionInput): bigint => { + const idx = sortedAllInputRefs.findIndex( + (r) => + r.transactionId().toString() === input.transactionId().toString() && + r.index() === input.index(), + ); + return BigInt(idx); + }; + + const treasuryInputIdx = treasuryUtxo + ? findInputIdx(treasuryUtxo.input()) + : 0n; + const vaultInputIdx = vaultUtxo + ? findInputIdx(vaultUtxo.input()) + : undefined; + + // 8a. Correlate order inputs to signed request indices via origin fields. + // When all orders are present this produces the same identity mapping as before. + // When a subset is passed (partial execution), it maps each input to the + // correct request index in the signed payload. + const signedRequests = getRequestsFromAction(signedPayload.action); + const originToRequestIdx = new Map(); + for (let i = 0; i < signedRequests.length; i++) { + const o = signedRequests[i]!.origin; + originToRequestIdx.set(`${o.transaction_id}#${o.output_index}`, i); + } + + const inputToRequests: bigint[] = []; + const requestToOutputs: bigint[] = []; + for (let outputIdx = 0; outputIdx < orderInfos.length; outputIdx++) { + const input = orderInfos[outputIdx]!.utxo.input(); + const key = `${input.transactionId()}#${input.index()}`; + const requestIdx = originToRequestIdx.get(key); + if (requestIdx === undefined) { + throw new Error(`Order input ${key} not found in signed payload`); + } + inputToRequests.push(BigInt(requestIdx)); + requestToOutputs.push(BigInt(outputIdx)); + } + + // 9. Build outputs and compute output indices + // Output layout: + // [destination outputs] [extra outputs*] [treasury output if needed] [vault output if needed] + // *extra outputs: yield pot output for deposit with non-zero positive yield + const numDestOutputs = orderInfos.length; + + // For deposit with positive yield, the yield pot output is inserted after destinations + let numExtraOutputs = 0; + if (actionType === "deposit") { + const totalYield = orderInfos.reduce( + (sum, o) => sum + (o.yield ?? 0n), + 0n, + ); + if (totalYield > 0n) { + // Check if unstaked yield share is > 0 + const vaultValue = vaultUtxo!.output().amount(); + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const treasuryCirculating = parsedTreasuryDatum!.circulating_supply; + const { unstakedYieldShare } = calculateYieldShares( + totalYield, + vaultUSDr, + treasuryCirculating, + ); + if (unstakedYieldShare > 0n) { + numExtraOutputs = 1; + } + } + } + + const treasuryOutputIdx = needsTreasury + ? BigInt(numDestOutputs + numExtraOutputs) + : 0n; + const vaultOutputIdx = needsVault + ? BigInt(numDestOutputs + numExtraOutputs + (needsTreasury ? 1 : 0)) + : undefined; + + // 10. Build ExtraProtocolRedeemer + const extra: V0_4Types.ExtraProtocolRedeemer = { + request_to_outputs: requestToOutputs, + input_to_requests: inputToRequests, + treasury_input_idx: treasuryInputIdx, + treasury_output_idx: treasuryOutputIdx, + vault_input_idx: vaultInputIdx, + vault_output_idx: vaultOutputIdx, + }; + + // 11. Build SignedRedeemer (payload is deserialized object in v0_4) + const serializedSignedRedeemer = Data.serialize( + V0_4Types.SignedRedeemer_ExtraProtocolRedeemer, + { + extra, + payload: signedPayload, + signatures, + }, + ); + + const executeRedeemer = Data.serialize(V0_4Types.OrderRedeemer, "Execute"); + + const feeUtxoByKey = new Map( + feeUtxos.map((utxo) => [utxoKey(utxo.input()), utxo]), + ); + const orderInfoByKey = new Map( + orderInfos.map((orderInfo) => [ + utxoKey(orderInfo.utxo.input()), + orderInfo, + ]), + ); + const treasuryInputKey = treasuryUtxo + ? utxoKey(treasuryUtxo.input()) + : null; + const vaultInputKey = vaultUtxo ? utxoKey(vaultUtxo.input()) : null; + const spendRedeemerInputs = [ + ...orderInfos.map((orderInfo) => orderInfo.utxo.input()), + ]; + if (treasuryUtxo) { + spendRedeemerInputs.push(treasuryUtxo.input()); + } + if (vaultUtxo) { + spendRedeemerInputs.push(vaultUtxo.input()); + } + + // 12. Build the transaction + const tx = this.newOrderTransaction(); + + // Add all spend inputs in ledger order so the generated spend redeemer + // pointers line up with the final transaction input indices. + for (const inputRef of sortedAllInputRefs) { + const inputKey = utxoKey(inputRef); + const orderInfo = orderInfoByKey.get(inputKey); + if (orderInfo) { + tx.addInput(orderInfo.utxo, executeRedeemer); + continue; + } + + if (treasuryInputKey && inputKey === treasuryInputKey) { + tx.addInput(treasuryUtxo!, Data.Void()); + continue; + } + + if (vaultInputKey && inputKey === vaultInputKey) { + tx.addInput(vaultUtxo!, Data.Void()); + continue; + } + + const feeUtxo = feeUtxoByKey.get(inputKey); + if (feeUtxo) { + tx.addInput(feeUtxo); + continue; + } + + throw new Error( + `buildExecuteOrdersTx: missing input metadata for ${inputKey}`, + ); + } + + // Add reference inputs + tx.addReferenceInput(refInputs.protocol!); + tx.addReferenceInput(refInputs.order!); + tx.addReferenceInput(proxyUtxo); + if (refInputs.treasury) { + tx.addReferenceInput(refInputs.treasury); + } + if (refInputs.stakingVault) { + tx.addReferenceInput(refInputs.stakingVault); + } + + // Add protocol withdrawal with signed redeemer + const protocolRewardAccount = Core.RewardAccount.fromCredential( + { + type: Core.CredentialType.ScriptHash, + hash: this.protocolScriptHash, + }, + this.network, + ); + tx.addWithdrawal(protocolRewardAccount, 0n, serializedSignedRedeemer); + + // Build per-action-type outputs, minting, and state updates + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const sUSDrAssetId = Core.AssetId( + this.stablecoinPolicyId + this.sUSDrAssetNameHex, + ); + + switch (actionType) { + case "mint": + this.buildMintExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "burn": + this.buildBurnExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "withdraw": + this.buildWithdrawExecute( + tx, + orderInfos, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "deposit": + this.buildDepositExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + vaultUtxo!, + parsedVaultDatum!, + settings, + ); + break; + case "stake": + this.buildStakeExecute( + tx, + orderInfos, + stablecoinAssetId, + sUSDrAssetId, + vaultUtxo!, + parsedVaultDatum!, + ); + break; + case "unstake": + this.buildUnstakeExecute( + tx, + orderInfos, + stablecoinAssetId, + sUSDrAssetId, + vaultUtxo!, + parsedVaultDatum!, + ); + break; + } + + // Provide the mint proxy script for minting + tx.provideScript(this.mintProxyScript); + this.realignSpendRedeemerIndices(tx, spendRedeemerInputs); + + return tx; + } + + private realignSpendRedeemerIndices( + tx: TxBuilder, + spendRedeemerInputs: Core.TransactionInput[], + ): void { + const txInternals = tx as unknown as ITxBuilderWithInternals; + const bodyInputs = txInternals.body.inputs().values(); + const redeemers = [...txInternals.redeemers.values()]; + const spendRedeemers = redeemers + .filter((redeemer) => redeemer.tag() === Core.RedeemerTag.Spend) + .sort((a, b) => Number(a.index() - b.index())); + + if (spendRedeemers.length !== spendRedeemerInputs.length) { + throw new Error( + `buildExecuteOrdersTx: spend redeemer count mismatch. inputs=${spendRedeemerInputs.length} redeemers=${spendRedeemers.length}`, + ); + } + + const expectedOrdering = [...spendRedeemerInputs].sort((a, b) => + toSpendOrderingKey(a).localeCompare(toSpendOrderingKey(b)), + ); + + for (let i = 0; i < spendRedeemers.length; i++) { + const input = expectedOrdering[i]!; + const actualIndex = bodyInputs.findIndex( + (bodyInput) => + bodyInput.transactionId().toString() === + input.transactionId().toString() && + bodyInput.index() === input.index(), + ); + + if (actualIndex < 0) { + throw new Error( + `buildExecuteOrdersTx: could not find spend input ${input.transactionId().toString()}#${input.index().toString()} in tx body`, + ); + } + + spendRedeemers[i]!.setIndex(BigInt(actualIndex)); + } + + txInternals.redeemers.setValues(redeemers); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Per-Action Execute Builders + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint: reserve goes to treasury, USDr minted to destinations. + */ + private buildMintExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: Settings, + ): void { + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Destination outputs: send USDr to each destination + for (const orderInfo of orderInfos) { + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + makeValue(MIN_LOVELACE, [stablecoinAssetId, orderInfo.amount]), + ); + } + + // Mint USDr + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Compute per-reserve-asset deltas + const reserveDeltas = computeReserveDeltas(orderInfos, settings); + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalAmount, + ); + } + + /** + * Burn: USDr burned, reserve sent to destinations. + */ + private buildBurnExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: Settings, + ): void { + // Amount is negative in datum for burns + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Destination outputs: send reserve tokens to each destination + // Convert USDr amount to reserve amount using floor division (protocol-protective) + for (const orderInfo of orderInfos) { + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const reserveAssetId = Core.AssetId( + orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1], + ); + const reserveAmount = usdrToReserve(-orderInfo.amount, ra); + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + makeValue(MIN_LOVELACE, [reserveAssetId, reserveAmount]), + ); + } + + // Burn USDr (totalAmount is negative) + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Compute per-reserve-asset deltas + const reserveDeltas = computeReserveDeltas(orderInfos, settings); + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalAmount, + ); + } + + /** + * Withdraw: reserve sent to destinations, no mint/burn. + */ + private buildWithdrawExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: Settings, + ): void { + // Destination outputs: send reserve tokens to each destination + // Convert USDr amount to reserve amount using floor division + for (const orderInfo of orderInfos) { + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const reserveAssetId = Core.AssetId( + orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1], + ); + const reserveAmount = usdrToReserve(orderInfo.amount, ra); + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + makeValue(MIN_LOVELACE, [reserveAssetId, reserveAmount]), + ); + } + + // Update treasury: reserve decreases, no circulating_supply change + // On-chain: amount_sign = -1 for withdraw, expected_delta = usdr_to_reserve(-amount, ra) + const reserveDeltas = computeReserveDeltas(orderInfos, settings, true); + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + 0n, + ); + } + + /** + * Deposit: reserve deposited, interest USDr minted and split between vault and yield pot. + */ + private buildDepositExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: VaultDatum, + settings: Settings, + ): void { + const totalYield = orderInfos.reduce((sum, o) => sum + (o.yield ?? 0n), 0n); + + // Destination outputs: min ADA to each destination (contract validates via request_to_outputs) + for (const orderInfo of orderInfos) { + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + makeValue(MIN_LOVELACE), + ); + } + + // Calculate yield split matching on-chain deposit.ak logic + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const treasuryCirculating = parsedTreasuryDatum.circulating_supply; + + const { stakedYieldShare, unstakedYieldShare } = calculateYieldShares( + totalYield, + vaultUSDr, + treasuryCirculating, + ); + + if (totalYield > 0n) { + // Positive yield: mint USDr for the yield amount + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalYield]]), + Data.Void(), + ); + + // Send unstaked yield share to the yield pot address + if (unstakedYieldShare > 0n) { + addDestinationOutput( + tx, + this.network, + { + address: settings.unstaked_yield_pot, + datum: "NoDatum", + }, + makeValue(MIN_LOVELACE, [stablecoinAssetId, unstakedYieldShare]), + ); + } + } else if (totalYield < 0n) { + // Negative yield: burn USDr (sourced from order inputs already consumed) + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalYield]]), + Data.Void(), + ); + } + // totalYield === 0n: no mint/burn needed + + // Update treasury: reserve increases, circulating_supply changes by yield. + // For positive yield, treasury receives reserve backing for BOTH principal AND yield. + // For negative yield, treasury only receives reserve backing for principal. + const reserveDeltas = new Map(); + for (const orderInfo of orderInfos) { + const assetId = orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1]; + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const yieldValue = orderInfo.yield ?? 0n; + + // Calculate USDr backing needed based on yield sign + const usdrBacking = + yieldValue >= 0n + ? orderInfo.amount + yieldValue // principal + yield for positive yield + : orderInfo.amount; // just principal for negative yield + + // Convert USDr backing to reserve amount + const reserveAmount = usdrToReserve(usdrBacking, ra); + + reserveDeltas.set( + assetId, + (reserveDeltas.get(assetId) ?? 0n) + reserveAmount, + ); + } + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalYield, + ); + + // Update vault: sUSDr unchanged, USDr changes by staked yield share + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + 0n, + stakedYieldShare, + ); + } + + /** + * Stake: USDr locked in vault, sUSDr minted to destinations. + */ + private buildStakeExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + sUSDrAssetId: Core.AssetId, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: VaultDatum, + ): void { + const totalUSDrStaked = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Calculate vault USDr balance + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const circulatingSUSDr = parsedVaultDatum.circulating_susdr; + + // Calculate total sUSDr to mint using batch formula (matches on-chain stake.ak) + // On-chain: susdr_to_mint = total_usdr_staked * circulating_susdr_before / vault_usdr_before + let totalSUSDrMinted: bigint; + if (circulatingSUSDr === 0n || vaultUSDr === 0n) { + totalSUSDrMinted = totalUSDrStaked; + } else { + totalSUSDrMinted = (totalUSDrStaked * circulatingSUSDr) / vaultUSDr; + } + + // Calculate per-order sUSDr for destination outputs (matches validate_stake_outputs). + // Note: sum(per-order floors) may be less than totalSUSDrMinted by at most (n-1) units + // due to floor(sum) >= sum(floor). The difference ("dust") is minted but not assigned + // to any destination output — it ends up in the executor's change output. This is an + // inherent consequence of the on-chain contract requiring both aggregate mint equality + // and per-request floor equality on outputs. + for (const orderInfo of orderInfos) { + let sUSDrAmount: bigint; + if (circulatingSUSDr === 0n || vaultUSDr === 0n) { + sUSDrAmount = orderInfo.amount; + } else { + sUSDrAmount = (orderInfo.amount * circulatingSUSDr) / vaultUSDr; + } + + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + makeValue(MIN_LOVELACE, [sUSDrAssetId, sUSDrAmount]), + ); + } + + // Mint sUSDr + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.sUSDrAssetNameHex), totalSUSDrMinted]]), + Data.Void(), + ); + + // Update vault: USDr increases by staked amount, circulating_susdr increases + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + totalSUSDrMinted, + totalUSDrStaked, + ); + } + + /** + * Unstake: sUSDr burned, USDr sent to user's destination address. + */ + private buildUnstakeExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + sUSDrAssetId: Core.AssetId, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: VaultDatum, + ): void { + const totalSUSDrBurned = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Calculate vault USDr balance + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const circulatingSUSDr = parsedVaultDatum.circulating_susdr; + + if (circulatingSUSDr === 0n) { + throw new Error("Cannot unstake: no sUSDr in circulation"); + } + + // Calculate USDr to release for each order + let totalUSDrReleased = 0n; + for (const orderInfo of orderInfos) { + const uSDrAmount = (orderInfo.amount * vaultUSDr) / circulatingSUSDr; + totalUSDrReleased += uSDrAmount; + + // Send USDr to the destination (native script timelock address). + // Use an explicit output because lockAssets requires a datum, but the + // contract expects NoDatum. + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + const output = new Core.TransactionOutput( + destAddress, + makeValue(MIN_LOVELACE, [stablecoinAssetId, uSDrAmount]), + ); + tx.addOutput(output); + } + + // Burn sUSDr + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.sUSDrAssetNameHex), -totalSUSDrBurned]]), + Data.Void(), + ); + + // Update vault: USDr decreases, circulating_susdr decreases + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + -totalSUSDrBurned, + -totalUSDrReleased, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Cancel Orders + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a transaction to cancel orders. + */ + async buildCancelOrdersTx(params: { + orderInputs: Core.TransactionInput[]; + destination?: Core.Address; + /** + * Optional set of key hashes that the caller can sign with. + * When provided, only these keys are added as required signers — + * essential for AnyOf/AtLeast multisig owners where not all keys + * need to sign. When omitted, all extracted key hashes are added + * (correct for Signature and AllOf owners, but over-constrains + * AnyOf/AtLeast). + */ + availableSigners?: Set; + versionHint?: TProtocolVersion; // version of the orders to cancel. Optional, only to ensure correct datum parsing. + }): Promise { + const { orderInputs, destination, availableSigners, versionHint } = params; + + const orderUtxos = + await this.blaze.provider.resolveUnspentOutputs(orderInputs); + + if (orderUtxos.length === 0) { + throw new Error("No orders to cancel"); + } + + const cachedOrderRefs = this.cachedReferenceInputs.orderRefInput + ? new Map([ + [this.orderScriptHash, this.cachedReferenceInputs.orderRefInput], + ]) + : undefined; + + const orderRefInputs = await resolveOrderReferenceInputs( + this.blaze, + orderUtxos, + cachedOrderRefs, + this.scriptDeploymentAddress, + ); + + const cancelRedeemer = Data.serialize(V0_4Types.OrderRedeemer, "Cancel"); + const destAddress = + destination ?? (await this.blaze.wallet.getChangeAddress()); + + const tx = this.newOrderTransaction(); + + for (const orderRefInput of orderRefInputs.values()) { + tx.addReferenceInput(orderRefInput); + } + + // cache current version of order script reference input + const currentOrderRefInput = orderRefInputs.get(this.orderScriptHash); + if (currentOrderRefInput && !this.cachedReferenceInputs.orderRefInput) { + this.cachedReferenceInputs.orderRefInput = currentOrderRefInput; + } + + const requiredSigners = new Set(); + + for (const utxo of orderUtxos) { + const owner = await parseCancelOwner(utxo, versionHint); + for (const keyHash of getSignatureKeyHashesFromMultisigScript(owner)) { + requiredSigners.add(keyHash); + } + + tx.addInput(utxo, cancelRedeemer); + const outputValue = utxo.output().amount(); + addDirectOutput(tx, destAddress, outputValue); + } + + const effectiveSigners = availableSigners + ? new Set([...requiredSigners].filter((k) => availableSigners.has(k))) + : requiredSigners; + + for (const keyHash of effectiveSigners) { + tx.addRequiredSigner(Ed25519KeyHashHex(keyHash)); + } + + return tx; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Private Helpers + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Parse order UTxOs into IOrderInfo objects and validate they are all the same type. + */ + private parseOrderInfos( + orderUtxos: Core.TransactionUnspentOutput[], + ): IOrderInfo[] { + const orderInfos: IOrderInfo[] = []; + let expectedActionType: TOrderActionType | null = null; + + for (const utxo of orderUtxos) { + const datumData = utxo.output().datum()?.asInlineData(); + if (!datumData) { + throw new Error("Order UTXO has no inline datum"); + } + const datum = parse(V0_4Types.OrderDatum, datumData) as OrderDatum; + const classified = this.classifyOrderAction(datum); + + if (expectedActionType === null) { + expectedActionType = classified.actionType; + } else if (expectedActionType !== classified.actionType) { + throw new Error( + "Mixed order types in inputs. All orders must be of the same type.", + ); + } + + orderInfos.push({ + utxo, + datum, + actionType: classified.actionType, + amount: classified.amount, + yield: classified.yield, + reserveAsset: classified.reserveAsset, + }); + } + + if (orderInfos.length === 0) { + throw new Error("No orders to execute"); + } + + return orderInfos; + } + + /** + * Classify an order action from its datum. + */ + private classifyOrderAction(datum: OrderDatum): { + actionType: TOrderActionType; + amount: bigint; + yield?: bigint; + reserveAsset?: [string, string]; + isTreasuryAction: boolean; + } { + const action = datum.action; + if ("OMint" in action) { + return { + actionType: "mint", + amount: action.OMint.amount, + reserveAsset: action.OMint.reserve_asset, + isTreasuryAction: true, + }; + } else if ("ORedeem" in action) { + return { + actionType: "burn", + // ORedeem.amount is positive (absolute value locked in order UTxO). + // Negate it so the request.amount is negative for burn (USDr leaving circulation), + // matching the contract's expectation: ORedeem.amount == -request.amount. + amount: -action.ORedeem.amount, + reserveAsset: action.ORedeem.reserve_asset, + isTreasuryAction: true, + }; + } else if ("ODeposit" in action) { + return { + actionType: "deposit", + amount: action.ODeposit.principal, + yield: action.ODeposit.yield, + reserveAsset: action.ODeposit.reserve_asset, + isTreasuryAction: true, + }; + } else if ("OWithdraw" in action) { + return { + actionType: "withdraw", + amount: action.OWithdraw.amount, + reserveAsset: action.OWithdraw.reserve_asset, + isTreasuryAction: true, + }; + } else if ("OStake" in action) { + return { + actionType: "stake", + amount: action.OStake.amount, + isTreasuryAction: false, + }; + } else if ("OUnstake" in action) { + return { + actionType: "unstake", + amount: action.OUnstake.amount, + isTreasuryAction: false, + }; + } + throw new Error("Unknown order action type"); + } + + /** + * Update treasury output with new reserve and circulating supply. + */ + private updateTreasuryOutput( + tx: TxBuilder, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + reserveDeltas: Map, + circulatingSupplyDelta: bigint, + ): void { + const newTreasuryDatum: V0_1TreasuryDatum = { + circulating_supply: + parsedTreasuryDatum.circulating_supply + circulatingSupplyDelta, + }; + const serializedTreasuryDatum = Data.serialize( + V0_1TreasuryDatum, + newTreasuryDatum, + ); + + const treasuryValue = treasuryUtxo.output().amount(); + + // Start with ADA + treasury NFT + let newTreasuryValue = makeValue(treasuryValue.coin(), [ + this.treasuryNFTAssetId, + 1n, + ]); + + // Apply all reserve asset deltas + const modifiedAssetIds = new Set([ + this.treasuryNFTAssetId.toString(), + ]); + for (const [reserveAssetId, delta] of reserveDeltas.entries()) { + const currentReserve = + treasuryValue.multiasset()?.get(Core.AssetId(reserveAssetId)) ?? 0n; + const newReserve = currentReserve + delta; + newTreasuryValue = Value.merge( + newTreasuryValue, + makeValue(0n, [Core.AssetId(reserveAssetId), newReserve]), + ); + modifiedAssetIds.add(reserveAssetId); + } + + // Preserve any other assets not modified + const existingMultiasset = treasuryValue.multiasset(); + if (existingMultiasset) { + for (const [assetId, amount] of existingMultiasset.entries()) { + if (!modifiedAssetIds.has(assetId)) { + newTreasuryValue = Value.merge( + newTreasuryValue, + makeValue(0n, [Core.AssetId(assetId), amount]), + ); + } + } + } + tx.lockAssets( + this.treasuryAddress, + newTreasuryValue, + serializedTreasuryDatum, + ); + } + + /** + * Update vault output with new circulating_susdr and USDr balance. + */ + private updateVaultOutput( + tx: TxBuilder, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: VaultDatum, + sUSDrDelta: bigint, + uSDrDelta: bigint = 0n, + ): void { + const newVaultDatum: VaultDatum = { + circulating_susdr: parsedVaultDatum.circulating_susdr + sUSDrDelta, + }; + const serializedVaultDatum = Data.serialize( + V0_4Types.VaultDatum, + newVaultDatum, + ); + + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + + // Start with existing vault value, then adjust USDr + let newVaultValue = vaultUtxo.output().amount(); + if (uSDrDelta !== 0n) { + const currentUSDr = + newVaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const newUSDr = currentUSDr + uSDrDelta; + newVaultValue = makeValue(newVaultValue.coin(), [ + this.stakingVaultNFTAssetId, + 1n, + ]); + if (newUSDr > 0n) { + newVaultValue = Value.merge( + newVaultValue, + makeValue(0n, [stablecoinAssetId, newUSDr]), + ); + } + // Preserve any other assets from the original vault + const existingMultiasset = vaultUtxo.output().amount().multiasset(); + if (existingMultiasset) { + for (const [assetId, amount] of existingMultiasset.entries()) { + if ( + assetId !== this.stakingVaultNFTAssetId.toString() && + assetId !== stablecoinAssetId.toString() + ) { + newVaultValue = Value.merge( + newVaultValue, + makeValue(0n, [Core.AssetId(assetId), amount]), + ); + } + } + } + } + + tx.lockAssets( + this.stakingVaultAddress, + newVaultValue, + serializedVaultDatum, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Reserve Asset Conversion Utilities + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Get protocol settings from proxy datum (cached). + */ + private async getVersionSettings(): Promise { + const { parsedProxyDatum } = await this.getParsedProxyDatum(); + return parsedProxyDatum.settings as Settings; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/v1/family.ts b/modules/realfi-partner-sdk/src/sdk/v1/family.ts new file mode 100644 index 0000000000..578f0fa8cc --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v1/family.ts @@ -0,0 +1,3763 @@ +import { + addressFromCredentials, + addressFromValidator, + blake2b_256, + Ed25519KeyHashHex, + HexBlob, + PlutusData, + toHex, +} from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { parse } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + calculateMinAda, + Core, + makeValue, + TxBuilder, + Value, + type Wallet, +} from "@blaze-cardano/sdk"; + +import { TreasuryDatum as V0_1TreasuryDatum } from "../../generated-types/v0_1/index.js"; +import type { + Asset, + Destination, + DirectRequestV1, + ExchangeRequestV1, + ExtraProtocolRedeemerV1, + MultisigScript, + Nonce, + OrderActionV1, + OrderDatumV1, + ProtocolRedeemerV1, + SignedPayload_ProtocolRedeemerV1, + StakeRequestV1, + TreasuryRequestV1, + Tuple_VerificationKey_COSESign1, +} from "../../generated-types/v1_0/index.js"; + +import { + addDirectOutput, + addDestinationOutput, + buildNonceFromUtxo, + buildMultisigTimelockNativeScript, + buildTimelockAddress, + buildTimelockDestination, + buildTimelockNativeScript, + buildUnstakeMetadatum, + UNSTAKE_METADATA_LABEL, + credentialFromScript, + deployScript, + findReserveAsset, + getDatumFromNFT, + getSignatureKeyHashesFromMultisigScript, + usdrToReserve, + usdrToReserveCeil, + computeReserveDeltas, + lockOrPayAssets, + sortOrderInputs, + type ICachedReferenceInputs, + type IProxyDatumResult, + type IRealfiSDKWithTreasury, + type ITreasuryDatumResult, + type IVaultDatumResult, + RealfiSDKBase, + type TProtocolVersion, + resolveOrderReferenceInputs, + parseCancelOwner, +} from "../shared/index.js"; +import { + screenOrderAction, + screenDepositBatch, + screenOrderUtxoFacts, + type IOrderUtxoFacts, + type TOrderSanityResult, +} from "./order-sanity.js"; +import type { + IProxyDatum, + IV1FamilySchemas, + IV1FamilyScripts, + IV1SigningSchemas, + IVaultDatumLike, + IYieldSplitAlpha, + TV1Registry, + TV1SettingsConfig, +} from "./types.js"; + +// ───────────────────────────────────────────────────────────────────────────── +// Constants +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Sentinel `reserve_asset` used in V1_0 TreasuryRequestV1 redeemers for + * DirectMint and DirectBurn actions, which have no real reserve asset in + * their order datum. The on-chain validators `direct_mint_logic` and + * `direct_burn_logic` do not inspect this field; this sentinel makes the + * intent explicit both in code and when inspecting on-chain redeemers. + * + * - `policy_id`: 28 zero bytes (standard policy-ID length, chosen as a + * sentinel and extremely unlikely to occur as a real script hash) + * - `asset_name`: "unused" (ASCII) + * + * Keep in sync with backend `contract.DirectActionPaddingAsset`. + */ +export const DIRECT_ACTION_PADDING_ASSET: Asset = [ + "00".repeat(28), + toHex(new TextEncoder().encode("unused")), +]; + +// ───────────────────────────────────────────────────────────────────────────── +// Types +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Parsed order information extracted from a UTXO. + */ +export interface IOrderInfo { + utxo: Core.TransactionUnspentOutput; + datum: OrderDatumV1; + actionType: TOrderActionType; + amount: bigint; + /** Yield amount for deposit actions */ + yield?: bigint; + /** Forfeit amount for unstake actions */ + forfeit?: bigint; + /** Reserve asset for treasury actions, undefined for stake/unstake */ + reserveAsset?: [string, string]; + /** + * Absolute fee retained by the protocol, in this action's output unit + * (USDr for Mint, reserve for Burn). Always 0 for Stake/Unstake — the + * protocol does not retain a fee on those actions. Locked at indexing + * time by the Go backend; the SDK never recomputes. Zero (the default) + * means "no fee", e.g. when the dispatcher passes no fees map or the + * map has no entry for this order. + */ + fee: bigint; + /** + * User-enforced output floor copied from the v1.0 datum (in output unit). + * Used as a defensive sanity check by buildXxxExecute to throw early if + * the fee somehow pushes the user output below what was signed. + */ + minReceived?: bigint; +} + +/** Minimal completed-swap shape accepted by the stake continuation builder. */ +export interface IStakeContinuationSwap { + minReceived: { + amount: bigint; + metadata: { + assetId: string; + }; + }; +} + +/** Parameters for building a RealFi stake order as another order's destination. */ +export interface IBuildStakeContinuationParams { + swap: IStakeContinuationSwap; + destination: Destination; + slippageToleranceBps?: bigint; + owner?: MultisigScript; + data?: PlutusData; +} + +/** Address and inline datum a preceding protocol should pay its result to. */ +export interface IStakeContinuation { + address: Core.Address; + datum: PlutusData; +} + +export type TOrderActionType = + | "mint" + | "burn" + | "deposit" + | "withdraw" + | "stake" + | "unstake" + | "direct_mint" + | "direct_burn"; + +/** Result of {@link RealfiSDKV1Family.classifyOrderAction}. */ +export interface IClassifiedOrderAction { + actionType: TOrderActionType; + amount: bigint; + yield?: bigint; + forfeit?: bigint; + minReceived?: bigint; + reserveAsset?: [string, string]; + isTreasuryAction: boolean; +} + +/** Result of {@link RealfiSDKV1Family.classifyOrderUtxo}. */ +export interface IClassifiedOrderUtxo { + /** The order datum decoded with this version's `OrderDatumV1` schema. */ + datum: OrderDatumV1; + /** The action classified from {@link datum}. */ + action: IClassifiedOrderAction; +} + +/** The `origin` field shared by every request kind — the consumed order UTxO. */ +export interface IRequestOrigin { + transaction_id: string; + output_index: bigint; +} + +export interface ITreasuryUnstakeOrderTxResult { + /** Transaction builder for the treasury unstake order. */ + tx: TxBuilder; + /** + * Native script used as the unstake output destination: + * AllOf { After(unlockSlot), owner }. + */ + nativeScript: Core.NativeScript; +} + +/** + * Context handed to {@link RealfiSDKV1Family.applyExecutionValidityBounds} + * at the end of `buildExecuteOrdersTx`. The vault fields are set only when + * the executed action consumed the staking vault (stake/unstake/deposit). + */ +export interface IExecutionValidityContext { + actionType: TOrderActionType; + vaultUtxo?: Core.TransactionUnspentOutput; + parsedVaultDatum?: TVaultDatum; +} + +/** + * Version-agnostic constructor parameters for the V1 family. Each version's + * `static create` assembles this from its own public params interface. + */ +export interface IV1FamilyConstructorParams { + version: TProtocolVersion; + proxyBootstrap: { txHash: Core.TransactionId; outputIndex: bigint }; + /** USDr asset name hex */ + assetNameHex: string; + /** sUSDr asset name hex */ + sUSDrAssetNameHex: string; + enableTrace?: boolean; + defaultSlippageToleranceBps?: bigint; + scriptDeploymentAddress?: Core.Address; + clientSource?: import("../shared/client-id.js").TClientSource; + /** + * Hashes of the validators this deployment actually runs, keyed as in + * `backend/config/env/.protocol.yaml`. + * + * Every identity below is otherwise derived from the Plutus artifacts this + * package bundles, which is correct only while those bytes match the ones on + * chain. Where they do not, the derived order address is an address nothing + * watches — and because an order is `lockAssets` with no on-chain validation, + * funds go there silently. Supplying the deployment's own hashes overrides + * the derivation; the scripts themselves still come from on-chain reference + * inputs, so identity is all that is needed. + * + * Partial maps are normal — validators the deployment does not name keep + * their derived identity. + */ + deployedValidators?: Readonly>; +} + +/** Blueprint validator key (within a version slot) -> SDK identity field. */ +const DEPLOYED_VALIDATOR_FIELDS = [ + [ + "protocol_orchestrator.protocol_orchestrator.withdraw", + "protocolScriptHash", + ], + ["protocol_mint.protocol_mint.withdraw", "protocolMintScriptHash"], + ["protocol_stake.protocol_stake.withdraw", "protocolStakeScriptHash"], + [ + "protocol_management.protocol_management.withdraw", + "protocolManagementScriptHash", + ], + ["order.order.spend", "orderScriptHash"], + ["treasury.treasury.spend", "treasuryScriptHash"], + ["staking_vault.staking_vault.spend", "stakingVaultScriptHash"], +] as const; + +const DEPLOYED_VALIDATOR_PREFIXES = { + V1_0: "v1_0/", + V1_0_Rc1: "v1_0_rc1/", + V1_1_Rc1: "v1_1_rc1/", +} as const; + +type TV1ProtocolVersion = keyof typeof DEPLOYED_VALIDATOR_PREFIXES; + +const COMPATIBLE_STATE_VALIDATOR_FIELDS = new Set([ + "treasuryScriptHash", + "stakingVaultScriptHash", +]); + +/** Hash fields whose address must move with them. */ +const DEPLOYED_ADDRESS_FIELDS = { + orderScriptHash: "orderScriptAddress", + treasuryScriptHash: "treasuryAddress", + stakingVaultScriptHash: "stakingVaultAddress", +} as const; + +export const MIN_LOVELACE = 2000000n; + +/** + * Calculate yield split between staked and unstaked portions. + * Matches on-chain deposit.ak logic: staked_yield_share = total_yield * vault_usdr / treasury_circulating + * + * IMPORTANT: Uses truncation toward zero (BigInt default `/` operator) to match + * Aiken's builtin.quotient_integer. Do NOT use floor division here, as it + * rounds toward negative infinity which gives different results for negative yields. + * Example: floor(-165/90) = -2, but trunc(-165/90) = -1. + */ +/** + * Extract the requests list from a signed payload action, regardless of action type. + * Both TreasuryRequestV1 and RequestV1 have `origin: { transaction_id, output_index }`. + */ +function getRequestsFromAction( + action: ProtocolRedeemerV1, +): Array<{ origin: { transaction_id: string; output_index: bigint } }> { + if ("Mint" in action) return action.Mint.requests; + if ("Burn" in action) return action.Burn.requests; + if ("Withdraw" in action) return action.Withdraw.requests; + if ("Deposit" in action) return action.Deposit.requests; + if ("Stake" in action) return action.Stake.requests; + if ("Unstake" in action) return action.Unstake.requests; + if ("DirectMint" in action) return action.DirectMint.requests; + if ("DirectBurn" in action) return action.DirectBurn.requests; + throw new Error("Unknown action type in signed payload"); +} + +export function calculateYieldShares( + totalYield: bigint, + vaultUSDr: bigint, + treasuryCirculating: bigint, +): { stakedYieldShare: bigint; unstakedYieldShare: bigint } { + // Note: BigInt / truncates toward zero, matching Aiken's quotient_integer + const stakedYieldShare = + treasuryCirculating > 0n + ? (totalYield * vaultUSDr) / treasuryCirculating + : 0n; + const unstakedYieldShare = totalYield - stakedYieldShare; + return { stakedYieldShare, unstakedYieldShare }; +} + +/** + * Refuse to create an order whose `min_received` floor is not strictly + * positive (WTB-1764). + * + * Every v1-family validator predicate that reads `min_received` requires it to + * be > 0, and those predicates run inside a `zip_fold` that `expect`s each + * request in turn — so one order with a zero floor crashes the ENTIRE execution + * transaction, killing every valid order batched alongside it. Such an order can + * never execute; creating it only plants a landmine at the order script address. + * + * This guards both an explicit caller-supplied floor and a computed one that + * rounds or nets down to zero (a dust stake at a high exchange rate, or a + * full-forfeit unstake). + */ +function assertPositiveMinReceived(label: string, minReceived: bigint): void { + if (minReceived <= 0n) { + throw new Error( + `${label} minReceived must be positive (got ${minReceived}); an order with a ` + + "non-positive min_received can never execute and crashes every batch it joins", + ); + } +} + +function buildOrderDestinationValue( + orderInfo: IOrderInfo, + consumedAssets: Array<[Core.AssetId, bigint]>, + deliveredAssets: Array<[Core.AssetId, bigint]> = [], +): Core.Value { + let value = orderInfo.utxo.output().amount(); + for (const [assetId, amount] of consumedAssets) { + if (amount !== 0n) { + value = Value.merge(value, makeValue(0n, [assetId, -amount])); + } + } + for (const [assetId, amount] of deliveredAssets) { + if (amount !== 0n) { + value = Value.merge(value, makeValue(0n, [assetId, amount])); + } + } + return value; +} + +// ───────────────────────────────────────────────────────────────────────────── +// SDK Family Base Class +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Shared implementation for the V1 protocol family (v1_0, v1_0_rc1, v1_1+). + * + * The family is generic over the two datum shapes that differ across + * versions — `TSettings` (the proxy settings static) and `TVaultDatum` (the + * staking-vault datum static) — and receives all generated artifacts from the + * subclass: schema VALUES via {@link IV1FamilySchemas} (plus, optionally, + * {@link IV1SigningSchemas}) and instantiated scripts via + * {@link IV1FamilyScripts}. Method bodies never touch a version's generated + * module directly, so this chunk adds no runtime import edge to any + * `generated-types/v1_x` module and per-version code-splitting is preserved. + * + * Method defaults implement v1_0 semantics (fees, min_received, the v1_0 + * protocol-redeemer schema). Versions that diverge override the affected + * members: + * - vault datum construction is NEVER done inline — it goes through the + * abstract `buildInitialVaultDatum` / `buildUpdatedVaultDatum` seam so + * versions with additional vault fields cannot be silently truncated; + * - settings access goes through the abstract `settingsConfig` / + * `settingsRegistry` adapters; + * - `applyExecutionValidityBounds` lets a version constrain the validity + * interval of execution transactions (no-op by default). + */ +export abstract class RealfiSDKV1Family< + P extends Provider, + W extends Wallet, + TSettings, + TVaultDatum extends IVaultDatumLike, +> + extends RealfiSDKBase + implements IRealfiSDKWithTreasury +{ + // Script hashes and policy IDs + readonly stablecoinPolicyId: Core.PolicyId; + readonly oneShotPolicyId: Core.PolicyId; + readonly protocolScriptHash: Core.Hash28ByteBase16; + readonly protocolMintScriptHash: Core.Hash28ByteBase16; + readonly protocolStakeScriptHash: Core.Hash28ByteBase16; + readonly protocolManagementScriptHash: Core.Hash28ByteBase16; + readonly treasuryScriptHash: Core.Hash28ByteBase16; + readonly treasuryNFTAssetId: Core.AssetId; + readonly orderScriptHash: Core.Hash28ByteBase16; + readonly orderScriptAddress: Core.Address; + readonly treasuryAddress: Core.Address; + readonly stakingVaultScriptHash: Core.Hash28ByteBase16; + readonly stakingVaultAddress: Core.Address; + readonly stakingVaultNFTAssetId: Core.AssetId; + readonly sUSDrAssetNameHex: string; + + // Scripts + protected readonly oneShotScript: Core.Script; + protected readonly protocolScript: Core.Script; // Alias for orchestrator (base class compatibility) + protected readonly protocolOrchestratorScript: Core.Script; + protected readonly protocolMintScript: Core.Script; + protected readonly protocolStakeScript: Core.Script; + protected readonly protocolManagementScript: Core.Script; + protected readonly mintProxyScript: Core.Script; + protected readonly treasuryScript: Core.Script; + protected readonly orderScript: Core.Script; + protected readonly stakingVaultScript: Core.Script; + + protected readonly defaultSlippageToleranceBps?: bigint; + + /** Schema values used by every shared serialize/parse site. */ + protected readonly schemas: IV1FamilySchemas; + private readonly signingSchemas?: IV1SigningSchemas; + + protected constructor( + blaze: Blaze, + params: IV1FamilyConstructorParams, + schemas: IV1FamilySchemas, + scripts: IV1FamilyScripts, + cachedReferenceInputs?: ICachedReferenceInputs, + signingSchemas?: IV1SigningSchemas, + ) { + super( + blaze, + { + version: params.version, + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + enableTrace: params.enableTrace, + scriptDeploymentAddress: params.scriptDeploymentAddress, + clientSource: params.clientSource, + }, + cachedReferenceInputs, + ); + + this.schemas = schemas; + this.signingSchemas = signingSchemas; + + this.sUSDrAssetNameHex = params.sUSDrAssetNameHex; + this.defaultSlippageToleranceBps = params.defaultSlippageToleranceBps; + + this.oneShotScript = scripts.oneShotScript; + this.protocolOrchestratorScript = scripts.protocolOrchestratorScript; + this.protocolScript = scripts.protocolOrchestratorScript; // Alias for base class + this.protocolMintScript = scripts.protocolMintScript; + this.protocolStakeScript = scripts.protocolStakeScript; + this.protocolManagementScript = scripts.protocolManagementScript; + this.mintProxyScript = scripts.mintProxyScript; + this.treasuryScript = scripts.treasuryScript; + this.orderScript = scripts.orderScript; + this.stakingVaultScript = scripts.stakingVaultScript; + + this.oneShotPolicyId = Core.PolicyId(this.oneShotScript.hash()); + this.protocolScriptHash = this.protocolOrchestratorScript.hash(); + this.protocolMintScriptHash = this.protocolMintScript.hash(); + this.protocolStakeScriptHash = this.protocolStakeScript.hash(); + this.protocolManagementScriptHash = this.protocolManagementScript.hash(); + this.stablecoinPolicyId = Core.PolicyId(this.mintProxyScript.hash()); + this.treasuryScriptHash = this.treasuryScript.hash(); + this.orderScriptHash = this.orderScript.hash(); + this.stakingVaultScriptHash = this.stakingVaultScript.hash(); + + this.treasuryAddress = addressFromValidator( + this.network, + this.treasuryScript, + ); + this.orderScriptAddress = addressFromValidator( + this.network, + this.orderScript, + ); + this.stakingVaultAddress = addressFromValidator( + this.network, + this.stakingVaultScript, + ); + + // Every identity above is derived from this package's own artifacts, which + // only describes a deployment running those exact bytes. Where the caller + // knows what the chain actually runs, that wins — otherwise the derived + // order address is one nothing watches, and an order (lockAssets, no + // on-chain validation) would submit successfully into it. + this.applyDeployedValidators(params.deployedValidators, params.version); + + // Treasury NFT: policy = treasury script hash, name = "treasury" + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + this.treasuryNFTAssetId = Core.AssetId( + this.treasuryScriptHash + treasuryAssetName.toString(), + ); + + // Staking vault NFT: policy = staking vault script hash, name = "staking_vault" + const vaultAssetName = Core.AssetName(toHex(Buffer.from("staking_vault"))); + this.stakingVaultNFTAssetId = Core.AssetId( + this.stakingVaultScriptHash + vaultAssetName.toString(), + ); + } + + /** + * Replace derived script identity with the deployment's own hashes. + * + * Version-owned validators are selected only from this SDK's exact version + * slot. Treasury and staking-vault validators can deliberately survive a + * protocol-only upgrade, so their unversioned entries are used as the + * authoritative active-state fallback. + * + * Unrecognised keys are ignored: a blueprint legitimately carries validators + * outside this family (oneshot, mint_proxy) and future ones this build has + * never heard of. + */ + private applyDeployedValidators( + deployed: Readonly> | undefined, + version: TProtocolVersion, + ): void { + if (!deployed) return; + + if (!(version in DEPLOYED_VALIDATOR_PREFIXES)) return; + const prefix = DEPLOYED_VALIDATOR_PREFIXES[version as TV1ProtocolVersion]; + + const mutable = this as unknown as Record; + for (const [suffix, field] of DEPLOYED_VALIDATOR_FIELDS) { + const versionedHash = deployed[`${prefix}${suffix}`]; + const activeStateHash = COMPATIBLE_STATE_VALIDATOR_FIELDS.has(field) + ? deployed[suffix] + : undefined; + const deployedHash = activeStateHash ?? versionedHash; + if (!deployedHash) continue; + + const hash = Core.Hash28ByteBase16(deployedHash.toLowerCase()); + mutable[field] = hash; + + const addressField = + DEPLOYED_ADDRESS_FIELDS[field as keyof typeof DEPLOYED_ADDRESS_FIELDS]; + if (addressField) { + mutable[addressField] = addressFromCredentials( + this.network, + Core.Credential.fromCore({ + type: Core.CredentialType.ScriptHash, + hash, + }), + ); + } + } + } + + // ───────────────────────────────────────────────────────────────────────────── + // Version Seams + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Schemas for the v1_0-semantics signing/execute defaults. Throws for + * versions that neither supplied {@link IV1SigningSchemas} nor overrode + * the two consumers (`getSignedPayloadFromOrderInputs`, + * `buildExecuteOrdersTx`). + */ + protected get signing(): IV1SigningSchemas { + if (!this.signingSchemas) { + throw new Error( + `${this.version}: no signing schemas supplied — pass signingSchemas to the family constructor or override getSignedPayloadFromOrderInputs and buildExecuteOrdersTx`, + ); + } + return this.signingSchemas; + } + + /** + * Project the version's settings onto the fields the shared tx-builders + * read. v1_0/v1_0_rc1: the settings object itself; v1_1+: `settings.config`. + */ + protected abstract settingsConfig(settings: TSettings): TV1SettingsConfig; + + /** + * Extract the validator registry (the fields the family reads) from the + * version's settings. + */ + protected abstract settingsRegistry(settings: TSettings): TV1Registry; + + /** + * Build the vault datum used when bootstrapping the staking vault. + * This is the ONLY place (together with `buildUpdatedVaultDatum`) that + * knows the version's full vault-datum shape. + */ + protected abstract buildInitialVaultDatum(): TVaultDatum; + + /** + * Build the vault datum that replaces `previous` after an execution that + * changes circulating sUSDr by `sUSDrDelta`. Versions with additional + * vault fields decide here how each field carries over. + */ + protected abstract buildUpdatedVaultDatum( + previous: TVaultDatum, + sUSDrDelta: bigint, + ): TVaultDatum; + + /** + * Version hook: the USDr backing the stake/unstake exchange rate is + * computed against. Defaults to the vault's full USDr balance (v1_0 / + * v1_0_rc1 semantics). Versions with time-diffused yield (v1_1_rc1+) + * override this to exclude the not-yet-diffused pending yield + * (`settled_backing` in utilities.ak). + */ + protected settledVaultBacking( + _parsedVaultDatum: TVaultDatum, + vaultUSDr: bigint, + ): bigint { + return vaultUSDr; + } + + /** + * Version hook: constrain the transaction validity interval on order + * executions. Called once at the end of `buildExecuteOrdersTx`, right + * before the builder is returned. + * + * No-op by default: v1_0 / v1_0_rc1 executions carry no validity + * constraints. Versions with time-diffused yield (v1_1_rc1+) override this + * to attach validFrom/validTo bounds on vault-touching executions. + */ + protected async applyExecutionValidityBounds( + _tx: TxBuilder, + _context: IExecutionValidityContext, + ): Promise { + // no-op by default + } + + /** + * Version hook: build the `Deposit` protocol action that goes into the + * COSE-signed payload. v1_0 / v1_0_rc1 have no yield split — the validator + * recomputes it from live state — so they take no `alpha` and reject one. + * Versions that carry a signed `alpha` (v1_1_rc1+) override this and require + * it: it is the batch's parameter, never something a signer derives. + */ + protected async buildDepositAction( + requests: TreasuryRequestV1[], + alpha?: IYieldSplitAlpha, + ): Promise { + if (alpha) { + throw new Error( + `${this.version}: a deposit batch takes no yield-split alpha (the validator recomputes the split from live state)`, + ); + } + return { Deposit: { requests } }; + } + + /** + * Version hook: split a deposit's total yield between the staked vault and + * the unstaked pot at EXECUTION time. + * + * v1_0 / v1_0_rc1 (default): the on-chain validator recomputes the split from + * live vault/treasury state, so recomputing it here from the same state + * matches. v1_1_rc1+ carry a COSE-signed `alpha` in the Deposit action and + * the validator splits against THAT — so those versions override this to echo + * the signed alpha, never a second live read (which would diverge if state + * moved between signing and execution). `action` is the signed action being + * executed; the default ignores it. + */ + protected resolveDepositYieldShares( + totalYield: bigint, + vaultUSDr: bigint, + treasuryCirculating: bigint, + _action: ProtocolRedeemerV1, + ): { stakedYieldShare: bigint; unstakedYieldShare: bigint } { + return calculateYieldShares(totalYield, vaultUSDr, treasuryCirculating); + } + + /** + * Version hook: serialize the redeemer attached to the orchestrator + * withdrawal. Defaults to the bare `SignedRedeemer` + * (v1_0 / v1_0_rc1). Versions whose orchestrator wraps execution in a + * top-level dispatch enum (v1_1_rc1+: `ExecuteOrders(...)`/`PublishYieldOracle`) + * override this to nest the signed redeemer inside that wrapper. + */ + protected serializeOrchestratorWithdrawalRedeemer(redeemer: { + extra: ExtraProtocolRedeemerV1; + payload: SignedPayload_ProtocolRedeemerV1; + signatures: Tuple_VerificationKey_COSESign1[]; + }): PlutusData { + return Data.serialize( + this.signing.SignedRedeemer_ExtraProtocolRedeemerV1, + redeemer, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Treasury Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the treasury NFT. + */ + async mintTreasuryNFT( + treasuryBootstrapUtxo: Core.TransactionUnspentOutput, + initialDatum: V0_1TreasuryDatum = { circulating_supply: 0n }, + ): Promise<{ tx: TxBuilder; nftAssetId: Core.AssetId }> { + const treasuryPolicyId = Core.PolicyId(this.treasuryScriptHash); + const treasuryAssetName = Core.AssetName(toHex(Buffer.from("treasury"))); + + const datum = Data.serialize(V0_1TreasuryDatum, initialDatum); + const tx = await this.blaze + .newTransaction() + .addInput(treasuryBootstrapUtxo) + .addMint( + treasuryPolicyId, + new Map([[treasuryAssetName, 1n]]), + Data.Void(), + ) + .lockAssets( + this.treasuryAddress, + makeValue(10000000n, [this.treasuryNFTAssetId, 1n]), + datum, + ) + .provideScript(this.treasuryScript); + + return { tx, nftAssetId: this.treasuryNFTAssetId }; + } + + async deployTreasury(): Promise { + return deployScript( + this.blaze, + this.treasuryScript, + this.scriptDeploymentAddress, + ); + } + + async deployOrderContract(): Promise { + return deployScript( + this.blaze, + this.orderScript, + this.scriptDeploymentAddress, + ); + } + + async getTreasuryDatum(): Promise> { + const { + utxo: treasuryUtxo, + datum: treasuryDatum, + parsedDatum: parsedTreasuryDatum, + } = await getDatumFromNFT( + this.blaze, + this.treasuryNFTAssetId, + V0_1TreasuryDatum, + ); + + if (!treasuryUtxo) { + throw new Error("No UTXO found with the treasury NFT"); + } + if (!treasuryDatum) { + throw new Error("No treasury datum found"); + } + + return { + treasuryUtxo, + treasuryDatum, + parsedTreasuryDatum: parsedTreasuryDatum as V0_1TreasuryDatum, + }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Staking Vault Operations + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint the staking vault NFT and create initial vault UTxO. + */ + async mintStakingVaultNFT( + stakingVaultBootstrapUtxo: Core.TransactionUnspentOutput, + initialDatum?: TVaultDatum, + ): Promise<{ tx: TxBuilder; nftAssetId: Core.AssetId }> { + const vaultPolicyId = Core.PolicyId(this.stakingVaultScriptHash); + const vaultAssetName = Core.AssetName(toHex(Buffer.from("staking_vault"))); + + const datum = Data.serialize( + this.schemas.VaultDatumV1, + initialDatum ?? this.buildInitialVaultDatum(), + ); + const tx = await this.blaze + .newTransaction() + .addInput(stakingVaultBootstrapUtxo) + .addMint(vaultPolicyId, new Map([[vaultAssetName, 1n]]), Data.Void()) + .lockAssets( + this.stakingVaultAddress, + makeValue(10000000n, [this.stakingVaultNFTAssetId, 1n]), + datum, + ) + .provideScript(this.stakingVaultScript); + + return { tx, nftAssetId: this.stakingVaultNFTAssetId }; + } + + async deployStakingVault(): Promise { + return deployScript( + this.blaze, + this.stakingVaultScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Deploy the protocol mint script as a reference script (V1.0 only). + */ + async deployProtocolMint(): Promise { + return deployScript( + this.blaze, + this.protocolMintScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Deploy the protocol stake script as a reference script (V1.0 only). + */ + async deployProtocolStake(): Promise { + return deployScript( + this.blaze, + this.protocolStakeScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Deploy the protocol management script as a reference script (V1.0 only). + */ + async deployProtocolManagement(): Promise { + return deployScript( + this.blaze, + this.protocolManagementScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Register the protocol mint stake credential (V1.0 sub-validator). + */ + registerProtocolMintStake(): TxBuilder { + const stakeCredential = credentialFromScript(this.protocolMintScript); + return this.blaze.newTransaction().addRegisterStake(stakeCredential); + } + + /** + * Register the protocol stake stake credential (V1.0 sub-validator). + */ + registerProtocolStakeStake(): TxBuilder { + const stakeCredential = credentialFromScript(this.protocolStakeScript); + return this.blaze.newTransaction().addRegisterStake(stakeCredential); + } + + /** + * Register the protocol management stake credential (V1.0 sub-validator). + */ + registerProtocolManagementStake(): TxBuilder { + const stakeCredential = credentialFromScript(this.protocolManagementScript); + return this.blaze.newTransaction().addRegisterStake(stakeCredential); + } + + /** + * Register the staking vault stake credential (for stake/unstake operations). + */ + registerStakingVaultStake(): TxBuilder { + const stakeCredential = credentialFromScript(this.stakingVaultScript); + return this.blaze.newTransaction().addRegisterStake(stakeCredential); + } + + // ─────────────────────────────────────────────────────────────────────────── + // Batched bootstrap helpers (fast fresh-deploy path) + // + // The NFT mints CANNOT be batched: each one-shot mint validator runs + // `mint_oneshots_strict`, which flattens the transaction's ENTIRE mint field + // and fails unless it equals exactly that validator's single token. So a tx + // minting more than one NFT fails phase-2 for all of them — the mints stay + // one-tx-each. Deploys and stake registrations have no such constraint and + // batch freely. + // ─────────────────────────────────────────────────────────────────────────── + + /** + * Register all five protocol stake credentials (orchestrator + mint / stake / + * management sub-validators + staking vault) in a SINGLE transaction. + * Certificates are tiny, so there is no size constraint. Replaces five + * `register*Stake` calls (and, for a cold wallet, five sign/submit cycles). + */ + registerAllStakes(): TxBuilder { + return this.blaze + .newTransaction() + .addRegisterStake(credentialFromScript(this.protocolScript)) + .addRegisterStake(credentialFromScript(this.protocolMintScript)) + .addRegisterStake(credentialFromScript(this.protocolStakeScript)) + .addRegisterStake(credentialFromScript(this.protocolManagementScript)) + .addRegisterStake(credentialFromScript(this.stakingVaultScript)); + } + + /** + * Pack the eight protocol reference-script deployments into as few + * transactions as fit under `budgetBytes` of script payload each, returning + * one TxBuilder per batch in deploy order. + * + * Batches by measured script size (`script.toCbor()` bytes) rather than a + * fixed count, because the validators are wildly uneven (~0.5–11 KB) and two + * of the ~10 KB sub-validators cannot share a transaction. The default budget + * (13 000) leaves headroom under the 16 384-byte tx limit for tx overhead and + * future script growth; callers can lower it if a validator grows. + * + * Fresh-deploy only: it does NOT skip already-deployed scripts. To resume a + * partial deploy, use the granular `deploy*` methods (which throw + * `ScriptAlreadyDeployedError` for idempotent reruns). + */ + deployScriptsBatched(budgetBytes = 13_000): TxBuilder[] { + const scripts: Core.Script[] = [ + this.treasuryScript, + this.protocolScript, + this.protocolMintScript, + this.protocolStakeScript, + this.protocolManagementScript, + this.mintProxyScript, + this.orderScript, + this.stakingVaultScript, + ]; + + const batches: Core.Script[][] = []; + let current: Core.Script[] = []; + let currentBytes = 0; + for (const script of scripts) { + const size = script.toCbor().length / 2; + if (current.length > 0 && currentBytes + size > budgetBytes) { + batches.push(current); + current = []; + currentBytes = 0; + } + current.push(script); + currentBytes += size; + } + if (current.length > 0) batches.push(current); + + return batches.map((batch) => { + let tx = this.blaze.newTransaction(); + for (const script of batch) { + tx = tx.deployScript(script, this.scriptDeploymentAddress); + } + return tx; + }); + } + + /** The sUSDr asset ID (stablecoin policy + staked-USDr asset name). */ + getSusdrAssetId(): Core.AssetId { + return Core.AssetId(this.stablecoinPolicyId + this.sUSDrAssetNameHex); + } + + async getVaultDatum(): Promise> { + const { + utxo: vaultUtxo, + datum: vaultDatum, + parsedDatum: parsedVaultDatum, + } = await getDatumFromNFT( + this.blaze, + this.stakingVaultNFTAssetId, + this.schemas.VaultDatumV1, + ); + + if (!vaultUtxo) { + throw new Error("No UTXO found with the staking vault NFT"); + } + if (!vaultDatum) { + throw new Error("No vault datum found"); + } + + return { + vaultUtxo, + vaultDatum, + parsedVaultDatum: parsedVaultDatum as TVaultDatum, + }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // One-Shot Operations + // ───────────────────────────────────────────────────────────────────────────── + + async mintOneShot( + receiverAddress: Core.Address, + datum: IProxyDatum, + ): Promise<{ tx: TxBuilder; policyId: Core.PolicyId }> { + const utxo = await this.resolveBootstrapUtxo(); + const serializedDatum = Data.serialize(this.schemas.ProxyDatumV1, { + logic: datum.logic, + settings: datum.settings, + }); + + const baseTx = this.blaze + .newTransaction() + .addInput(utxo) + .addMint( + this.oneShotPolicyId, + new Map([[Core.AssetName(""), 1n]]), + Data.Void(), + ); + const tx = lockOrPayAssets( + baseTx, + receiverAddress, + makeValue(10000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ).provideScript(this.oneShotScript); + return { tx, policyId: this.oneShotPolicyId }; + } + + async updateOneShotDatum( + receiverAddress: Core.Address, + newDatum: IProxyDatum, + ): Promise { + const oneshotUtxo = await this.blaze.provider.getUnspentOutputByNFT( + Core.AssetId(this.oneShotPolicyId), + ); + if (!oneshotUtxo) { + throw new Error("No UTXO found with the one-shot NFT"); + } + + const serializedDatum = Data.serialize(this.schemas.ProxyDatumV1, { + logic: newDatum.logic, + settings: newDatum.settings, + }); + + return lockOrPayAssets( + this.blaze.newTransaction().addInput(oneshotUtxo), + receiverAddress, + makeValue(10000000n, [this.oneShotPolicyId, 1n]), + serializedDatum, + ); + } + + async getParsedProxyDatum(): Promise< + IProxyDatumResult> + > { + if (this.cachedProxyDatumResult) { + return this.cachedProxyDatumResult as IProxyDatumResult< + IProxyDatum + >; + } + + const { proxyUtxo, proxyDatum } = await this.getRawProxyDatum(); + const parsedProxyDatum = parse(this.schemas.ProxyDatumV1, proxyDatum); + const result = { proxyUtxo, proxyDatum, parsedProxyDatum }; + + this.cachedProxyDatumResult = result; + return result; + } + + /** + * Check if the protocol has been upgraded past this SDK version. + * + * Returns true if either: + * - The order script hash no longer matches registry.order (order validator upgraded) + * - The protocol logic no longer matches this SDK's protocol script hash (protocol upgraded) + * + * When this returns true, orders created with this SDK version can use the + * `Invalidated` redeemer to recover funds via `buildInvalidatedOrdersTx`. + */ + async isProtocolUpgraded(): Promise { + const { parsedProxyDatum } = await this.getParsedProxyDatum(); + const registry = this.settingsRegistry(parsedProxyDatum.settings); + const orderUpgraded = registry.order !== this.orderScriptHash; + const protocolUpgraded = parsedProxyDatum.logic !== this.protocolScriptHash; + return orderUpgraded || protocolUpgraded; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Public Order-Scan / Settings Accessors + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Read the version-agnostic settings config (`reserve_assets`, + * `unstaked_yield_pot`) off the live proxy datum. Public accessor over the + * `settingsConfig` / `getVersionSettings` seam so consumers read the shared + * fields without casting a version-specific settings shape: v1_0 / v1_0_rc1 + * project the flat settings, v1_1+ project `settings.config`. + */ + async getSettingsConfig(): Promise { + return this.settingsConfig(await this.getVersionSettings()); + } + + /** + * Whether the batch covering these orders needs a yield-split alpha, i.e. it is + * a deposit on a version that splits yield. Callers that both create and sign a + * batch use it to decide whether to pick one (computeDepositAlpha); a co-signer + * has no use for it — it reads the batch's stored alpha either way. + */ + async batchNeedsAlpha( + orderInputs: Core.TransactionInput[], + ): Promise { + if (orderInputs.length === 0) { + return false; + } + const [utxo] = await this.blaze.provider.resolveUnspentOutputs([ + orderInputs[0]!, + ]); + return ( + this.classifyOrderUtxo(utxo!).action.actionType === "deposit" && + this.splitsYield + ); + } + + /** + * Whether this version's Deposit action carries a signed yield split. False for + * v1_0 / v1_0_rc1, whose validator recomputes the split from live state; + * v1_1_rc1+ override it. + */ + protected get splitsYield(): boolean { + return false; + } + + /** + * Decode and classify a single open order UTxO with this version's schema. + * + * Parses the UTxO's inline datum via `this.schemas.OrderDatumV1` — exactly + * the way {@link parseOrderInfos} does — then classifies the action. Unlike + * {@link parseOrders}, this imposes NO same-action-type constraint, so it is + * the per-UTxO primitive for scanning a MIXED batch of open orders at the + * order script address and handling each by its action type. + * + * @throws if the UTxO carries no inline datum, or the datum fails to decode + * under this version's order schema (e.g. a V1.1 order read by a V1.0 SDK). + */ + classifyOrderUtxo(utxo: Core.TransactionUnspentOutput): IClassifiedOrderUtxo { + const datumData = utxo.output().datum()?.asInlineData(); + if (!datumData) { + throw new Error("Order UTXO has no inline datum"); + } + const datum = parse(this.schemas.OrderDatumV1, datumData) as OrderDatumV1; + return { datum, action: this.classifyOrderAction(datum) }; + } + + /** + * Decode a batch of order UTxOs into {@link IOrderInfo} objects, validating + * they are ALL the same action type (throws on a mixed batch). Public + * wrapper over {@link parseOrderInfos}; use it to prepare inputs for the + * same-type execute builders. To scan a mixed batch, classify each UTxO + * individually with {@link classifyOrderUtxo} instead. + * + * The optional `fees` map (keyed by `${txHash}#${outputIndex}`) stamps each + * order with its locked fee in the action's output unit; missing entries + * default to 0 (no fee retained). + */ + parseOrders( + orderUtxos: Core.TransactionUnspentOutput[], + fees?: Map, + ): IOrderInfo[] { + return this.parseOrderInfos(orderUtxos, fees); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Order Builder Methods (8 methods: 6 from V0_4 + DirectMint + DirectBurn) + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Internal helper to build an order transaction. + */ + protected async _buildOrderTx(params: { + action: OrderActionV1; + valueToLock: Core.Value; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + extraLabels?: Map; + }): Promise { + const owner = await this.resolveOrderOwner(params.owner); + const serializedDatum = this.serializeOrderDatum( + params.action, + params.destination, + owner, + params.data, + ); + + const tx = this.newOrderTransaction(params.extraLabels); + tx.lockAssets(this.orderScriptAddress, params.valueToLock, serializedDatum); + return tx; + } + + /** Resolve the order owner exactly once for transaction and continuation builders. */ + protected async resolveOrderOwner( + owner?: MultisigScript, + ): Promise { + if (owner) return owner; + return { + Signature: { + key_hash: (await this.blaze.wallet.getChangeAddress()) + .getProps() + .paymentPart!.hash!.toString(), + }, + }; + } + + /** Serialize an order datum through the live version instance's schema seam. */ + protected serializeOrderDatum( + action: OrderActionV1, + destination: Destination, + owner: MultisigScript, + data?: PlutusData, + ): PlutusData { + const orderDatum: OrderDatumV1 = { + action, + owner, + destination, + data: data ?? Data.Void(), + }; + return Data.serialize(this.schemas.OrderDatumV1, orderDatum); + } + + /** + * Build a mint order: lock reserve tokens, request USDr minting. + */ + async buildMintOrderTx(params: { + amount: bigint; + reserveAsset: [string, string]; + destination: Destination; + minReceived?: bigint; + /** + * ADA to lock in the RealFi order UTxO and forward to the destination + * output when the order is executed. Defaults to MIN_LOVELACE. + */ + orderLovelace?: bigint; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Mint amount must be positive"); + } + const orderLovelace = params.orderLovelace ?? MIN_LOVELACE; + if (orderLovelace < MIN_LOVELACE) { + throw new Error("Mint order lovelace cannot be less than MIN_LOVELACE"); + } + const reserveAssetId = Core.AssetId( + params.reserveAsset[0] + params.reserveAsset[1], + ); + // Convert USDr amount to reserve amount using ceiling division + // to ensure enough reserve is locked for on-chain validation + const settings = this.settingsConfig(await this.getVersionSettings()); + const ra = findReserveAsset(settings, params.reserveAsset); + const reserveAmount = usdrToReserveCeil(params.amount, ra); + // Mint is 1:1 reserve→USDR with no protocol fee in v1_0, so the user + // receives exactly `amount`. Default the floor to `amount`; callers can + // lower it if a future fee makes that too tight. + const minReceived = params.minReceived ?? params.amount; + assertPositiveMinReceived("Mint", minReceived); + return this._buildOrderTx({ + action: { + OMint: { + amount: params.amount, + min_received: minReceived, + reserve_asset: params.reserveAsset, + }, + }, + valueToLock: makeValue(orderLovelace, [reserveAssetId, reserveAmount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a redeem (burn) order: lock USDr, request reserve token redemption. + */ + async buildRedeemOrderTx(params: { + amount: bigint; + reserveAsset: [string, string]; + destination: Destination; + minReceived?: bigint; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Redeem amount must be positive"); + } + const settings = this.settingsConfig(await this.getVersionSettings()); + const ra = findReserveAsset(settings, params.reserveAsset); + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + // burn.ak caps delivery at usdr_to_reserve(amount, ra), so the default + // floor must use the configured reserve multiplier rather than assume 1:1. + const minReceived = params.minReceived ?? usdrToReserve(params.amount, ra); + assertPositiveMinReceived("Redeem", minReceived); + return this._buildOrderTx({ + action: { + ORedeem: { + amount: params.amount, + min_received: minReceived, + reserve_asset: params.reserveAsset, + }, + }, + valueToLock: makeValue(MIN_LOVELACE, [stablecoinAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a deposit order: lock reserve tokens, request treasury deposit. + */ + async buildDepositOrderTx(params: { + principal: bigint; + yield: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.principal < 0n) { + throw new Error("Deposit principal must be non-negative"); + } + if (params.principal === 0n && params.yield === 0n) { + throw new Error("Deposit must have non-zero principal or yield"); + } + const settings = this.settingsConfig(await this.getVersionSettings()); + const ra = findReserveAsset(settings, params.reserveAsset); + const reserveAssetId = Core.AssetId( + params.reserveAsset[0] + params.reserveAsset[1], + ); + + let valueToLock: Core.Value; + + if (params.yield >= 0n) { + // POSITIVE YIELD: need reserve backing for BOTH principal AND yield. + // Contract validates: reserve_to_usdr(treasury_delta) >= principal + yield + // So we must lock: usdrToReserveCeil(principal + yield) reserve tokens + const totalUSDrBacking = params.principal + params.yield; + if (totalUSDrBacking > 0n) { + const reserveAmount = usdrToReserveCeil(totalUSDrBacking, ra); + valueToLock = makeValue(MIN_LOVELACE, [reserveAssetId, reserveAmount]); + } else { + valueToLock = makeValue(MIN_LOVELACE); + } + } else { + // NEGATIVE YIELD: lock principal (in reserve) + unstaked yield share (in USDr). + // The staked share comes from the vault (validated on-chain via vault USDr change). + const principalReserve = + params.principal > 0n ? usdrToReserveCeil(params.principal, ra) : 0n; + + valueToLock = + principalReserve > 0n + ? makeValue(MIN_LOVELACE, [reserveAssetId, principalReserve]) + : makeValue(MIN_LOVELACE); + + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + + // Fetch current state to calculate yield split + const { parsedTreasuryDatum } = await this.getTreasuryDatum(); + const vaultUtxo = (await this.getVaultDatum()).vaultUtxo; + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const treasuryCirculating = parsedTreasuryDatum.circulating_supply; + + const { unstakedYieldShare } = calculateYieldShares( + params.yield, + vaultUSDr, + treasuryCirculating, + ); + + // Lock only the unstaked portion (negated since unstakedYieldShare is negative) + if (unstakedYieldShare < 0n) { + valueToLock = Value.merge( + valueToLock, + makeValue(0n, [stablecoinAssetId, -unstakedYieldShare]), + ); + } + } + return this._buildOrderTx({ + action: { + ODeposit: { + principal: params.principal, + yield: params.yield, + reserve_asset: params.reserveAsset, + }, + }, + valueToLock, + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a withdraw order: lock min ADA, request reserve token withdrawal. + */ + async buildWithdrawOrderTx(params: { + amount: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Withdraw amount must be positive"); + } + const settings = this.settingsConfig(await this.getVersionSettings()); + findReserveAsset(settings, params.reserveAsset); + return this._buildOrderTx({ + action: { + OWithdraw: { + amount: params.amount, + reserve_asset: params.reserveAsset, + }, + }, + valueToLock: makeValue(MIN_LOVELACE), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a stake order: lock USDr, request sUSDr minting. + */ + async buildStakeOrderTx(params: { + amount: bigint; + destination: Destination; + minReceived?: bigint; + slippageToleranceBps?: bigint; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Stake amount must be positive"); + } + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const minReceived = + params.minReceived ?? + (await this.computeStakeMinReceived( + params.amount, + params.slippageToleranceBps, + )); + assertPositiveMinReceived("Stake", minReceived); + return this._buildOrderTx({ + action: { + OStake: { + amount: params.amount, + min_received: minReceived, + }, + }, + valueToLock: makeValue(MIN_LOVELACE, [stablecoinAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a stake-order continuation from a completed swap's guaranteed USDr + * output. The swap quote remains observable to the caller, while the SDK + * owns the RealFi amount, exchange-rate quote, schema, and request address. + */ + async buildStakeContinuation( + params: IBuildStakeContinuationParams, + ): Promise { + const amount = params.swap.minReceived.amount; + if (amount <= 0n) { + throw new Error("Swap minReceived amount must be positive"); + } + + const expectedSundaeAssetId = `${this.stablecoinPolicyId}.${this.assetNameHex}`; + if (params.swap.minReceived.metadata.assetId !== expectedSundaeAssetId) { + throw new Error( + `Swap minReceived must be USDr (${expectedSundaeAssetId}), got ${params.swap.minReceived.metadata.assetId}`, + ); + } + + const minReceived = await this.computeStakeMinReceived( + amount, + params.slippageToleranceBps, + ); + assertPositiveMinReceived("Stake", minReceived); + const owner = await this.resolveOrderOwner(params.owner); + + return { + address: this.orderScriptAddress, + datum: this.serializeOrderDatum( + { + OStake: { + amount, + min_received: minReceived, + }, + }, + params.destination, + owner, + params.data, + ), + }; + } + + protected async _buildUnstakeOrderTx(params: { + amount: bigint; + destination: Destination; + forfeit?: bigint; + minReceived?: bigint; + slippageToleranceBps?: bigint; + owner?: MultisigScript; + data?: PlutusData; + extraLabels?: Map; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Unstake amount must be positive"); + } + const forfeit = params.forfeit ?? 0n; + if (forfeit < 0n) { + throw new Error("Forfeit amount cannot be negative"); + } + + const sUSDrAssetId = Core.AssetId( + this.stablecoinPolicyId + this.sUSDrAssetNameHex, + ); + const minReceived = + params.minReceived ?? + (await this.computeUnstakeMinReceived( + params.amount, + forfeit, + params.slippageToleranceBps, + )); + // Also catches a full forfeit, where computeUnstakeMinReceived nets to 0: + // unstake.ak's own comment defers that case to `min_received > 0`, i.e. the + // batch-wide crash. Refuse to create the order instead. + assertPositiveMinReceived("Unstake", minReceived); + + return this._buildOrderTx({ + action: { + OUnstake: { + amount: params.amount, + min_received: minReceived, + forfeit, + }, + }, + valueToLock: makeValue(MIN_LOVELACE, [sUSDrAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + extraLabels: params.extraLabels, + }); + } + + /** + * Build an unstake order: lock sUSDr, request USDr release. + * + * The destination is automatically set to a native script address that + * enforces a timelock: AllOf { Signature(user), After(unlockSlot) }. + * This means the released USDr can only be spent by the user after the + * unlock time has passed. + * + * @param params.amount - Amount of sUSDr to unstake + * @param params.destination - The user's actual destination (used to extract payment key hash) + * @param params.unlockSlot - Slot number after which the user can spend the released USDr + * @param params.forfeit - Optional amount of USDr to forfeit to yield pot (default: 0) + * @param params.slippageToleranceBps - Optional min-received tolerance override in basis points + */ + async buildUnstakeOrderTx(params: { + amount: bigint; + destination: Destination; + unlockSlot: bigint; + forfeit?: bigint; + minReceived?: bigint; + slippageToleranceBps?: bigint; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + const timelockDestination = buildTimelockDestination( + params.destination, + params.unlockSlot, + ); + const extraLabels = new Map([ + [ + UNSTAKE_METADATA_LABEL, + buildUnstakeMetadatum(params.destination, params.unlockSlot), + ], + ]); + + return this._buildUnstakeOrderTx({ + amount: params.amount, + destination: timelockDestination, + forfeit: params.forfeit, + minReceived: params.minReceived, + slippageToleranceBps: params.slippageToleranceBps, + owner: params.owner, + data: params.data, + extraLabels, + }); + } + + /** + * Build a treasury-managed unstake order that wraps the destination in a + * native timelock script controlled by the order owner. + * + * The destination is set to: AllOf { After(unlockSlot), owner }. This keeps + * treasury multisig ownership on the released USDr while enforcing the same + * unlock slot used by the retail unstake helper. The owner must be convertible + * to a Cardano native script. + */ + async buildTreasuryUnstakeOrderTx(params: { + amount: bigint; + destination: Destination; + unlockSlot: bigint; + forfeit?: bigint; + minReceived?: bigint; + slippageToleranceBps?: bigint; + owner: MultisigScript; + data?: PlutusData; + }): Promise { + const nativeScript = buildMultisigTimelockNativeScript( + params.owner, + params.unlockSlot, + ); + const timelockDestination: Destination = { + address: { + payment_credential: { Script: [nativeScript.hash()] }, + stake_credential: params.destination.address.stake_credential, + }, + datum: "NoDatum", + }; + + // Attach the unstake metadata (label 55534472) exactly like the retail + // path (buildUnstakeOrderTx). track-chain requires this label to index the + // order; without it the confirmed unstake output is silently dropped + // (WTB-1466). Mirror retail precisely: the metadatum is built from the + // user-supplied destination (params.destination), not the derived timelock + // destination, and carries the same unlock_time. + const extraLabels = new Map([ + [ + UNSTAKE_METADATA_LABEL, + buildUnstakeMetadatum(params.destination, params.unlockSlot), + ], + ]); + + const tx = await this._buildUnstakeOrderTx({ + amount: params.amount, + destination: timelockDestination, + forfeit: params.forfeit, + minReceived: params.minReceived, + slippageToleranceBps: params.slippageToleranceBps, + owner: params.owner, + data: params.data, + extraLabels, + }); + + return { tx, nativeScript }; + } + + /** + * Compute the default `min_received` (output sUSDR floor) for a stake order + * by reading the current staking-vault exchange rate and applying a + * slippage tolerance buffer. + * + * Tolerance resolution: per-call > SDK-level (defaultSlippageToleranceBps) + * > built-in 50bps (0.5%). + * + * Yield accrual moves `vault_usdr` up over time, so shares-per-USDR shrinks + * between order placement and execution. The buffer protects the user from + * receiving fewer shares than they expected at sign time. + * + * Bootstrap edge case: when the vault is empty (no USDR locked or no sUSDR + * circulating), the rate is treated as 1:1 and the buffer is skipped. + */ + protected async computeStakeMinReceived( + amount: bigint, + perCallToleranceBps?: bigint, + ): Promise { + const toleranceBps = + this.resolveStakeSlippageToleranceBps(perCallToleranceBps); + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const { vaultUtxo, parsedVaultDatum } = await this.getVaultDatum(); + const vaultUsdr = this.settledVaultBacking( + parsedVaultDatum, + vaultUtxo.output().amount().multiasset()?.get(stablecoinAssetId) ?? 0n, + ); + const circulatingSusdr = parsedVaultDatum.circulating_susdr; + if (vaultUsdr === 0n || circulatingSusdr === 0n) { + return amount; + } + const expected = (amount * circulatingSusdr) / vaultUsdr; + return (expected * (10000n - toleranceBps)) / 10000n; + } + + protected resolveStakeSlippageToleranceBps( + perCallToleranceBps?: bigint, + ): bigint { + const toleranceBps = + perCallToleranceBps ?? this.defaultSlippageToleranceBps ?? 50n; + if (toleranceBps < 0n || toleranceBps > 10_000n) { + throw new Error("Slippage tolerance must be between 0 and 10000 bps"); + } + return toleranceBps; + } + + /** + * Compute the default `min_received` (output USDR floor) for an unstake + * order by reading the current staking-vault exchange rate. + * + * `forfeit` is subtracted from the gross expected USDR, then a slippage + * tolerance protects the order from quote/provider drift. Tolerance + * resolution is per-call > SDK-level > built-in 50bps (0.5%). + * + * Bootstrap edge case: when the vault is empty, the rate is treated as 1:1. + */ + protected async computeUnstakeMinReceived( + amount: bigint, + forfeit: bigint, + perCallToleranceBps?: bigint, + ): Promise { + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const { vaultUtxo, parsedVaultDatum } = await this.getVaultDatum(); + const vaultUsdr = this.settledVaultBacking( + parsedVaultDatum, + vaultUtxo.output().amount().multiasset()?.get(stablecoinAssetId) ?? 0n, + ); + const circulatingSusdr = parsedVaultDatum.circulating_susdr; + const expectedGross = + vaultUsdr === 0n || circulatingSusdr === 0n + ? amount + : (amount * vaultUsdr) / circulatingSusdr; + const expectedNet = expectedGross > forfeit ? expectedGross - forfeit : 0n; + const toleranceBps = + this.resolveStakeSlippageToleranceBps(perCallToleranceBps); + return (expectedNet * (10000n - toleranceBps)) / 10000n; + } + + /** + * Build a direct mint order: mint USDr without reserve asset backing. + * Used for fiat wire scenarios where reserve arrives off-chain. + */ + async buildDirectMintOrderTx(params: { + amount: bigint; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Direct mint amount must be positive"); + } + // DirectMint orders only need min ADA - no reserve tokens + return this._buildOrderTx({ + action: { ODirectMint: { amount: params.amount } }, + valueToLock: makeValue(MIN_LOVELACE), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a direct burn order: burn USDr without reserve asset redemption. + * Used for fiat wire scenarios where reserve is sent off-chain. + */ + async buildDirectBurnOrderTx(params: { + amount: bigint; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Direct burn amount must be positive"); + } + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + // DirectBurn orders must lock the USDr being burned + return this._buildOrderTx({ + action: { ODirectBurn: { amount: params.amount } }, + valueToLock: makeValue(MIN_LOVELACE, [stablecoinAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + static buildTimelockNativeScript = buildTimelockNativeScript; + static buildTimelockAddress = buildTimelockAddress; + static buildMultisigTimelockNativeScript = buildMultisigTimelockNativeScript; + + // ───────────────────────────────────────────────────────────────────────────── + // Signed Payload and Signing + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build the V1_0 SignedPayload_ProtocolRedeemer from order inputs. + * Returns both the CBOR hex string (for buildExecuteOrdersTx) and + * the blake2b_256 hash (for CIP-30 signing). + * + * `alpha` is the batch's yield split, required by versions whose Deposit + * action carries one (v1_1_rc1+) and rejected everywhere else. It is a + * parameter of the batch, chosen once by whoever created it and read back from + * the backend by every co-signer: on-chain, all signatures of a batch are + * checked against ONE payload hash, so a signer that derived its own value + * would produce bytes nobody else can co-sign. + */ + async getSignedPayloadFromOrderInputs( + orderInputs: Core.TransactionInput[], + alpha?: IYieldSplitAlpha, + ): Promise<{ signedPayload: string; payloadHash: string }> { + if (orderInputs.length === 0) { + throw new Error("At least one order input is required"); + } + + const sortedInputs = sortOrderInputs(orderInputs); + const nonce = buildNonceFromUtxo(sortedInputs[0]!) as Nonce; + + const resolvedUtxos = + await this.blaze.provider.resolveUnspentOutputs(sortedInputs); + + let actionType: TOrderActionType | null = null; + const exchangeRequests: ExchangeRequestV1[] = []; + const treasuryRequests: TreasuryRequestV1[] = []; + const stakeRequests: StakeRequestV1[] = []; + const directRequests: DirectRequestV1[] = []; + + for (const utxo of resolvedUtxos) { + const datumData = utxo.output().datum()?.asInlineData(); + if (!datumData) { + throw new Error("Order UTXO has no inline datum"); + } + const datum = parse(this.schemas.OrderDatumV1, datumData) as OrderDatumV1; + const origin = { + transaction_id: utxo.input().transactionId().toString(), + output_index: utxo.input().index(), + }; + + const parsed = this.classifyOrderAction(datum); + + // WTB-1764: the validators check each request inside one zip_fold via + // `expect validation(request)`, so a request that fails its predicate + // crashes the WHOLE execution transaction — every valid order batched + // alongside it dies too, with only an opaque "the validator crashed" + // to go on. Refuse to package it, and say which order it was. + const screened = await this.screenOrderForExecution(utxo, parsed); + if (!screened.ok) { + throw new Error( + `Order ${origin.transaction_id}#${origin.output_index} cannot be executed: ` + + `${screened.reason}. Every order batched with it would crash on-chain.`, + ); + } + + if (actionType === null) { + actionType = parsed.actionType; + } else if (actionType !== parsed.actionType) { + throw new Error( + "Mixed order types in inputs. All orders must be of the same type.", + ); + } + + if (parsed.actionType === "mint" || parsed.actionType === "burn") { + exchangeRequests.push({ + destination: datum.destination, + amount: parsed.amount, + min_received: parsed.minReceived ?? 0n, + origin, + reserve_asset: parsed.reserveAsset!, + }); + } else if ( + parsed.actionType === "deposit" || + parsed.actionType === "withdraw" + ) { + treasuryRequests.push(this.buildTreasuryRequest(datum, parsed, origin)); + } else if ( + parsed.actionType === "stake" || + parsed.actionType === "unstake" + ) { + stakeRequests.push({ + destination: datum.destination, + amount: parsed.amount, + min_received: parsed.minReceived ?? 0n, + origin, + forfeit: parsed.forfeit ?? 0n, + }); + } else { + directRequests.push({ + destination: datum.destination, + amount: parsed.amount, + origin, + }); + } + } + + // Only a deposit splits yield. Silently dropping an alpha here would let a + // caller believe it had parameterised a batch that ignores the value. + if (alpha && actionType !== "deposit") { + throw new Error( + `a ${actionType} batch takes no yield-split alpha (only a deposit splits yield)`, + ); + } + if (actionType === "deposit") { + const batchVerdict = screenDepositBatch( + treasuryRequests.map((request) => ({ + actionType: "deposit", + amount: request.amount, + yield: request.yield, + })), + ); + if (!batchVerdict.ok) { + throw new Error( + `${batchVerdict.reason}. Every order batched with it would crash on-chain.`, + ); + } + } + + let action: ProtocolRedeemerV1; + switch (actionType) { + case "mint": + action = { Mint: { requests: exchangeRequests } }; + break; + case "burn": + action = { Burn: { requests: exchangeRequests } }; + break; + case "withdraw": + action = { Withdraw: { requests: treasuryRequests } }; + break; + case "deposit": + action = await this.buildDepositAction(treasuryRequests, alpha); + break; + case "stake": + action = { Stake: { requests: stakeRequests } }; + break; + case "unstake": + action = { Unstake: { requests: stakeRequests } }; + break; + case "direct_mint": + action = { DirectMint: { requests: directRequests } }; + break; + case "direct_burn": + action = { DirectBurn: { requests: directRequests } }; + break; + default: + throw new Error("No orders to process"); + } + + const payload: SignedPayload_ProtocolRedeemerV1 = { + action, + nonce, + }; + const serialized = Data.serialize( + this.signing.SignedPayload_ProtocolRedeemerV1, + payload, + ); + const signedPayload = serialized.toCbor().toString(); + const payloadHash = blake2b_256(HexBlob(signedPayload)); + + return { signedPayload, payloadHash }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Execute Orders + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a transaction to execute orders. + * + * Handles all 8 action types: mint, burn, deposit, withdraw, stake, unstake, + * direct_mint, direct_burn. + */ + async buildExecuteOrdersTx(params: { + orderInputs: Core.TransactionInput[]; + signedPayload: string; + signatures: Tuple_VerificationKey_COSESign1[]; + /** + * Per-order fees retained by the protocol, keyed by `${txHash}#${index}`, + * in the action's output unit (USDr for Mint, reserve for Burn, sUSDr for + * Stake, USDr for Unstake). Computed and locked by the Go backend at the + * order's index time. Missing entries default to 0 (no fee retained). + * The SDK never recomputes a fee — it just subtracts this absolute value + * from each user's destination output. + */ + fees?: Map; + }): Promise { + const { + orderInputs, + signedPayload: signedPayloadCbor, + signatures, + fees, + } = params; + + // Deserialize CBOR hex to object for internal use + const signedPayload = parse( + this.signing.SignedPayload_ProtocolRedeemerV1, + PlutusData.fromCbor(HexBlob(signedPayloadCbor)), + ) as SignedPayload_ProtocolRedeemerV1; + + // 1. Sort and resolve order UTxOs + const sortedOrderInputs = sortOrderInputs(orderInputs); + const orderUtxos = + await this.blaze.provider.resolveUnspentOutputs(sortedOrderInputs); + + // 2. Parse orders and validate same type. The fees map (if any) stamps + // each IOrderInfo with the locked fee that buildXxxExecute will subtract. + const orderInfos = this.parseOrderInfos(orderUtxos, fees); + const actionType = orderInfos[0]!.actionType; + + // 3. Get protocol settings + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + const settings = this.settingsConfig(parsedProxyDatum.settings); + + // 4. Determine what we need + const needsTreasury = [ + "mint", + "burn", + "withdraw", + "deposit", + "direct_mint", + "direct_burn", + ].includes(actionType); + const needsVault = ["stake", "unstake", "deposit"].includes(actionType); + + // 5. Get script reference inputs + // V1.0 requires the orchestrator and the relevant sub-validator script + const isMintAction = [ + "mint", + "burn", + "direct_mint", + "direct_burn", + ].includes(actionType); + const isStakeAction = ["stake", "unstake"].includes(actionType); + + const scriptHashesNeeded: Record = { + protocol: this.protocolScriptHash, + order: this.orderScriptHash, + }; + if (isMintAction) { + scriptHashesNeeded.protocolMint = this.protocolMintScriptHash; + } else if (isStakeAction) { + scriptHashesNeeded.protocolStake = this.protocolStakeScriptHash; + } else { + scriptHashesNeeded.protocolManagement = this.protocolManagementScriptHash; + } + if (needsTreasury) { + scriptHashesNeeded.treasury = this.treasuryScriptHash; + } + if (needsVault) { + scriptHashesNeeded.stakingVault = this.stakingVaultScriptHash; + } + const refInputs = await this.getScriptReferenceInputs(scriptHashesNeeded); + + // 6. Fetch treasury and vault if needed + let treasuryUtxo: Core.TransactionUnspentOutput | undefined; + let parsedTreasuryDatum: V0_1TreasuryDatum | undefined; + if (needsTreasury) { + const treasuryResult = await this.getTreasuryDatum(); + treasuryUtxo = treasuryResult.treasuryUtxo; + parsedTreasuryDatum = treasuryResult.parsedTreasuryDatum; + } + + let vaultUtxo: Core.TransactionUnspentOutput | undefined; + let parsedVaultDatum: TVaultDatum | undefined; + if (needsVault) { + const vaultResult = await this.getVaultDatum(); + vaultUtxo = vaultResult.vaultUtxo; + parsedVaultDatum = vaultResult.parsedVaultDatum; + } + + // 7. Gather wallet UTxOs so we can include them in index calculations. + const walletUtxos = await this.blaze.wallet.getUnspentOutputs(); + const excludedInputIds = new Set(); + const utxoKey = (inp: Core.TransactionInput) => + `${inp.transactionId().toString()}#${inp.index().toString()}`; + // Exclude script inputs (order, treasury, vault) + for (const orderInfo of orderInfos) { + excludedInputIds.add(utxoKey(orderInfo.utxo.input())); + } + if (treasuryUtxo) { + excludedInputIds.add(utxoKey(treasuryUtxo.input())); + } + if (vaultUtxo) { + excludedInputIds.add(utxoKey(vaultUtxo.input())); + } + // Exclude reference inputs (must be disjoint from regular inputs) + excludedInputIds.add(utxoKey(proxyUtxo.input())); + for (const refUtxo of Object.values(refInputs)) { + if (refUtxo) { + excludedInputIds.add(utxoKey(refUtxo.input())); + } + } + const feeUtxos = walletUtxos.filter( + (utxo) => !excludedInputIds.has(utxoKey(utxo.input())), + ); + + // 8. Compute input indices (ledger sorts inputs by txHash + outputIndex). + const allInputRefs: Core.TransactionInput[] = orderInfos.map((o) => + o.utxo.input(), + ); + if (treasuryUtxo) { + allInputRefs.push(treasuryUtxo.input()); + } + if (vaultUtxo) { + allInputRefs.push(vaultUtxo.input()); + } + for (const feeUtxo of feeUtxos) { + allInputRefs.push(feeUtxo.input()); + } + + const sortedAllInputRefs = [...allInputRefs].sort((a, b) => { + const txA = a.transactionId().toString(); + const txB = b.transactionId().toString(); + if (txA < txB) return -1; + if (txA > txB) return 1; + return Number(a.index()) - Number(b.index()); + }); + + const findInputIdx = (input: Core.TransactionInput): bigint => { + const idx = sortedAllInputRefs.findIndex( + (r) => + r.transactionId().toString() === input.transactionId().toString() && + r.index() === input.index(), + ); + return BigInt(idx); + }; + + const treasuryInputIdx = treasuryUtxo + ? findInputIdx(treasuryUtxo.input()) + : 0n; + const vaultInputIdx = vaultUtxo + ? findInputIdx(vaultUtxo.input()) + : undefined; + + // 8a. Correlate order inputs to signed request indices via origin fields. + // When all orders are present this produces the same identity mapping as before. + // When a subset is passed (partial execution), it maps each input to the + // correct request index in the signed payload. + const signedRequests = getRequestsFromAction(signedPayload.action); + const originToRequestIdx = new Map(); + for (let i = 0; i < signedRequests.length; i++) { + const o = signedRequests[i]!.origin; + originToRequestIdx.set(`${o.transaction_id}#${o.output_index}`, i); + } + + const inputToRequests: bigint[] = []; + const requestToOutputs: bigint[] = []; + for (let outputIdx = 0; outputIdx < orderInfos.length; outputIdx++) { + const input = orderInfos[outputIdx]!.utxo.input(); + const key = `${input.transactionId()}#${input.index()}`; + const requestIdx = originToRequestIdx.get(key); + if (requestIdx === undefined) { + throw new Error(`Order input ${key} not found in signed payload`); + } + inputToRequests.push(BigInt(requestIdx)); + requestToOutputs.push(BigInt(outputIdx)); + } + + // 9. Build outputs and compute output indices + const numDestOutputs = orderInfos.length; + + // For deposit with positive yield, the yield pot output is inserted after destinations + let numExtraOutputs = 0; + if (actionType === "deposit") { + const totalYield = orderInfos.reduce( + (sum, o) => sum + (o.yield ?? 0n), + 0n, + ); + if (totalYield > 0n) { + const vaultValue = vaultUtxo!.output().amount(); + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const treasuryCirculating = parsedTreasuryDatum!.circulating_supply; + // Use the signed split (rc1 echoes alpha; v1_0 recomputes) so pot-output + // existence/indexing agrees with buildDepositExecute and the validator. + const { unstakedYieldShare } = this.resolveDepositYieldShares( + totalYield, + vaultUSDr, + treasuryCirculating, + signedPayload.action, + ); + if (unstakedYieldShare > 0n) { + numExtraOutputs = 1; + } + } + } + + // For unstake, add yield pot output if forfeit is non-zero. + if (actionType === "unstake") { + const totalForfeit = orderInfos.reduce( + (sum, o) => sum + (o.forfeit ?? 0n), + 0n, + ); + if (totalForfeit > 0n) { + numExtraOutputs = 1; + } + } + + const treasuryOutputIdx = needsTreasury + ? BigInt(numDestOutputs + numExtraOutputs) + : 0n; + const vaultOutputIdx = needsVault + ? BigInt(numDestOutputs + numExtraOutputs + (needsTreasury ? 1 : 0)) + : undefined; + + // 10. Build ExtraProtocolRedeemer + const extra: ExtraProtocolRedeemerV1 = { + request_to_outputs: requestToOutputs, + input_to_requests: inputToRequests, + treasury_input_idx: treasuryInputIdx, + treasury_output_idx: treasuryOutputIdx, + vault_input_idx: vaultInputIdx, + vault_output_idx: vaultOutputIdx, + }; + + // 11. Build SignedRedeemer (versions may wrap it in a dispatch enum) + const serializedSignedRedeemer = + this.serializeOrchestratorWithdrawalRedeemer({ + extra, + payload: signedPayload, + signatures, + }); + + const executeRedeemer = Data.serialize( + this.schemas.OrderRedeemerV1, + "Execute", + ); + + // 12. Build the transaction + const tx = this.newOrderTransaction(); + + // Add order inputs with Execute redeemer + for (const orderInfo of orderInfos) { + tx.addInput(orderInfo.utxo, executeRedeemer); + } + + // Add wallet fee inputs explicitly + for (const feeUtxo of feeUtxos) { + tx.addInput(feeUtxo); + } + + // Add reference inputs + tx.addReferenceInput(refInputs.protocol!); + tx.addReferenceInput(refInputs.order!); + tx.addReferenceInput(proxyUtxo); + // V1.0 sub-validator reference inputs + if (refInputs.protocolMint) { + tx.addReferenceInput(refInputs.protocolMint); + } + if (refInputs.protocolStake) { + tx.addReferenceInput(refInputs.protocolStake); + } + if (refInputs.protocolManagement) { + tx.addReferenceInput(refInputs.protocolManagement); + } + if (refInputs.treasury) { + tx.addReferenceInput(refInputs.treasury); + } + if (refInputs.stakingVault) { + tx.addReferenceInput(refInputs.stakingVault); + } + + // Add orchestrator withdrawal with signed redeemer + const orchestratorRewardAccount = Core.RewardAccount.fromCredential( + { + type: Core.CredentialType.ScriptHash, + hash: this.protocolScriptHash, + }, + this.network, + ); + tx.addWithdrawal(orchestratorRewardAccount, 0n, serializedSignedRedeemer); + + // Determine which sub-validator to use based on action type + const subValidatorHash = + actionType === "mint" || + actionType === "burn" || + actionType === "direct_mint" || + actionType === "direct_burn" + ? this.protocolMintScriptHash + : actionType === "stake" || actionType === "unstake" + ? this.protocolStakeScriptHash + : this.protocolManagementScriptHash; // deposit, withdraw + + // Add sub-validator withdrawal with void redeemer + const subValidatorRewardAccount = Core.RewardAccount.fromCredential( + { + type: Core.CredentialType.ScriptHash, + hash: subValidatorHash, + }, + this.network, + ); + const voidRedeemer = Data.Void(); + tx.addWithdrawal(subValidatorRewardAccount, 0n, voidRedeemer); + + // Build per-action-type outputs, minting, and state updates + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const sUSDrAssetId = Core.AssetId( + this.stablecoinPolicyId + this.sUSDrAssetNameHex, + ); + + switch (actionType) { + case "mint": + this.buildMintExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "burn": + this.buildBurnExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "withdraw": + this.buildWithdrawExecute( + tx, + orderInfos, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "deposit": + this.buildDepositExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + vaultUtxo!, + parsedVaultDatum!, + settings, + signedPayload.action, + ); + break; + case "stake": + this.buildStakeExecute( + tx, + orderInfos, + stablecoinAssetId, + sUSDrAssetId, + vaultUtxo!, + parsedVaultDatum!, + ); + break; + case "unstake": + this.buildUnstakeExecute( + tx, + orderInfos, + stablecoinAssetId, + sUSDrAssetId, + vaultUtxo!, + parsedVaultDatum!, + settings, + ); + break; + case "direct_mint": + this.buildDirectMintExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + ); + break; + case "direct_burn": + this.buildDirectBurnExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + ); + break; + } + + // Provide the mint proxy script for minting + tx.provideScript(this.mintProxyScript); + + await this.applyExecutionValidityBounds(tx, { + actionType, + vaultUtxo, + parsedVaultDatum, + }); + + return tx; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Per-Action Execute Builders + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint: reserve goes to treasury, USDr minted to destinations. + * + * The per-order fee (in USDr, locked at index time) is retained by the + * treasury: the user receives `amount − fee` USDr while `amount` is still + * minted, so the protocol pockets the difference via the treasury balance. + */ + protected buildMintExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: TV1SettingsConfig, + ): void { + // The audited mint contract enforces `mint_amount == total_delivered` + // and `circulating_supply` increases by `total_delivered` (cf. + // utilities.ak::maintain_treasury_mint). So we mint and credit the + // treasury for what users actually receive — `amount − fee` per order — + // while the reserve consumed per request stays based on the full + // signed `amount` (the user paid in reserve for the whole `amount`, + // even though they receive less; the protocol keeps the spread in + // reserve worth — this is the locked fee). + const totalDelivered = orderInfos.reduce( + (sum, o) => sum + (o.amount - o.fee), + 0n, + ); + + // Destination outputs: send `amount − fee` USDr to each destination. + for (const orderInfo of orderInfos) { + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const reserveAssetId = Core.AssetId( + orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1], + ); + const reserveAmount = usdrToReserveCeil(orderInfo.amount, ra); + const userAmount = orderInfo.amount - orderInfo.fee; + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + buildOrderDestinationValue( + orderInfo, + [[reserveAssetId, reserveAmount]], + [[stablecoinAssetId, userAmount]], + ), + ); + } + + // Mint USDr — exactly what was delivered (contract invariant). + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalDelivered]]), + Data.Void(), + ); + + // Reserve deltas: based on the full signed amounts (unchanged by fees). + const reserveDeltas = computeReserveDeltas(orderInfos, settings); + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalDelivered, + ); + } + + /** + * Burn: USDr burned, reserve sent to destinations. + * + * The audited contract decreases circulating_supply by the FULL signed + * `amount` (the user burns the whole `amount` of USDr) and the reserve + * outflow per asset equals what the user actually receives. The locked + * fee (in reserve units) stays in the treasury — by paying out + * `usdr_to_reserve(amount, ra) − fee` instead of the full natural + * amount, the protocol pockets the difference. + */ + protected buildBurnExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: TV1SettingsConfig, + ): void { + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Destination outputs: send `usdr_to_reserve(amount, ra) − fee` reserve + // to each destination. Track the actually-delivered amount per reserve + // asset so we can subtract the fee from the treasury reserve outflow. + const deliveredByAsset = new Map(); + for (const orderInfo of orderInfos) { + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const reserveAssetId = Core.AssetId( + orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1], + ); + const naturalReserve = usdrToReserve(-orderInfo.amount, ra); + const reserveAmount = naturalReserve - orderInfo.fee; + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + buildOrderDestinationValue( + orderInfo, + [[stablecoinAssetId, -orderInfo.amount]], + [[reserveAssetId, reserveAmount]], + ), + ); + const assetKey = orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1]; + deliveredByAsset.set( + assetKey, + (deliveredByAsset.get(assetKey) ?? 0n) + reserveAmount, + ); + } + + // Burn USDr — full signed amount per request (totalAmount is negative). + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Reserve deltas: out by what we actually delivered (negated). The + // protocol keeps the per-order fee inside the treasury balance. + const reserveDeltas = new Map(); + for (const [assetKey, delivered] of deliveredByAsset.entries()) { + reserveDeltas.set(assetKey, -delivered); + } + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalAmount, + ); + } + + /** + * Withdraw: reserve sent to destinations, no mint/burn. + */ + protected buildWithdrawExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: TV1SettingsConfig, + ): void { + // Destination outputs: send reserve tokens to each destination + for (const orderInfo of orderInfos) { + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const reserveAssetId = Core.AssetId( + orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1], + ); + const reserveAmount = usdrToReserve(orderInfo.amount, ra); + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + buildOrderDestinationValue( + orderInfo, + [], + [[reserveAssetId, reserveAmount]], + ), + ); + } + + // Update treasury: reserve decreases, no circulating_supply change + const reserveDeltas = computeReserveDeltas(orderInfos, settings, true); + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + 0n, + ); + } + + /** + * Deposit: reserve deposited, interest USDr minted and split between vault and yield pot. + */ + protected buildDepositExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: TVaultDatum, + settings: TV1SettingsConfig, + action: ProtocolRedeemerV1, + ): void { + const totalYield = orderInfos.reduce((sum, o) => sum + (o.yield ?? 0n), 0n); + + // Calculate yield split. rc1 echoes the COSE-signed alpha; v1_0 recomputes + // from live state. Must NOT re-derive independently from vault/treasury — + // the validator checks the split against the signed action. + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const treasuryCirculating = parsedTreasuryDatum.circulating_supply; + + const { stakedYieldShare, unstakedYieldShare } = + this.resolveDepositYieldShares( + totalYield, + vaultUSDr, + treasuryCirculating, + action, + ); + + let remainingOrderUSDrToBurn = + unstakedYieldShare < 0n ? -unstakedYieldShare : 0n; + + // Destination outputs: return any order surplus after protocol consumption. + for (const orderInfo of orderInfos) { + const reserveAssetId = Core.AssetId( + orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1], + ); + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const yieldValue = orderInfo.yield ?? 0n; + const usdrBacking = + yieldValue >= 0n ? orderInfo.amount + yieldValue : orderInfo.amount; + const reserveAmount = usdrToReserve(usdrBacking, ra); + const consumedAssets: Array<[Core.AssetId, bigint]> = [ + [reserveAssetId, reserveAmount], + ]; + + if (remainingOrderUSDrToBurn > 0n) { + const orderUSDr = + orderInfo.utxo + .output() + .amount() + .multiasset() + ?.get(stablecoinAssetId) ?? 0n; + const consumedUSDr = + orderUSDr < remainingOrderUSDrToBurn + ? orderUSDr + : remainingOrderUSDrToBurn; + if (consumedUSDr > 0n) { + consumedAssets.push([stablecoinAssetId, consumedUSDr]); + remainingOrderUSDrToBurn -= consumedUSDr; + } + } + + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + buildOrderDestinationValue(orderInfo, consumedAssets), + ); + } + + if (totalYield > 0n) { + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalYield]]), + Data.Void(), + ); + + if (unstakedYieldShare > 0n) { + // The yield pot is a script address in production (WTB-1172), so + // build the output directly with NoDatum. + addDestinationOutput( + tx, + this.network, + { address: settings.unstaked_yield_pot, datum: "NoDatum" }, + makeValue(MIN_LOVELACE, [stablecoinAssetId, unstakedYieldShare]), + ); + } + } else if (totalYield < 0n) { + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalYield]]), + Data.Void(), + ); + } + + // Update treasury + const reserveDeltas = new Map(); + for (const orderInfo of orderInfos) { + const assetId = orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1]; + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const yieldValue = orderInfo.yield ?? 0n; + + const usdrBacking = + yieldValue >= 0n ? orderInfo.amount + yieldValue : orderInfo.amount; + + const reserveAmount = usdrToReserve(usdrBacking, ra); + reserveDeltas.set( + assetId, + (reserveDeltas.get(assetId) ?? 0n) + reserveAmount, + ); + } + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalYield, + ); + + // Update vault. Datum construction is delegated so versions with a + // yield-diffusion window (v1_1_rc1) can set it from the batch's requests; + // the v1_0 default just moves the vault USDr by the staked share. + this.updateDepositVaultOutput(tx, vaultUtxo, parsedVaultDatum, { + stakedYieldShare, + totalYield, + orderInfos, + }); + } + + /** + * Version hook: lock the post-deposit vault output. v1_0 / v1_0_rc1 keep the + * one-field datum and simply add `stakedYieldShare` USDr to the vault. + * Versions with time-diffused yield override this to roll the staked share + * into the diffusion window (`validate_deposit_diffusion` in deposit.ak). + */ + protected updateDepositVaultOutput( + tx: TxBuilder, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: TVaultDatum, + ctx: { + stakedYieldShare: bigint; + totalYield: bigint; + orderInfos: IOrderInfo[]; + }, + ): void { + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + 0n, + ctx.stakedYieldShare, + ); + } + + /** + * Stake: USDr locked in vault, sUSDr minted to destinations. + * + * Stake is not fee-filtered (no protocol fee retained on stake), so the + * vault receives the full `amount` USDr and mints sUSDr at the natural + * rate. + */ + protected buildStakeExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + sUSDrAssetId: Core.AssetId, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: TVaultDatum, + ): void { + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + // Rate is quoted against settled backing (v1_0: full balance; v1_1_rc1: + // balance minus not-yet-diffused pending yield). + const settledBacking = this.settledVaultBacking( + parsedVaultDatum, + vaultUSDr, + ); + const circulatingSUSDr = parsedVaultDatum.circulating_susdr; + + let totalUSDrToVault = 0n; + let totalSUSDrMinted = 0n; + + for (const orderInfo of orderInfos) { + const usDrToVault = orderInfo.amount; + totalUSDrToVault += usDrToVault; + + let sUSDrAmount: bigint; + if (circulatingSUSDr === 0n || settledBacking === 0n) { + // Bootstrap rate is 1:1 (cf. stake.ak). + sUSDrAmount = usDrToVault; + } else { + sUSDrAmount = (usDrToVault * circulatingSUSDr) / settledBacking; + } + totalSUSDrMinted += sUSDrAmount; + + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + buildOrderDestinationValue( + orderInfo, + [[stablecoinAssetId, usDrToVault]], + [[sUSDrAssetId, sUSDrAmount]], + ), + ); + } + + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.sUSDrAssetNameHex), totalSUSDrMinted]]), + Data.Void(), + ); + + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + totalSUSDrMinted, + totalUSDrToVault, + ); + } + + /** + * Unstake: sUSDr burned, USDr sent to user's destination address. + * V1_0: Supports forfeit parameter - forfeited USDr goes to yield pot. + */ + protected buildUnstakeExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + sUSDrAssetId: Core.AssetId, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: TVaultDatum, + settings: TV1SettingsConfig, + ): void { + const totalSUSDrBurned = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + // Entitlement is quoted against settled backing (v1_0: full balance; + // v1_1_rc1: balance minus not-yet-diffused pending yield). + const settledBacking = this.settledVaultBacking( + parsedVaultDatum, + vaultUSDr, + ); + const circulatingSUSDr = parsedVaultDatum.circulating_susdr; + + if (circulatingSUSDr === 0n) { + throw new Error("Cannot unstake: no sUSDr in circulation"); + } + + // The user receives `entitled − forfeit` USDr. Forfeit goes to the + // unstaked yield pot; the vault decreases by the full natural entitlement + // for each order. (Unstake is not fee-filtered.) + let totalUSDrLeavingVault = 0n; + let totalForfeit = 0n; + + for (const orderInfo of orderInfos) { + const uSDrEntitled = + (orderInfo.amount * settledBacking) / circulatingSUSDr; + const forfeit = orderInfo.forfeit ?? 0n; + const uSDrAmount = uSDrEntitled - forfeit; + + totalUSDrLeavingVault += uSDrEntitled; + totalForfeit += forfeit; + + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + buildOrderDestinationValue( + orderInfo, + [[sUSDrAssetId, orderInfo.amount]], + [[stablecoinAssetId, uSDrAmount]], + ), + ); + } + + // Send forfeited USDr to yield pot if any + const totalYieldPot = totalForfeit; + if (totalYieldPot > 0n) { + // Script pot in production (WTB-1172) — see buildDepositExecute. + addDestinationOutput( + tx, + this.network, + { address: settings.unstaked_yield_pot, datum: "NoDatum" }, + makeValue(MIN_LOVELACE, [stablecoinAssetId, totalYieldPot]), + ); + } + + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.sUSDrAssetNameHex), -totalSUSDrBurned]]), + Data.Void(), + ); + + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + -totalSUSDrBurned, + -totalUSDrLeavingVault, + ); + } + + /** + * DirectMint: Mint USDr without reserve asset flow. + * USDr is minted to destinations, treasury circulating_supply increases. + * NO reserve asset changes. + */ + protected buildDirectMintExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + ): void { + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Destination outputs: send USDr to each destination + for (const orderInfo of orderInfos) { + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + buildOrderDestinationValue( + orderInfo, + [], + [[stablecoinAssetId, orderInfo.amount]], + ), + ); + } + + // Mint USDr + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Update treasury: circulating_supply increases, NO reserve changes + this.updateTreasuryOutputNoReserve( + tx, + treasuryUtxo, + parsedTreasuryDatum, + totalAmount, + ); + } + + /** + * DirectBurn: Burn USDr without reserve asset flow. + * USDr is burned, treasury circulating_supply decreases. + * NO reserve asset changes, NO destination outputs (fiat sent off-chain). + */ + protected buildDirectBurnExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + ): void { + // totalAmount is negative for burns (from classifyOrderAction) + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Fiat is sent off-chain. On-chain, return the order value minus the + // burned USDr to the destination. + for (const orderInfo of orderInfos) { + addDestinationOutput( + tx, + this.network, + orderInfo.datum.destination, + buildOrderDestinationValue(orderInfo, [ + [stablecoinAssetId, -orderInfo.amount], + ]), + ); + } + + // Burn USDr (totalAmount is negative) + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Update treasury: circulating_supply decreases, NO reserve changes + this.updateTreasuryOutputNoReserve( + tx, + treasuryUtxo, + parsedTreasuryDatum, + totalAmount, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Cancel Orders + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a transaction to cancel orders. + */ + async buildCancelOrdersTx(params: { + orderInputs: Core.TransactionInput[]; + destination?: Core.Address; + availableSigners?: Set; + versionHint?: TProtocolVersion; // version of the orders to cancel. Optional, only to ensure correct datum parsing. + }): Promise { + const { orderInputs, destination, availableSigners, versionHint } = params; + + const orderUtxos = + await this.blaze.provider.resolveUnspentOutputs(orderInputs); + + if (orderUtxos.length === 0) { + throw new Error("No orders to cancel"); + } + + const cachedOrderRefs = this.cachedReferenceInputs.orderRefInput + ? new Map([ + [this.orderScriptHash, this.cachedReferenceInputs.orderRefInput], + ]) + : undefined; + + const orderRefInputs = await resolveOrderReferenceInputs( + this.blaze, + orderUtxos, + cachedOrderRefs, + this.scriptDeploymentAddress, + ); + + const cancelRedeemer = Data.serialize( + this.schemas.OrderRedeemerV1, + "Cancel", + ); + const destAddress = + destination ?? (await this.blaze.wallet.getChangeAddress()); + + const tx = this.newOrderTransaction(); + + for (const orderRefInput of orderRefInputs.values()) { + tx.addReferenceInput(orderRefInput); + } + + // cache current version of order script reference input + const currentOrderRefInput = orderRefInputs.get(this.orderScriptHash); + if (currentOrderRefInput && !this.cachedReferenceInputs.orderRefInput) { + this.cachedReferenceInputs.orderRefInput = currentOrderRefInput; + } + + const requiredSigners = new Set(); + + for (const utxo of orderUtxos) { + const owner = await parseCancelOwner(utxo, versionHint); + for (const keyHash of getSignatureKeyHashesFromMultisigScript(owner)) { + requiredSigners.add(keyHash); + } + + tx.addInput(utxo, cancelRedeemer); + const outputValue = utxo.output().amount(); + addDirectOutput(tx, destAddress, outputValue); + } + + const effectiveSigners = availableSigners + ? new Set([...requiredSigners].filter((k) => availableSigners.has(k))) + : requiredSigners; + + for (const keyHash of effectiveSigners) { + tx.addRequiredSigner(Ed25519KeyHashHex(keyHash)); + } + + return tx; + } + + /** + * Build a transaction to recover funds from invalidated orders. + * Only works when the protocol has been upgraded and the order validator + * no longer matches the current protocol logic. + * + * IMPORTANT: Only works for orders with simple Signature owners. + * + * Output-at-same-index constraint: Each output must be at the same + * transaction index as its corresponding input. + */ + async buildInvalidatedOrdersTx(params: { + orderInputs: Core.TransactionInput[]; + }): Promise { + const { orderInputs } = params; + + const orderUtxos = + await this.blaze.provider.resolveUnspentOutputs(orderInputs); + + if (orderUtxos.length === 0) { + throw new Error("No orders to invalidate"); + } + + // Resolve references from the validators that actually hold the supplied + // orders. A current SDK instance may be recovering same-schema orders left + // at a superseded validator, so its own orderScriptHash is not necessarily + // the script needed to spend these inputs. + const cachedOrderRefs = this.cachedReferenceInputs.orderRefInput + ? new Map([ + [this.orderScriptHash, this.cachedReferenceInputs.orderRefInput], + ]) + : undefined; + const orderRefInputs = await resolveOrderReferenceInputs( + this.blaze, + orderUtxos, + cachedOrderRefs, + this.scriptDeploymentAddress, + ); + + // The proxy UTxO is always required as a reference input. If the live + // proxy datum no longer matches this SDK's schema, skip the client-side + // upgrade check and rely on the validator's on-chain check instead. + const { proxyUtxo, proxyDatum } = await this.getRawProxyDatum(); + try { + const parsedProxyDatum = parse(this.schemas.ProxyDatumV1, proxyDatum); + const registry = this.settingsRegistry(parsedProxyDatum.settings); + const isProtocolUpgraded = + parsedProxyDatum.logic !== this.protocolScriptHash; + const hasActiveOrder = [...orderRefInputs.keys()].some( + (orderScriptHash) => orderScriptHash === registry.order, + ); + + if (hasActiveOrder && !isProtocolUpgraded) { + throw new Error( + "Cannot use Invalidated redeemer: protocol has not been upgraded", + ); + } + } catch (err) { + if ( + err instanceof Error && + err.message === + "Cannot use Invalidated redeemer: protocol has not been upgraded" + ) { + throw err; + } + } + + const invalidatedRedeemer = Data.serialize( + this.schemas.OrderRedeemerV1, + "Invalidated", + ); + + // The order validator's Invalidated branch enforces + // `outputs[index_of(self_input)] == owner_address`. The input index + // is computed against the *full* canonical input sort, including any + // wallet fee inputs. To make the alignment deterministic, pre-select + // a single wallet UTxO to act as the fee input, build the canonical + // sort across [orders + fee UTxO] up front, and lay outputs at + // matching positions: owner payouts at order indices, a wallet + // filler at the fee UTxO's index. Modeled on buildExecuteOrdersTx. + const walletUtxos = await this.blaze.wallet.getUnspentOutputs(); + const walletAddress = await this.blaze.wallet.getChangeAddress(); + const utxoKey = (inp: Core.TransactionInput) => + `${inp.transactionId().toString()}#${inp.index().toString()}`; + const excludedInputIds = new Set([ + utxoKey(proxyUtxo.input()), + ...[...orderRefInputs.values()].map((refInput) => + utxoKey(refInput.input()), + ), + ...orderUtxos.map((u) => utxoKey(u.input())), + ]); + // 5 ADA buffer comfortably covers tx fees for any realistic invalidate + // batch (1-20 inputs) plus min-UTxO for the change output Blaze appends. + // Prefer an ADA-only input, but safely support a token-bearing one when + // its explicit filler output still satisfies the ledger's min-ADA rule. + const FEE_BUFFER = 5_000_000n; + const feeCandidates = walletUtxos + .filter((u) => !excludedInputIds.has(utxoKey(u.input()))) + .sort((a, b) => { + const aHasAssets = (a.output().amount().multiasset()?.size ?? 0) > 0; + const bHasAssets = (b.output().amount().multiasset()?.size ?? 0) > 0; + return Number(aHasAssets) - Number(bHasAssets); + }); + const feeUtxo = feeCandidates.find((u) => { + const inputValue = u.output().amount(); + if (inputValue.coin() < FEE_BUFFER) return false; + + const fillerValue = new Core.Value( + inputValue.coin() - FEE_BUFFER, + inputValue.multiasset(), + ); + const fillerOutput = new Core.TransactionOutput( + walletAddress, + fillerValue, + ); + return ( + fillerValue.coin() >= + calculateMinAda(fillerOutput, this.blaze.params.coinsPerUtxoByte) + ); + }); + if (!feeUtxo) { + throw new Error( + "buildInvalidatedOrdersTx: no wallet UTxO can cover fees while retaining its minimum ADA", + ); + } + + type TSortedItem = + | { + kind: "order"; + utxo: Core.TransactionUnspentOutput; + ownerKeyHash: string; + } + | { kind: "fee"; utxo: Core.TransactionUnspentOutput }; + + const items: TSortedItem[] = orderUtxos.map((utxo) => { + const datumData = utxo.output().datum()?.asInlineData(); + if (!datumData) { + throw new Error("Order UTXO has no inline datum"); + } + const datum = parse(this.schemas.OrderDatumV1, datumData) as OrderDatumV1; + if (!("Signature" in datum.owner)) { + throw new Error( + "Invalidated redeemer only supports simple Signature owners", + ); + } + return { + kind: "order" as const, + utxo, + ownerKeyHash: datum.owner.Signature.key_hash, + }; + }); + items.push({ kind: "fee" as const, utxo: feeUtxo }); + items.sort((a, b) => { + const txA = a.utxo.input().transactionId().toString(); + const txB = b.utxo.input().transactionId().toString(); + if (txA < txB) return -1; + if (txA > txB) return 1; + return Number(a.utxo.input().index()) - Number(b.utxo.input().index()); + }); + + const tx = this.newOrderTransaction(); + for (const orderRefInput of orderRefInputs.values()) { + tx.addReferenceInput(orderRefInput); + } + tx.addReferenceInput(proxyUtxo); + + for (const item of items) { + if (item.kind === "order") { + const ownerCredential = Core.Credential.fromCore({ + type: Core.CredentialType.KeyHash, + hash: Core.Hash28ByteBase16(item.ownerKeyHash), + }); + const ownerAddress = addressFromCredentials( + this.network, + ownerCredential, + ); + tx.addInput(item.utxo, invalidatedRedeemer); + // Owner gets back the order's full value at the matching output + // index. Per-input check `output_ada >= input_ada - tx.fee` holds + // trivially because output == input here; the tx fee is absorbed + // by the filler+change pair coming out of the wallet fee input. + addDirectOutput(tx, ownerAddress, item.utxo.output().amount()); + } else { + tx.addInput(item.utxo); + // Wallet filler at the fee UTxO's canonical index. Sends value + // back to the wallet minus FEE_BUFFER, which Blaze then splits + // into the tx fee and an automatic change output (appended after + // all explicit outputs, beyond any script-input index — so no + // validator ever reads it). + const inputValue = item.utxo.output().amount(); + const fillerValue = new Core.Value( + inputValue.coin() - FEE_BUFFER, + inputValue.multiasset(), + ); + addDirectOutput(tx, walletAddress, fillerValue); + } + } + + return tx; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Protected Helpers + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Parse order UTxOs into IOrderInfo objects and validate they are all the + * same type. The optional `fees` map (keyed by `${txHash}#${outputIndex}`) + * stamps each order with its locked fee in the action's output unit. + * Missing entries default to 0 (no fee retained). + */ + protected parseOrderInfos( + orderUtxos: Core.TransactionUnspentOutput[], + fees?: Map, + ): IOrderInfo[] { + const orderInfos: IOrderInfo[] = []; + let expectedActionType: TOrderActionType | null = null; + + for (const utxo of orderUtxos) { + const datumData = utxo.output().datum()?.asInlineData(); + if (!datumData) { + throw new Error("Order UTXO has no inline datum"); + } + const datum = parse(this.schemas.OrderDatumV1, datumData) as OrderDatumV1; + const classified = this.classifyOrderAction(datum); + + if (expectedActionType === null) { + expectedActionType = classified.actionType; + } else if (expectedActionType !== classified.actionType) { + throw new Error( + "Mixed order types in inputs. All orders must be of the same type.", + ); + } + + const input = utxo.input(); + const key = `${input.transactionId().toString()}#${input.index().toString()}`; + const fee = fees?.get(key) ?? 0n; + + orderInfos.push({ + utxo, + datum, + actionType: classified.actionType, + amount: classified.amount, + yield: classified.yield, + forfeit: classified.forfeit, + minReceived: classified.minReceived, + reserveAsset: classified.reserveAsset, + fee, + }); + } + + if (orderInfos.length === 0) { + throw new Error("No orders to execute"); + } + + return orderInfos; + } + + /** + * Full executability screen for one open order (WTB-1764): the datum + * predicates plus the two value-dependent aborts (input funding, unsatisfiable + * `min_received`). Every consumer that decides whether an order may join a + * batch should call this rather than `screenOrderAction` alone — the datum-only + * screen cannot see an underfunded UTxO, which is the cheapest batch-killer. + * + * Reads settings for the reserve multiplier on mint/burn. `getParsedProxyDatum` + * memoises, so the per-order cost after the first call is local arithmetic — + * safe for the approvals cron's whole-address sweep. + */ + async screenOrderForExecution( + utxo: Core.TransactionUnspentOutput, + action: IClassifiedOrderAction, + ): Promise { + const datumVerdict = screenOrderAction(action); + if (!datumVerdict.ok) { + return datumVerdict; + } + const settings = await this.getValidatedScreeningSettings(); + return screenOrderUtxoFacts( + action, + await this.deriveOrderUtxoFacts(utxo, action, settings), + ); + } + + /** + * Derive the value-dependent facts {@link screenOrderUtxoFacts} needs. Mirrors + * the per-action consumed asset and ceiling the validators use; see that + * function's doc comment for the `.ak` line references. + */ + protected async deriveOrderUtxoFacts( + utxo: Core.TransactionUnspentOutput, + action: IClassifiedOrderAction, + settings: TV1SettingsConfig, + ): Promise { + const multiasset = utxo.output().amount().multiasset(); + const quantityOf = (assetId: Core.AssetId): bigint => + multiasset?.get(assetId) ?? 0n; + // These are deployment settings, not datum fields. Let invalid trusted + // configuration and provider failures propagate to the caller instead of + // hiding an operational outage as a poisoned order. + const usdrAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + + // Only deterministic datum-derived errors are a rejection: an unknown + // reserve asset or an invalid asset id carried by the order datum. + try { + return this.deriveOrderUtxoFactsUnsafe( + action, + settings, + quantityOf, + usdrAssetId, + ); + } catch (error) { + return { + consumedRequired: 0n, + consumedLocked: 0n, + unresolvable: error instanceof Error ? error.message : String(error), + }; + } + } + + private deriveOrderUtxoFactsUnsafe( + action: IClassifiedOrderAction, + settings: TV1SettingsConfig, + quantityOf: (assetId: Core.AssetId) => bigint, + usdrAssetId: Core.AssetId, + ): IOrderUtxoFacts { + switch (action.actionType) { + case "stake": + return { + consumedRequired: action.amount, + consumedLocked: quantityOf(usdrAssetId), + }; + case "unstake": + return { + consumedRequired: action.amount, + consumedLocked: quantityOf( + Core.AssetId(this.stablecoinPolicyId + this.sUSDrAssetNameHex), + ), + }; + case "mint": { + if (!action.reserveAsset) { + return { consumedRequired: 0n, consumedLocked: 0n }; + } + const ra = findReserveAsset(settings, action.reserveAsset); + return { + consumedRequired: usdrToReserveCeil(action.amount, ra), + consumedLocked: quantityOf( + Core.AssetId(action.reserveAsset[0] + action.reserveAsset[1]), + ), + // mint.ak:140 passes request.amount as max_delivered. + maxDelivered: action.amount, + }; + } + case "burn": { + // classifyOrderAction negates ORedeem.amount; the validator compares the + // raw datum amount against the locked USDr. + const rawAmount = -action.amount; + if (!action.reserveAsset) { + return { + consumedRequired: rawAmount, + consumedLocked: quantityOf(usdrAssetId), + }; + } + const ra = findReserveAsset(settings, action.reserveAsset); + return { + consumedRequired: rawAmount, + consumedLocked: quantityOf(usdrAssetId), + // burn.ak:136 passes usdr_to_reserve(|amount|, ra) as max_delivered. + maxDelivered: usdrToReserve(rawAmount, ra), + }; + } + case "direct_burn": + // direct_burn DOES have a per-order funding predicate + // (`v1_0/direct_burn.ak:50`), unlike direct_mint. Same sign flip as burn. + // Unreachable from the approvals cron, which routes direct actions + // out-of-scope, but getSignedPayloadFromOrderInputs builds direct-burn + // batches for the treasury-admin flow. + return { + consumedRequired: -action.amount, + consumedLocked: quantityOf(usdrAssetId), + }; + case "deposit": { + if (!action.reserveAsset) { + return { consumedRequired: 0n, consumedLocked: 0n }; + } + const ra = findReserveAsset(settings, action.reserveAsset); + const usdrBacking = + (action.yield ?? 0n) >= 0n + ? action.amount + (action.yield ?? 0n) + : action.amount; + return { + consumedRequired: usdrToReserve(usdrBacking, ra), + consumedLocked: quantityOf( + Core.AssetId(action.reserveAsset[0] + action.reserveAsset[1]), + ), + }; + } + case "withdraw": + if (action.reserveAsset) { + // Withdrawal consumes treasury funds, but the order's asset must be + // registered or buildWithdrawExecute will fail after signing. + findReserveAsset(settings, action.reserveAsset); + } + return { consumedRequired: 0n, consumedLocked: 0n }; + default: + // direct_mint has no per-order funding predicate. + return { consumedRequired: 0n, consumedLocked: 0n }; + } + } + + private async getValidatedScreeningSettings(): Promise { + const settings = this.settingsConfig(await this.getVersionSettings()); + for (const reserveAsset of settings.reserve_assets) { + if (reserveAsset.numerator === 0n) { + throw new Error("Reserve asset numerator must be non-zero"); + } + if (reserveAsset.denominator === 0n) { + throw new Error("Reserve asset denominator must be non-zero"); + } + Core.AssetId(reserveAsset.asset[0] + reserveAsset.asset[1]); + } + return settings; + } + + /** + * Classify an order action from its datum. + */ + protected classifyOrderAction(datum: OrderDatumV1): IClassifiedOrderAction { + const action = datum.action; + if ("OMint" in action) { + return { + actionType: "mint", + amount: action.OMint.amount, + minReceived: action.OMint.min_received, + reserveAsset: action.OMint.reserve_asset, + isTreasuryAction: true, + }; + } else if ("ORedeem" in action) { + return { + actionType: "burn", + amount: -action.ORedeem.amount, + minReceived: action.ORedeem.min_received, + reserveAsset: action.ORedeem.reserve_asset, + isTreasuryAction: true, + }; + } else if ("ODeposit" in action) { + return { + actionType: "deposit", + amount: action.ODeposit.principal, + yield: action.ODeposit.yield, + reserveAsset: action.ODeposit.reserve_asset, + isTreasuryAction: true, + }; + } else if ("OWithdraw" in action) { + return { + actionType: "withdraw", + amount: action.OWithdraw.amount, + reserveAsset: action.OWithdraw.reserve_asset, + isTreasuryAction: true, + }; + } else if ("OStake" in action) { + return { + actionType: "stake", + amount: action.OStake.amount, + minReceived: action.OStake.min_received, + isTreasuryAction: false, + }; + } else if ("OUnstake" in action) { + return { + actionType: "unstake", + amount: action.OUnstake.amount, + forfeit: action.OUnstake.forfeit, + minReceived: action.OUnstake.min_received, + isTreasuryAction: false, + }; + } else if ("ODirectMint" in action) { + return { + actionType: "direct_mint", + amount: action.ODirectMint.amount, + isTreasuryAction: true, + }; + } else if ("ODirectBurn" in action) { + return { + actionType: "direct_burn", + amount: -action.ODirectBurn.amount, + isTreasuryAction: true, + }; + } + throw new Error("Unknown order action type"); + } + + /** + * Build the signed-payload treasury request for a deposit/withdraw order. + * + * v1_0 / v1_0_rc1 emit the four-field request. Versions whose on-chain + * `TreasuryRequestV1` carries extra fields (v1_1_rc1's `diffusion_end`, which + * the validator requires the signed request to echo from the order datum) + * override this to add them; the return stays assignable to the v1_0 shape, + * and the extra fields are encoded by the version's own payload schema value. + */ + protected buildTreasuryRequest( + datum: OrderDatumV1, + parsed: IClassifiedOrderAction, + origin: IRequestOrigin, + ): TreasuryRequestV1 { + return { + destination: datum.destination, + amount: parsed.amount, + yield: parsed.yield ?? 0n, + origin, + reserve_asset: parsed.reserveAsset!, + }; + } + + /** + * Update treasury output with new reserve and circulating supply. + */ + protected updateTreasuryOutput( + tx: TxBuilder, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + reserveDeltas: Map, + circulatingSupplyDelta: bigint, + ): void { + const newTreasuryDatum: V0_1TreasuryDatum = { + circulating_supply: + parsedTreasuryDatum.circulating_supply + circulatingSupplyDelta, + }; + const serializedTreasuryDatum = Data.serialize( + V0_1TreasuryDatum, + newTreasuryDatum, + ); + + tx.addInput(treasuryUtxo, Data.Void()); + + const treasuryValue = treasuryUtxo.output().amount(); + + let newTreasuryValue = makeValue(treasuryValue.coin(), [ + this.treasuryNFTAssetId, + 1n, + ]); + + const modifiedAssetIds = new Set([ + this.treasuryNFTAssetId.toString(), + ]); + for (const [reserveAssetId, delta] of reserveDeltas.entries()) { + const currentReserve = + treasuryValue.multiasset()?.get(Core.AssetId(reserveAssetId)) ?? 0n; + const newReserve = currentReserve + delta; + newTreasuryValue = Value.merge( + newTreasuryValue, + makeValue(0n, [Core.AssetId(reserveAssetId), newReserve]), + ); + modifiedAssetIds.add(reserveAssetId); + } + + const existingMultiasset = treasuryValue.multiasset(); + if (existingMultiasset) { + for (const [assetId, amount] of existingMultiasset.entries()) { + if (!modifiedAssetIds.has(assetId)) { + newTreasuryValue = Value.merge( + newTreasuryValue, + makeValue(0n, [Core.AssetId(assetId), amount]), + ); + } + } + } + tx.lockAssets( + this.treasuryAddress, + newTreasuryValue, + serializedTreasuryDatum, + ); + } + + /** + * Update treasury output without reserve changes (for DirectMint/DirectBurn). + */ + protected updateTreasuryOutputNoReserve( + tx: TxBuilder, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + circulatingSupplyDelta: bigint, + ): void { + const newTreasuryDatum: V0_1TreasuryDatum = { + circulating_supply: + parsedTreasuryDatum.circulating_supply + circulatingSupplyDelta, + }; + const serializedTreasuryDatum = Data.serialize( + V0_1TreasuryDatum, + newTreasuryDatum, + ); + + tx.addInput(treasuryUtxo, Data.Void()); + + // Preserve exact treasury value (no reserve changes) + const treasuryValue = treasuryUtxo.output().amount(); + tx.lockAssets(this.treasuryAddress, treasuryValue, serializedTreasuryDatum); + } + + /** + * Update vault output with new circulating_susdr and USDr balance. + * + * The datum construction is delegated to the version's + * `buildUpdatedVaultDatum` seam; the value rebuild below is + * datum-shape-agnostic and shared by all versions. + */ + protected updateVaultOutput( + tx: TxBuilder, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: TVaultDatum, + sUSDrDelta: bigint, + uSDrDelta: bigint = 0n, + ): void { + this.updateVaultOutputWithDatum( + tx, + vaultUtxo, + this.buildUpdatedVaultDatum(parsedVaultDatum, sUSDrDelta), + uSDrDelta, + ); + } + + /** + * Lock the vault output with an already-constructed datum, rebuilding its + * USDr balance by `uSDrDelta`. The value rebuild is datum-shape-agnostic; + * versions whose datum update needs more than `sUSDrDelta` (v1_1_rc1's + * deposit diffusion window) build the datum themselves and call this. + */ + protected updateVaultOutputWithDatum( + tx: TxBuilder, + vaultUtxo: Core.TransactionUnspentOutput, + newVaultDatum: TVaultDatum, + uSDrDelta: bigint = 0n, + ): void { + const serializedVaultDatum = Data.serialize( + this.schemas.VaultDatumV1, + newVaultDatum, + ); + + tx.addInput(vaultUtxo, Data.Void()); + + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + + let newVaultValue = vaultUtxo.output().amount(); + if (uSDrDelta !== 0n) { + const currentUSDr = + newVaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const newUSDr = currentUSDr + uSDrDelta; + newVaultValue = makeValue(newVaultValue.coin(), [ + this.stakingVaultNFTAssetId, + 1n, + ]); + if (newUSDr > 0n) { + newVaultValue = Value.merge( + newVaultValue, + makeValue(0n, [stablecoinAssetId, newUSDr]), + ); + } + const existingMultiasset = vaultUtxo.output().amount().multiasset(); + if (existingMultiasset) { + for (const [assetId, amount] of existingMultiasset.entries()) { + if ( + assetId !== this.stakingVaultNFTAssetId.toString() && + assetId !== stablecoinAssetId.toString() + ) { + newVaultValue = Value.merge( + newVaultValue, + makeValue(0n, [Core.AssetId(assetId), amount]), + ); + } + } + } + } + + tx.lockAssets( + this.stakingVaultAddress, + newVaultValue, + serializedVaultDatum, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Reserve Asset Conversion Utilities + // ───────────────────────────────────────────────────────────────────────────── + + protected async getVersionSettings(): Promise { + const { parsedProxyDatum } = await this.getParsedProxyDatum(); + return parsedProxyDatum.settings; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/v1/order-sanity.ts b/modules/realfi-partner-sdk/src/sdk/v1/order-sanity.ts new file mode 100644 index 0000000000..2789a02744 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v1/order-sanity.ts @@ -0,0 +1,313 @@ +/** + * Static, off-chain mirror of the per-request predicates the v1-family + * protocol validators apply to each request in an execution batch. + * + * Why this exists (WTB-1764): `process_exchange_requests`, + * `process_stake_requests` and `process_treasury_requests` + * (`contracts/lib/v1_0/utilities.ak`) validate every request in the batch + * inside one `zip_fold` via `expect validation(request)`. There is no + * per-request graceful exclusion — the first request that fails its predicate + * crashes the WHOLE execution transaction, taking down every valid order + * bundled alongside it. Order creation is permissionless and has no on-chain + * gate (sending funds + an inline datum to the order script address is a plain + * payment; no validator runs on receipt), so a single order carrying, say, + * `min_received = 0` is a cheap, repeatable denial-of-service against the whole + * execution pipeline. + * + * Every request that reaches a batch must therefore be screened off-chain + * first. This module is the one place that mirrors the on-chain predicates, so + * a validator change has a single off-chain counterpart to update. + * + * Two screens live here, because the validators abort the whole transaction from + * two kinds of check and only one of them is answerable from the datum alone: + * + * 1. {@link screenOrderAction} — the `process_*_requests` per-request predicates. + * Pure, datum-only. + * 2. {@link screenOrderUtxoFacts} — the checks that also need the order UTxO's + * value and (for mint/burn) the reserve multiplier: input funding and the + * statically-knowable deliverability ceiling. Callers derive the facts, since + * that is where the asset ids and settings live; `RealfiSDKV1Family` + * .screenOrderForExecution does both in one call. + * + * Still deliberately NOT covered, because it is not decidable from the order in + * isolation: predicates that move with live protocol state — unstake's + * `forfeit <= request_usdr`, and the stake/unstake deliverability ceilings, + * which follow the vault exchange rate between screening and execution. + * + * A caller with a narrower policy (the approvals cron accepts just the + * zero-principal, positive-yield deposit shape) also keeps that policy to + * itself; folding it in here would reject orders other first-party flows + * legitimately create and execute. + * + * | action | on-chain predicate | source | + * | -------- | ------------------------------------------------------- | ----------------------------- | + * | mint | `amount > 0 && min_received > 0` | `v1_0/mint.ak:86` | + * | burn | `amount < 0 && min_received > 0` | `v1_0/burn.ak:90` | + * | stake | `amount > 0 && min_received > 0 && forfeit == 0` | `v1_0/stake.ak:45-47` | + * | unstake | `amount > 0 && min_received > 0` (+ `forfeit >= 0`) | `v1_0/unstake.ak:77,101` | + * | deposit | `amount >= 0` | `v1_0/deposit.ak:67` | + * | withdraw | `amount > 0 && yield == 0` | `v1_0/withdraw.ak:73` | + * + * v1_1_rc1 carries the identical predicates. v1_0_rc1 does NOT — its datum has + * no `min_received` field at all and its predicates are amount-only + * (`v1_0_rc1/stake.ak:64`, `unstake.ak:64`), which is why an absent floor is + * treated as "no floor to check" below rather than as zero. + */ + +/** Machine-stable reason token for a rejected request. */ +export type TOrderRejectCode = + | "amount_not_positive" + | "min_received_not_positive" + | "forfeit_negative" + | "deposit_principal_negative" + | "deposit_batch_empty" + | "withdraw_yield_not_zero" + | "input_underfunded" + | "min_received_above_max_delivered" + | "order_facts_unresolvable"; + +/** + * The subset of `IClassifiedOrderAction` the screen reads. Structural, so a + * full classified action is assignable without this module depending on the + * SDK family module (and without a test needing to construct one). + * + * Sign convention follows `classifyOrderAction`, which matches the on-chain + * request shape: `amount` is already negated for burn. + */ +export interface IOrderActionSanityInput { + actionType: string; + amount: bigint; + minReceived?: bigint; + forfeit?: bigint; + yield?: bigint; +} + +export type TOrderSanityResult = + | { ok: true } + | { ok: false; code: TOrderRejectCode; reason: string }; + +const OK: TOrderSanityResult = { ok: true }; + +function reject(code: TOrderRejectCode, reason: string): TOrderSanityResult { + return { ok: false, code, reason }; +} + +/** + * Screen one classified order action against the predicates the validator will + * apply to it. + * + * Unknown actions pass through. Every known action is checked because + * `getSignedPayloadFromOrderInputs` packages both the approvals and + * treasury-admin flows. + */ +export function screenOrderAction( + action: IOrderActionSanityInput, +): TOrderSanityResult { + const { actionType } = action; + + // Mint, burn, stake and unstake carry a user-signed output floor that the + // validator requires to be strictly positive — in the versions that HAVE one. + // v1_0_rc1's datum has no min_received field and its validators have no + // min_received predicate, so `undefined` means "this version has no floor to + // check", not "the floor is zero". The v1_0 / v1_1_rc1 schemas make the field + // mandatory, so a genuinely poisoned order always arrives as 0. + const floor = action.minReceived; + + switch (actionType) { + case "mint": + case "stake": + case "unstake": + if (action.amount <= 0n) { + return reject( + "amount_not_positive", + `Invalid ${actionType} amount (<= 0)`, + ); + } + if (floor !== undefined && floor <= 0n) { + return reject( + "min_received_not_positive", + `Invalid ${actionType} min_received (<= 0)`, + ); + } + // Unstake's forfeit is user-supplied in the datum; a negative one crashes + // the batch on `expect r.forfeit >= 0` exactly like a zero min_received + // does. (Stake requests carry no datum forfeit — OStake has no such + // field, so the validator's `forfeit == 0` holds by construction.) + if (actionType === "unstake" && (action.forfeit ?? 0n) < 0n) { + return reject("forfeit_negative", "Invalid unstake forfeit (< 0)"); + } + return OK; + + case "burn": + // classifyOrderAction negates ORedeem.amount, so the on-chain + // `amount < 0` check is the raw datum amount being positive. + if (action.amount >= 0n) { + return reject("amount_not_positive", "Invalid burn amount (<= 0)"); + } + if (floor !== undefined && floor <= 0n) { + return reject( + "min_received_not_positive", + "Invalid burn min_received (<= 0)", + ); + } + return OK; + + case "withdraw": + if (action.amount <= 0n) { + return reject("amount_not_positive", "Invalid withdraw amount (<= 0)"); + } + if ((action.yield ?? 0n) !== 0n) { + return reject( + "withdraw_yield_not_zero", + "Invalid withdraw request (yield must be 0)", + ); + } + return OK; + + case "deposit": + if (action.amount < 0n) { + return reject( + "deposit_principal_negative", + "Invalid deposit principal (< 0)", + ); + } + return OK; + + case "direct_mint": + if (action.amount <= 0n) { + return reject( + "amount_not_positive", + "Invalid direct_mint amount (<= 0)", + ); + } + return OK; + + case "direct_burn": + // classifyOrderAction negates ODirectBurn.amount to match the signed + // request and direct_burn.ak's required negative amount. + if (action.amount >= 0n) { + return reject( + "amount_not_positive", + "Invalid direct_burn amount (<= 0)", + ); + } + return OK; + + default: + return OK; + } +} + +/** + * Screen deposit predicates that the validator applies to the complete batch, + * after it has summed every request. This must not run per order: offsetting + * yields can make a non-empty pair unexecutable, while a zero/zero order can + * validly accompany a principal-bearing one. + */ +export function screenDepositBatch( + actions: readonly IOrderActionSanityInput[], +): TOrderSanityResult { + const { principal, totalYield } = actions.reduce( + (totals, action) => ({ + principal: totals.principal + action.amount, + totalYield: totals.totalYield + (action.yield ?? 0n), + }), + { principal: 0n, totalYield: 0n }, + ); + if (principal === 0n && totalYield === 0n) { + return reject( + "deposit_batch_empty", + "Invalid deposit batch (principal and yield both total 0)", + ); + } + return OK; +} + +/** + * The value-dependent facts about an order UTxO that the validator checks but + * the datum alone cannot answer. The caller derives these because it owns the + * asset ids and the reserve multiplier from settings. + */ +export interface IOrderUtxoFacts { + /** + * Quantity of the consumed asset the validator will require this UTxO to + * hold. Per action: mint → `usdr_to_reserve_ceil(amount, ra)` of the reserve + * asset; burn → `|amount|` USDr; stake → `amount` USDr; unstake → `amount` + * sUSDr. Zero for actions with no such check (treasury, direct). + */ + consumedRequired: bigint; + /** Quantity of that same asset actually locked in the UTxO. */ + consumedLocked: bigint; + /** + * Ceiling on what may be delivered to the destination, when it is knowable + * without live vault state: mint → `amount`, burn → + * `usdr_to_reserve(|amount|, ra)`. `undefined` where the ceiling follows the + * vault exchange rate (stake, unstake) and so cannot be screened here. + */ + maxDelivered?: bigint; + /** + * Set when the facts could not be derived from the datum at all — the reserve + * asset it names is not in settings, or its policy id is malformed. Every + * field of the datum is attacker-chosen, so this must be a REJECTION, never a + * thrown error: a throw from a screen would abort the caller's whole sweep, + * which is a strictly worse denial of service than the batch-kill the screen + * exists to prevent. The validator reaches the same conclusion via + * `expect Some(ra) = find_reserve_asset(...)` (`v1_0/mint.ak:29`). + */ + unresolvable?: string; +} + +/** + * Screen the value-dependent aborts. Run alongside {@link screenOrderAction} — + * neither subsumes the other. + * + * Both conditions kill the whole transaction, not just the offending order: + * + * - **Underfunded input.** `validate_stake_inputs` / `validate_unstake_inputs` + * (`v1_0/utilities.ak:417`, `:443`) `expect` the locked quantity to cover + * `request.amount`; mint (`mint.ak:32`) and burn (`burn.ak:31`) fold the same + * comparison into an `and {}` whose `False` fails the enclosing `expect`. An + * order UTxO holding min-ADA and none of the consumed asset is therefore a + * complete batch-killer that costs the planter nothing but the min-ADA. + * - **Unsatisfiable floor.** `validate_destination_value` + * (`v1_0/utilities.ak:594-595`) `expect`s `min_delivered <= delivered <= + * max_delivered`. A `min_received` above the ceiling makes the pair + * unsatisfiable no matter what the operator builds. + */ +export function screenOrderUtxoFacts( + action: IOrderActionSanityInput, + facts: IOrderUtxoFacts, +): TOrderSanityResult { + if (facts.unresolvable !== undefined) { + return reject( + "order_facts_unresolvable", + `Order datum cannot be resolved against protocol settings: ${facts.unresolvable}`, + ); + } + + if ( + facts.consumedRequired > 0n && + facts.consumedLocked < facts.consumedRequired + ) { + return reject( + "input_underfunded", + `Order UTxO locks ${facts.consumedLocked} of the consumed asset but its ` + + `${action.actionType} datum requires ${facts.consumedRequired}`, + ); + } + + const floor = action.minReceived; + if ( + floor !== undefined && + facts.maxDelivered !== undefined && + floor > facts.maxDelivered + ) { + return reject( + "min_received_above_max_delivered", + `Invalid ${action.actionType} min_received (${floor}) — above the maximum ` + + `deliverable ${facts.maxDelivered}, so no execution can satisfy it`, + ); + } + + return OK; +} diff --git a/modules/realfi-partner-sdk/src/sdk/v1/types.ts b/modules/realfi-partner-sdk/src/sdk/v1/types.ts new file mode 100644 index 0000000000..1f3002fb4b --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v1/types.ts @@ -0,0 +1,135 @@ +import type { TSchema } from "@blaze-cardano/data"; +import type { Core } from "@blaze-cardano/sdk"; + +// Type-only imports of the canonical V1-family statics. These are erased at +// compile time (verbatimModuleSyntax), so this module adds NO runtime edge +// from the family chunk to the v1_0 generated-types chunk — each version's +// chunk still loads only its own generated module. +import type { + Nonce, + OrderRedeemerV1, + RegistryV1, + SettingsV1 as SettingsV1_0, +} from "../../generated-types/v1_0/index.js"; + +/** + * A TypeBox schema whose inferred static is exactly `T`, regardless of which + * generated module it came from. + * + * The generated modules export `TImport` schemas that carry the WHOLE + * module's `$defs` in their type, so `typeof V1_0Types.X` is not assignable + * to `typeof V1_1Rc1Types.X` even when the statics are structurally identical. + * `Data.serialize`/`parse` only infer through `T["static"]`, so this + * intersection keeps full type safety at every call site while accepting any + * version's schema value. Runtime ref resolution reads `$defs` off the schema + * VALUE, so cross-version dispatch is safe. + */ +export type TSchemaOf = TSchema & { static: T }; + +/** + * Version-agnostic proxy datum shape. `ProxyDatumV1.settings` is the only + * settings-transitive field in the schemas the family touches, so the family + * is generic over it instead of using a version's concrete `ProxyDatumV1`. + */ +export interface IProxyDatum { + logic: string; + settings: TSettings; +} + +/** + * The minimal vault-datum shape every V1-family version shares. Shared code + * may READ `circulating_susdr`; it must never construct a whole vault datum — + * datum construction goes through the version's `buildInitialVaultDatum` / + * `buildUpdatedVaultDatum` seam so versions with extra fields (v1_1_rc1's + * yield-diffusion fields) can't be silently truncated. + */ +export interface IVaultDatumLike { + circulating_susdr: bigint; +} + +/** + * The schema values the family base serializes/parses. Each per-version + * generated module namespace satisfies this structurally. + * + * `OrderDatumV1` is deliberately loose (`TSchema`): the order-datum statics + * differ across the family (v1_0 actions carry `min_received`, v1_0_rc1's do + * not), so the base's v1_0-semantics defaults cast parse results to the v1_0 + * static. Versions with a different static override every constructor and + * consumer of order datums. + */ +export interface IV1FamilySchemas { + ProxyDatumV1: TSchemaOf>; + SettingsV1: TSchemaOf; + OrderDatumV1: TSchema; + OrderRedeemerV1: TSchemaOf; + VaultDatumV1: TSchemaOf; + Nonce: TSchemaOf; +} + +/** + * Schemas used ONLY by the base's v1_0-semantics signing/execute defaults + * (`getSignedPayloadFromOrderInputs`, `buildExecuteOrdersTx`). Versions whose + * protocol redeemer is structurally different (v1_0_rc1) omit this bag and + * override both consumers; the family's guarded accessor throws if neither + * is done. + * + * Both fields are deliberately loose (`TSchema`), for the same reason + * `OrderDatumV1` above is: the protocol-redeemer static diverges across the + * family (v1_1_rc1's `Deposit` carries `alpha` and its action union adds + * `MigrateState`), so a `TSchemaOf` would reject the + * wider v1_1_rc1 schema value even though runtime ref-resolution reads `$defs` + * off the schema VALUE and is safe. Versions build their own action shape via + * the `buildDepositAction` / `serializeOrchestratorWithdrawalRedeemer` seams. + */ +export interface IV1SigningSchemas { + SignedPayload_ProtocolRedeemerV1: TSchema; + SignedRedeemer_ExtraProtocolRedeemerV1: TSchema; +} + +/** + * The fraction of a deposit's yield routed to the staked vault, the remainder + * going to the unstaked yield pot (v1_1_rc1+ `YieldSplitAlpha`). + * + * It is a parameter of the batch: its creator picks it, the backend stores it on + * the batch, and every co-signer signs THAT value. On-chain every signature of a + * batch is verified against a single payload hash, so a signer deriving its own + * value from live state could never be co-signed — which is why the signing path + * takes it as an input instead of reading the vault itself. + */ +export interface IYieldSplitAlpha { + numerator: bigint; + denominator: bigint; +} + +/** + * Version-agnostic view over the settings fields the shared tx-builders use. + * v1_0: the (flat) settings object itself. v1_1_rc1: `settings.config`. + */ +export type TV1SettingsConfig = Pick< + SettingsV1_0, + "reserve_assets" | "unstaked_yield_pot" +>; + +/** + * The registry fields the family base reads (protocol-upgrade checks). + * Registries differ across versions (v1_0 adds `yield_oracle`), so the + * seam exposes only the shared field. + */ +export type TV1Registry = Pick; + +/** + * Instantiated scripts each version's `create()` builds from its own + * generated script classes and hands to the family constructor. Method + * bodies only ever see `Core.Script` values. + */ +export interface IV1FamilyScripts { + oneShotScript: Core.Script; + protocolOrchestratorScript: Core.Script; + protocolMintScript: Core.Script; + protocolStakeScript: Core.Script; + protocolManagementScript: Core.Script; + mintProxyScript: Core.Script; + treasuryScript: Core.Script; + orderScript: Core.Script; + stakingVaultScript: Core.Script; +} diff --git a/modules/realfi-partner-sdk/src/sdk/v1_0/index.ts b/modules/realfi-partner-sdk/src/sdk/v1_0/index.ts new file mode 100644 index 0000000000..3886e0f156 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v1_0/index.ts @@ -0,0 +1,268 @@ +import type { Provider } from "@blaze-cardano/query"; +import { type Blaze, Core, type Wallet } from "@blaze-cardano/sdk"; + +import { + BaseTypes, + V0_1Types, + V0_4Types, + V1_0Types, +} from "../../generated-types/index.js"; +import type { + RegistryV1, + SettingsV1, + VaultDatumV1, +} from "../../generated-types/v1_0/index.js"; +import type { TV1SettingsConfig } from "../v1/types.js"; +import { RealfiSDKV1Family } from "../v1/family.js"; + +export { + DIRECT_ACTION_PADDING_ASSET, + type ITreasuryUnstakeOrderTxResult, +} from "../v1/family.js"; + +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiSDKParamsV1_0 { + version: "V1_0"; + proxyBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** USDr asset name hex */ + assetNameHex: string; + /** sUSDr asset name hex */ + sUSDrAssetNameHex: string; + /** The treasury bootstrap UTxO reference */ + treasuryBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** The staking vault bootstrap UTxO reference */ + stakingVaultBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Fallback slippage tolerance (in basis points) used by buildStakeOrderTx / + * buildUnstakeOrderTx when the caller doesn't pass a per-call value and + * doesn't pass an explicit `minReceived`. 50n = 0.5%. Default: 50n. + */ + defaultSlippageToleranceBps?: bigint; + /** + * Use V0.1 treasury script instead of V1.0. + * This is needed for protocol-only upgrades where the treasury NFT + * remains at the V0.1 treasury address. Default: false + */ + useV0_1Treasury?: boolean; + /** + * Use V0.4 staking vault script instead of V1.0. + * This is needed for protocol-only upgrades where the vault NFT + * remains at the V0.4 vault address. Default: false + */ + useV0_4StakingVault?: boolean; + /** + * Hashes of the validators this deployment actually runs. See + * IV1FamilyConstructorParams.deployedValidators — without them, identity is + * derived from bundled artifacts and an order can be locked at an address + * nothing watches. + */ + deployedValidators?: Readonly>; + /** + * Address to deploy reference scripts to (and resolve them from). When + * omitted, Blaze's burn address is used for both deploy and resolve. + */ + scriptDeploymentAddress?: Core.Address; + referenceInputs?: { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + treasuryRefInput?: Core.TransactionUnspentOutput; + orderRefInput?: Core.TransactionUnspentOutput; + stakingVaultRefInput?: Core.TransactionUnspentOutput; + }; + clientSource?: import("../shared/client-id.js").TClientSource; +} + +// ───────────────────────────────────────────────────────────────────────────── +// SDK Class +// ───────────────────────────────────────────────────────────────────────────── + +/** + * V1_0 SDK implementation. + * + * Extends V0_4 with: + * - DirectMint/DirectBurn: Mint/burn USDr without reserve asset flow (for fiat wire scenarios) + * - Invalidated redeemer: Allow order owners to recover funds when protocol is upgraded + * - Forfeit parameter: Support yield forfeiture during unstake operations + * - New Settings fields: direct_mint_permission, direct_burn_permission + * + * All transaction-building logic lives in {@link RealfiSDKV1Family}; this + * class instantiates the V1_0 scripts and implements the version seams + * (flat settings, 1-field vault datum). + */ +export class RealfiSDKV1_0< + P extends Provider, + W extends Wallet, +> extends RealfiSDKV1Family { + readonly version = "V1_0" as const; + + /** + * Create a V1_0 SDK instance. + */ + static create

( + blaze: Blaze, + params: IRealfiSDKParamsV1_0, + ): RealfiSDKV1_0 { + const enableTrace = params.enableTrace ?? false; + + // 1. Create oneshot script + const oneShotScript = new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script; + const oneShotPolicyId = oneShotScript.hash(); + + // 2. Create sub-validator scripts first (they only need proxy policy) + const protocolMintScript = + new V1_0Types.V1_0ProtocolMintProtocolMintWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + const protocolStakeScript = + new V1_0Types.V1_0ProtocolStakeProtocolStakeWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + const protocolManagementScript = + new V1_0Types.V1_0ProtocolManagementProtocolManagementWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + // 3. Create orchestrator with sub-validator hashes + const protocolOrchestratorScript = + new V1_0Types.V1_0ProtocolOrchestratorProtocolOrchestratorWithdraw( + oneShotPolicyId, + protocolMintScript.hash(), + protocolStakeScript.hash(), + protocolManagementScript.hash(), + enableTrace, + ).Script; + + const mintProxyScript = new BaseTypes.BaseMintProxyMintProxyMint( + oneShotPolicyId, + enableTrace, + ).Script; + + // Use V0.1 or V1.0 treasury script based on option + // V0.1 is needed for protocol-only upgrades where treasury stays at V0.1 address + const treasuryScript = params.useV0_1Treasury + ? new V0_1Types.V0_1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script + : new V1_0Types.V1_0TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + // 4. Create order script with orchestrator hash (order needs to know the protocol) + const orderScript = new V1_0Types.V1_0OrderOrderSpend( + oneShotPolicyId, + protocolOrchestratorScript.hash(), + enableTrace, + ).Script; + + // Use V0.4 or V1.0 staking vault script based on option + // V0.4 is needed for protocol-only upgrades where vault stays at V0.4 address + const stakingVaultScript = params.useV0_4StakingVault + ? new V0_4Types.V0_4StakingVaultStakingVaultSpend( + { + transaction_id: params.stakingVaultBootstrap.txHash, + output_index: params.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script + : new V1_0Types.V1_0StakingVaultStakingVaultSpend( + { + transaction_id: params.stakingVaultBootstrap.txHash, + output_index: params.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + return new RealfiSDKV1_0( + blaze, + { + version: "V1_0", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + sUSDrAssetNameHex: params.sUSDrAssetNameHex, + enableTrace, + defaultSlippageToleranceBps: params.defaultSlippageToleranceBps, + scriptDeploymentAddress: params.scriptDeploymentAddress, + clientSource: params.clientSource, + deployedValidators: params.deployedValidators, + }, + V1_0Types, + { + oneShotScript, + protocolOrchestratorScript, + protocolMintScript, + protocolStakeScript, + protocolManagementScript, + mintProxyScript, + treasuryScript, + orderScript, + stakingVaultScript, + }, + { + protocolRefInput: params.referenceInputs?.protocolRefInput, + proxyRefInput: params.referenceInputs?.proxyRefInput, + treasuryRefInput: params.referenceInputs?.treasuryRefInput, + orderRefInput: params.referenceInputs?.orderRefInput, + stakingVaultRefInput: params.referenceInputs?.stakingVaultRefInput, + }, + V1_0Types, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Version Seams + // ───────────────────────────────────────────────────────────────────────────── + + protected settingsConfig(settings: SettingsV1): TV1SettingsConfig { + // V1_0 settings are flat: the settings object IS the config. + return settings; + } + + protected settingsRegistry(settings: SettingsV1): RegistryV1 { + return settings.registry; + } + + protected buildInitialVaultDatum(): VaultDatumV1 { + return { circulating_susdr: 0n }; + } + + protected buildUpdatedVaultDatum( + previous: VaultDatumV1, + sUSDrDelta: bigint, + ): VaultDatumV1 { + return { circulating_susdr: previous.circulating_susdr + sUSDrDelta }; + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/v1_0_rc1/index.ts b/modules/realfi-partner-sdk/src/sdk/v1_0_rc1/index.ts new file mode 100644 index 0000000000..8e3d05c928 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v1_0_rc1/index.ts @@ -0,0 +1,1708 @@ +import { + addressFromValidator, + blake2b_256, + HexBlob, + PlutusData, + toHex, +} from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { parse } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + Core, + makeValue, + TxBuilder, + type Wallet, +} from "@blaze-cardano/sdk"; + +import { + BaseTypes, + V0_1Types, + V0_4Types, + V1_0Rc1Types, +} from "../../generated-types/index.js"; +import type { TreasuryDatum as V0_1TreasuryDatum } from "../../generated-types/v0_1/index.js"; +import type { + Destination, + MultisigScript, + OrderDatumV1, + RegistryV1, + SettingsV1, + VaultDatumV1, +} from "../../generated-types/v1_0_rc1/index.js"; + +import { + addDirectOutput, + buildNonceFromUtxo, + buildMultisigTimelockNativeScript, + buildTimelockDestination, + buildUnstakeMetadatum, + UNSTAKE_METADATA_LABEL, + destinationToAddress, + findReserveAsset, + usdrToReserve, + usdrToReserveCeil, + computeReserveDeltas, + sortOrderInputs, +} from "../shared/index.js"; +import { + calculateYieldShares, + MIN_LOVELACE, + RealfiSDKV1Family, + type IBuildStakeContinuationParams, + type IStakeContinuation, + type IOrderInfo, + type TOrderActionType, +} from "../v1/family.js"; +import { screenDepositBatch } from "../v1/order-sanity.js"; +import type { TV1SettingsConfig } from "../v1/types.js"; + +// ───────────────────────────────────────────────────────────────────────────── +// Constants +// ───────────────────────────────────────────────────────────────────────────── + +/** + * Sentinel `reserve_asset` used in V1_0_Rc1 TreasuryRequestV1 redeemers for + * DirectMint and DirectBurn actions, which have no real reserve asset in + * their order datum. The on-chain validators `direct_mint_logic` and + * `direct_burn_logic` do not inspect this field; this sentinel makes the + * intent explicit both in code and when inspecting on-chain redeemers. + * + * - `policy_id`: 28 zero bytes (standard policy-ID length, chosen as a + * sentinel and extremely unlikely to occur as a real script hash) + * - `asset_name`: "unused" (ASCII) + * + * Keep in sync with backend `contract.DirectActionPaddingAsset`. + */ +export const DIRECT_ACTION_PADDING_ASSET: V1_0Rc1Types.Asset = [ + "00".repeat(28), + toHex(new TextEncoder().encode("unused")), +]; + +// ───────────────────────────────────────────────────────────────────────────── +// Types +// ───────────────────────────────────────────────────────────────────────────── + +export interface ITreasuryUnstakeOrderTxResultRc1 { + /** Transaction builder for the treasury unstake order. */ + tx: TxBuilder; + /** + * Native script used as the unstake output destination: + * AllOf { After(unlockSlot), owner }. + */ + nativeScript: Core.NativeScript; +} + +/** + * Extract the requests list from a signed payload action, regardless of action type. + * Both TreasuryRequestV1 and RequestV1 have `origin: { transaction_id, output_index }`. + */ +function getRequestsFromAction( + action: V1_0Rc1Types.ProtocolRedeemerV1, +): Array<{ origin: { transaction_id: string; output_index: bigint } }> { + if ("Mint" in action) return action.Mint.requests; + if ("Burn" in action) return action.Burn.requests; + if ("Withdraw" in action) return action.Withdraw.requests; + if ("Deposit" in action) return action.Deposit.requests; + if ("Stake" in action) return action.Stake.requests; + if ("Unstake" in action) return action.Unstake.requests; + if ("DirectMint" in action) return action.DirectMint.requests; + if ("DirectBurn" in action) return action.DirectBurn.requests; + throw new Error("Unknown action type in signed payload"); +} + +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiSDKParamsV1_0Rc1 { + version: "V1_0_Rc1"; + proxyBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** USDr asset name hex */ + assetNameHex: string; + /** sUSDr asset name hex */ + sUSDrAssetNameHex: string; + /** The treasury bootstrap UTxO reference */ + treasuryBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** The staking vault bootstrap UTxO reference */ + stakingVaultBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Use V0.1 treasury script instead of V1.0. + * This is needed for protocol-only upgrades where the treasury NFT + * remains at the V0.1 treasury address. Default: false + */ + useV0_1Treasury?: boolean; + /** + * Use V0.4 staking vault script instead of V1.0. + * This is needed for protocol-only upgrades where the vault NFT + * remains at the V0.4 vault address. Default: false + */ + useV0_4StakingVault?: boolean; + /** + * Hashes of the validators this deployment actually runs. See + * IV1FamilyConstructorParams.deployedValidators. + */ + deployedValidators?: Readonly>; + /** + * Address to deploy reference scripts to (and resolve them from). When + * omitted, Blaze's burn address is used for both deploy and resolve. + */ + scriptDeploymentAddress?: Core.Address; + referenceInputs?: { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + treasuryRefInput?: Core.TransactionUnspentOutput; + orderRefInput?: Core.TransactionUnspentOutput; + stakingVaultRefInput?: Core.TransactionUnspentOutput; + }; + clientSource?: import("../shared/client-id.js").TClientSource; +} + +// ───────────────────────────────────────────────────────────────────────────── +// SDK Class +// ───────────────────────────────────────────────────────────────────────────── + +/** + * V1_0Rc1 SDK implementation. + * + * Extends V0_4 with: + * - DirectMint/DirectBurn: Mint/burn USDr without reserve asset flow (for fiat wire scenarios) + * - Invalidated redeemer: Allow order owners to recover funds when protocol is upgraded + * - Forfeit parameter: Support yield forfeiture during unstake operations + * - New Settings fields: direct_mint_permission, direct_burn_permission + * + * Scaffolding (scripts, deploy/register, treasury, vault, one-shot, cancel, + * invalidate) is inherited from {@link RealfiSDKV1Family}. The release + * candidate's protocol redeemer schema is structurally different from v1_0 + * (`TreasuryRequestV1[]` + `RequestV1[]`, no fees, no `min_received`), so the + * order builders, signed-payload construction, and execute builders override + * the family's v1_0-semantics defaults with the rc1 behavior verbatim. No + * signing schemas are passed to the family constructor — both consumers are + * overridden here. + */ +export class RealfiSDKV1_0Rc1< + P extends Provider, + W extends Wallet, +> extends RealfiSDKV1Family { + readonly version = "V1_0_Rc1" as const; + + /** + * Create a V1_0Rc1 SDK instance. + */ + static create

( + blaze: Blaze, + params: IRealfiSDKParamsV1_0Rc1, + ): RealfiSDKV1_0Rc1 { + const enableTrace = params.enableTrace ?? false; + + // 1. Create oneshot script + const oneShotScript = new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script; + const oneShotPolicyId = oneShotScript.hash(); + + // 2. Create sub-validator scripts first (they only need proxy policy) + const protocolMintScript = + new V1_0Rc1Types.V1_0Rc1ProtocolMintProtocolMintWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + const protocolStakeScript = + new V1_0Rc1Types.V1_0Rc1ProtocolStakeProtocolStakeWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + const protocolManagementScript = + new V1_0Rc1Types.V1_0Rc1ProtocolManagementProtocolManagementWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + // 3. Create orchestrator with sub-validator hashes + const protocolOrchestratorScript = + new V1_0Rc1Types.V1_0Rc1ProtocolOrchestratorProtocolOrchestratorWithdraw( + oneShotPolicyId, + protocolMintScript.hash(), + protocolStakeScript.hash(), + protocolManagementScript.hash(), + enableTrace, + ).Script; + + const mintProxyScript = new BaseTypes.BaseMintProxyMintProxyMint( + oneShotPolicyId, + enableTrace, + ).Script; + + // Use V0.1 or V1.0 treasury script based on option + // V0.1 is needed for protocol-only upgrades where treasury stays at V0.1 address + const treasuryScript = params.useV0_1Treasury + ? new V0_1Types.V0_1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script + : new V1_0Rc1Types.V1_0Rc1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + // 4. Create order script with orchestrator hash (order needs to know the protocol) + const orderScript = new V1_0Rc1Types.V1_0Rc1OrderOrderSpend( + oneShotPolicyId, + protocolOrchestratorScript.hash(), + enableTrace, + ).Script; + + // Use V0.4 or V1.0 staking vault script based on option + // V0.4 is needed for protocol-only upgrades where vault stays at V0.4 address + const stakingVaultScript = params.useV0_4StakingVault + ? new V0_4Types.V0_4StakingVaultStakingVaultSpend( + { + transaction_id: params.stakingVaultBootstrap.txHash, + output_index: params.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script + : new V1_0Rc1Types.V1_0Rc1StakingVaultStakingVaultSpend( + { + transaction_id: params.stakingVaultBootstrap.txHash, + output_index: params.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + return new RealfiSDKV1_0Rc1( + blaze, + { + version: "V1_0_Rc1", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + sUSDrAssetNameHex: params.sUSDrAssetNameHex, + enableTrace, + scriptDeploymentAddress: params.scriptDeploymentAddress, + clientSource: params.clientSource, + deployedValidators: params.deployedValidators, + }, + V1_0Rc1Types, + { + oneShotScript, + protocolOrchestratorScript, + protocolMintScript, + protocolStakeScript, + protocolManagementScript, + mintProxyScript, + treasuryScript, + orderScript, + stakingVaultScript, + }, + { + protocolRefInput: params.referenceInputs?.protocolRefInput, + proxyRefInput: params.referenceInputs?.proxyRefInput, + treasuryRefInput: params.referenceInputs?.treasuryRefInput, + orderRefInput: params.referenceInputs?.orderRefInput, + stakingVaultRefInput: params.referenceInputs?.stakingVaultRefInput, + }, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Version Seams + // ───────────────────────────────────────────────────────────────────────────── + + protected settingsConfig(settings: SettingsV1): TV1SettingsConfig { + // V1_0_Rc1 settings are flat: the settings object IS the config. + return settings; + } + + protected settingsRegistry(settings: SettingsV1): RegistryV1 { + return settings.registry; + } + + protected buildInitialVaultDatum(): VaultDatumV1 { + return { circulating_susdr: 0n }; + } + + protected buildUpdatedVaultDatum( + previous: VaultDatumV1, + sUSDrDelta: bigint, + ): VaultDatumV1 { + return { circulating_susdr: previous.circulating_susdr + sUSDrDelta }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Order Builder Methods (rc1 order datums carry no min_received) + // ───────────────────────────────────────────────────────────────────────────── + + override async buildStakeContinuation( + _params: IBuildStakeContinuationParams, + ): Promise { + throw new Error( + "Stake continuations are not supported on V1_0_Rc1 because its order schema has no min_received", + ); + } + + /** + * Internal helper to build an order transaction. + */ + protected override async _buildOrderTx(params: { + action: V1_0Rc1Types.OrderActionV1; + valueToLock: Core.Value; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + extraLabels?: Map; + }): Promise { + const orderContractAddress = addressFromValidator( + this.network, + this.orderScript, + ); + + let owner = params.owner; + if (!owner) { + owner = { + Signature: { + key_hash: (await this.blaze.wallet.getChangeAddress()) + .getProps() + .paymentPart!.hash!.toString(), + }, + }; + } + + const orderDatum: OrderDatumV1 = { + action: params.action, + owner, + destination: params.destination, + data: params.data ?? Data.Void(), + }; + const serializedDatum = Data.serialize( + V1_0Rc1Types.OrderDatumV1, + orderDatum, + ); + + const tx = this.newOrderTransaction(params.extraLabels); + tx.lockAssets(orderContractAddress, params.valueToLock, serializedDatum); + return tx; + } + + /** + * Build a mint order: lock reserve tokens, request USDr minting. + */ + override async buildMintOrderTx(params: { + amount: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Mint amount must be positive"); + } + const reserveAssetId = Core.AssetId( + params.reserveAsset[0] + params.reserveAsset[1], + ); + // Convert USDr amount to reserve amount using ceiling division + // to ensure enough reserve is locked for on-chain validation + const settings = await this.getVersionSettings(); + const ra = findReserveAsset(settings, params.reserveAsset); + const reserveAmount = usdrToReserveCeil(params.amount, ra); + return this._buildOrderTx({ + action: { + OMint: { amount: params.amount, reserve_asset: params.reserveAsset }, + }, + valueToLock: makeValue(MIN_LOVELACE, [reserveAssetId, reserveAmount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a redeem (burn) order: lock USDr, request reserve token redemption. + */ + override async buildRedeemOrderTx(params: { + amount: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Redeem amount must be positive"); + } + const settings = await this.getVersionSettings(); + findReserveAsset(settings, params.reserveAsset); + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + return this._buildOrderTx({ + action: { + ORedeem: { + amount: params.amount, + reserve_asset: params.reserveAsset, + }, + }, + valueToLock: makeValue(MIN_LOVELACE, [stablecoinAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + /** + * Build a stake order: lock USDr, request sUSDr minting. + */ + override async buildStakeOrderTx(params: { + amount: bigint; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Stake amount must be positive"); + } + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + return this._buildOrderTx({ + action: { OStake: { amount: params.amount } }, + valueToLock: makeValue(MIN_LOVELACE, [stablecoinAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + protected override async _buildUnstakeOrderTx(params: { + amount: bigint; + destination: Destination; + forfeit?: bigint; + owner?: MultisigScript; + data?: PlutusData; + extraLabels?: Map; + }): Promise { + if (params.amount <= 0n) { + throw new Error("Unstake amount must be positive"); + } + const forfeit = params.forfeit ?? 0n; + if (forfeit < 0n) { + throw new Error("Forfeit amount cannot be negative"); + } + + const sUSDrAssetId = Core.AssetId( + this.stablecoinPolicyId + this.sUSDrAssetNameHex, + ); + + return this._buildOrderTx({ + action: { OUnstake: { amount: params.amount, forfeit } }, + valueToLock: makeValue(MIN_LOVELACE, [sUSDrAssetId, params.amount]), + owner: params.owner, + destination: params.destination, + data: params.data, + extraLabels: params.extraLabels, + }); + } + + /** + * Build an unstake order: lock sUSDr, request USDr release. + * + * The destination is automatically set to a native script address that + * enforces a timelock: AllOf { Signature(user), After(unlockSlot) }. + * This means the released USDr can only be spent by the user after the + * unlock time has passed. + * + * @param params.amount - Amount of sUSDr to unstake + * @param params.destination - The user's actual destination (used to extract payment key hash) + * @param params.unlockSlot - Slot number after which the user can spend the released USDr + * @param params.forfeit - Optional amount of USDr to forfeit to yield pot (default: 0) + */ + override async buildUnstakeOrderTx(params: { + amount: bigint; + destination: Destination; + unlockSlot: bigint; + forfeit?: bigint; + owner?: MultisigScript; + data?: PlutusData; + }): Promise { + const timelockDestination = buildTimelockDestination( + params.destination, + params.unlockSlot, + ); + const extraLabels = new Map([ + [ + UNSTAKE_METADATA_LABEL, + buildUnstakeMetadatum(params.destination, params.unlockSlot), + ], + ]); + + return this._buildUnstakeOrderTx({ + amount: params.amount, + destination: timelockDestination, + forfeit: params.forfeit, + owner: params.owner, + data: params.data, + extraLabels, + }); + } + + /** + * Build a treasury-managed unstake order that wraps the destination in a + * native timelock script controlled by the order owner. + * + * The destination is set to: AllOf { After(unlockSlot), owner }. This keeps + * treasury multisig ownership on the released USDr while enforcing the same + * unlock slot used by the retail unstake helper. The owner must be convertible + * to a Cardano native script. + */ + override async buildTreasuryUnstakeOrderTx(params: { + amount: bigint; + destination: Destination; + unlockSlot: bigint; + forfeit?: bigint; + owner: MultisigScript; + data?: PlutusData; + }): Promise { + const nativeScript = buildMultisigTimelockNativeScript( + params.owner, + params.unlockSlot, + ); + const timelockDestination: Destination = { + address: { + payment_credential: { Script: [nativeScript.hash()] }, + stake_credential: params.destination.address.stake_credential, + }, + datum: "NoDatum", + }; + + // Attach the unstake metadata (label 55534472) exactly like the retail + // path (buildUnstakeOrderTx). track-chain requires this label to index the + // order; without it the confirmed unstake output is silently dropped + // (WTB-1466). Mirror retail precisely: the metadatum is built from the + // user-supplied destination (params.destination), not the derived timelock + // destination, and carries the same unlock_time. + const extraLabels = new Map([ + [ + UNSTAKE_METADATA_LABEL, + buildUnstakeMetadatum(params.destination, params.unlockSlot), + ], + ]); + + const tx = await this._buildUnstakeOrderTx({ + amount: params.amount, + destination: timelockDestination, + forfeit: params.forfeit, + owner: params.owner, + data: params.data, + extraLabels, + }); + + return { tx, nativeScript }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Signed Payload and Signing + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build the V1_0Rc1 SignedPayload_ProtocolRedeemer from order inputs. + * Returns both the CBOR hex string (for buildExecuteOrdersTx) and + * the blake2b_256 hash (for CIP-30 signing). + */ + override async getSignedPayloadFromOrderInputs( + orderInputs: Core.TransactionInput[], + ): Promise<{ signedPayload: string; payloadHash: string }> { + if (orderInputs.length === 0) { + throw new Error("At least one order input is required"); + } + + const sortedInputs = sortOrderInputs(orderInputs); + const nonce = buildNonceFromUtxo(sortedInputs[0]!) as V1_0Rc1Types.Nonce; + + const resolvedUtxos = + await this.blaze.provider.resolveUnspentOutputs(sortedInputs); + + let actionType: TOrderActionType | null = null; + const treasuryRequests: V1_0Rc1Types.TreasuryRequestV1[] = []; + const requests: V1_0Rc1Types.RequestV1[] = []; + + for (const utxo of resolvedUtxos) { + const datumData = utxo.output().datum()?.asInlineData(); + if (!datumData) { + throw new Error("Order UTXO has no inline datum"); + } + const datum = parse(V1_0Rc1Types.OrderDatumV1, datumData) as OrderDatumV1; + const origin = { + transaction_id: utxo.input().transactionId().toString(), + output_index: utxo.input().index(), + }; + + const parsed = this.classifyOrderAction(datum); + + // WTB-1764: same screen the family applies. rc1 has no min_received, but + // its predicates still demand an amount sign (`v1_0_rc1/stake.ak:64`, + // `unstake.ak:64`) and every one of them is an `expect` inside a single + // fold, so a request that fails takes the whole transaction with it. + const screened = await this.screenOrderForExecution(utxo, parsed); + if (!screened.ok) { + throw new Error( + `Order ${origin.transaction_id}#${origin.output_index} cannot be executed: ` + + `${screened.reason}. Every order batched with it would crash on-chain.`, + ); + } + + if (actionType === null) { + actionType = parsed.actionType; + } else if (actionType !== parsed.actionType) { + throw new Error( + "Mixed order types in inputs. All orders must be of the same type.", + ); + } + + if (parsed.isTreasuryAction) { + // DirectMint/DirectBurn datums have no reserve_asset; the redeemer + // struct requires one but the on-chain validator ignores it for + // direct actions, so we pad with DIRECT_ACTION_PADDING_ASSET. + const reserveAsset = parsed.reserveAsset ?? DIRECT_ACTION_PADDING_ASSET; + treasuryRequests.push({ + destination: datum.destination, + amount: parsed.amount, + yield: parsed.yield ?? 0n, + origin, + reserve_asset: reserveAsset, + }); + } else { + requests.push({ + destination: datum.destination, + amount: parsed.amount, + origin, + forfeit: parsed.forfeit ?? 0n, + }); + } + } + + if (actionType === "deposit") { + const batchVerdict = screenDepositBatch( + treasuryRequests.map((request) => ({ + actionType: "deposit", + amount: request.amount, + yield: request.yield, + })), + ); + if (!batchVerdict.ok) { + throw new Error( + `${batchVerdict.reason}. Every order batched with it would crash on-chain.`, + ); + } + } + + let action: V1_0Rc1Types.ProtocolRedeemerV1; + switch (actionType) { + case "mint": + action = { Mint: { requests: treasuryRequests } }; + break; + case "burn": + action = { Burn: { requests: treasuryRequests } }; + break; + case "withdraw": + action = { Withdraw: { requests: treasuryRequests } }; + break; + case "deposit": + action = { Deposit: { requests: treasuryRequests } }; + break; + case "stake": + action = { Stake: { requests } }; + break; + case "unstake": + action = { Unstake: { requests } }; + break; + case "direct_mint": + action = { DirectMint: { requests: treasuryRequests } }; + break; + case "direct_burn": + action = { DirectBurn: { requests: treasuryRequests } }; + break; + default: + throw new Error("No orders to process"); + } + + const payload: V1_0Rc1Types.SignedPayload_v1_0_ProtocolRedeemerV1 = { + action, + nonce, + }; + const serialized = Data.serialize( + V1_0Rc1Types.SignedPayload_v1_0_ProtocolRedeemerV1, + payload, + ); + const signedPayload = serialized.toCbor().toString(); + const payloadHash = blake2b_256(HexBlob(signedPayload)); + + return { signedPayload, payloadHash }; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Execute Orders + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a transaction to execute orders. + * + * Handles all 8 action types: mint, burn, deposit, withdraw, stake, unstake, + * direct_mint, direct_burn. + */ + override async buildExecuteOrdersTx(params: { + orderInputs: Core.TransactionInput[]; + signedPayload: string; + signatures: V1_0Rc1Types.Tuple_VerificationKey_COSESign1[]; + }): Promise { + const { + orderInputs, + signedPayload: signedPayloadCbor, + signatures, + } = params; + + // Deserialize CBOR hex to object for internal use + const signedPayload = parse( + V1_0Rc1Types.SignedPayload_v1_0_ProtocolRedeemerV1, + PlutusData.fromCbor(HexBlob(signedPayloadCbor)), + ) as V1_0Rc1Types.SignedPayload_v1_0_ProtocolRedeemerV1; + + // 1. Sort and resolve order UTxOs + const sortedOrderInputs = sortOrderInputs(orderInputs); + const orderUtxos = + await this.blaze.provider.resolveUnspentOutputs(sortedOrderInputs); + + // 2. Parse orders and validate same type + const orderInfos = this.parseOrderInfos(orderUtxos); + const actionType = orderInfos[0]!.actionType; + + // 3. Get protocol settings + const { proxyUtxo, parsedProxyDatum } = await this.getParsedProxyDatum(); + const settings = parsedProxyDatum.settings as SettingsV1; + + // 4. Determine what we need + const needsTreasury = [ + "mint", + "burn", + "withdraw", + "deposit", + "direct_mint", + "direct_burn", + ].includes(actionType); + const needsVault = ["stake", "unstake", "deposit"].includes(actionType); + + // 5. Get script reference inputs + // V1.0 requires the orchestrator and the relevant sub-validator script + const isMintAction = [ + "mint", + "burn", + "direct_mint", + "direct_burn", + ].includes(actionType); + const isStakeAction = ["stake", "unstake"].includes(actionType); + + const scriptHashesNeeded: Record = { + protocol: this.protocolScriptHash, + order: this.orderScriptHash, + }; + if (isMintAction) { + scriptHashesNeeded.protocolMint = this.protocolMintScriptHash; + } else if (isStakeAction) { + scriptHashesNeeded.protocolStake = this.protocolStakeScriptHash; + } else { + scriptHashesNeeded.protocolManagement = this.protocolManagementScriptHash; + } + if (needsTreasury) { + scriptHashesNeeded.treasury = this.treasuryScriptHash; + } + if (needsVault) { + scriptHashesNeeded.stakingVault = this.stakingVaultScriptHash; + } + const refInputs = await this.getScriptReferenceInputs(scriptHashesNeeded); + + // 6. Fetch treasury and vault if needed + let treasuryUtxo: Core.TransactionUnspentOutput | undefined; + let parsedTreasuryDatum: V0_1TreasuryDatum | undefined; + if (needsTreasury) { + const treasuryResult = await this.getTreasuryDatum(); + treasuryUtxo = treasuryResult.treasuryUtxo; + parsedTreasuryDatum = treasuryResult.parsedTreasuryDatum; + } + + let vaultUtxo: Core.TransactionUnspentOutput | undefined; + let parsedVaultDatum: VaultDatumV1 | undefined; + if (needsVault) { + const vaultResult = await this.getVaultDatum(); + vaultUtxo = vaultResult.vaultUtxo; + parsedVaultDatum = vaultResult.parsedVaultDatum; + } + + // 7. Gather wallet UTxOs so we can include them in index calculations. + const walletUtxos = await this.blaze.wallet.getUnspentOutputs(); + const excludedInputIds = new Set(); + const utxoKey = (inp: Core.TransactionInput) => + `${inp.transactionId().toString()}#${inp.index().toString()}`; + // Exclude script inputs (order, treasury, vault) + for (const orderInfo of orderInfos) { + excludedInputIds.add(utxoKey(orderInfo.utxo.input())); + } + if (treasuryUtxo) { + excludedInputIds.add(utxoKey(treasuryUtxo.input())); + } + if (vaultUtxo) { + excludedInputIds.add(utxoKey(vaultUtxo.input())); + } + // Exclude reference inputs (must be disjoint from regular inputs) + excludedInputIds.add(utxoKey(proxyUtxo.input())); + for (const refUtxo of Object.values(refInputs)) { + if (refUtxo) { + excludedInputIds.add(utxoKey(refUtxo.input())); + } + } + const feeUtxos = walletUtxos.filter( + (utxo) => !excludedInputIds.has(utxoKey(utxo.input())), + ); + + // 8. Compute input indices (ledger sorts inputs by txHash + outputIndex). + const allInputRefs: Core.TransactionInput[] = orderInfos.map((o) => + o.utxo.input(), + ); + if (treasuryUtxo) { + allInputRefs.push(treasuryUtxo.input()); + } + if (vaultUtxo) { + allInputRefs.push(vaultUtxo.input()); + } + for (const feeUtxo of feeUtxos) { + allInputRefs.push(feeUtxo.input()); + } + + const sortedAllInputRefs = [...allInputRefs].sort((a, b) => { + const txA = a.transactionId().toString(); + const txB = b.transactionId().toString(); + if (txA < txB) return -1; + if (txA > txB) return 1; + return Number(a.index()) - Number(b.index()); + }); + + const findInputIdx = (input: Core.TransactionInput): bigint => { + const idx = sortedAllInputRefs.findIndex( + (r) => + r.transactionId().toString() === input.transactionId().toString() && + r.index() === input.index(), + ); + return BigInt(idx); + }; + + const treasuryInputIdx = treasuryUtxo + ? findInputIdx(treasuryUtxo.input()) + : 0n; + const vaultInputIdx = vaultUtxo + ? findInputIdx(vaultUtxo.input()) + : undefined; + + // 8a. Correlate order inputs to signed request indices via origin fields. + // When all orders are present this produces the same identity mapping as before. + // When a subset is passed (partial execution), it maps each input to the + // correct request index in the signed payload. + const signedRequests = getRequestsFromAction(signedPayload.action); + const originToRequestIdx = new Map(); + for (let i = 0; i < signedRequests.length; i++) { + const o = signedRequests[i]!.origin; + originToRequestIdx.set(`${o.transaction_id}#${o.output_index}`, i); + } + + const inputToRequests: bigint[] = []; + const requestToOutputs: bigint[] = []; + for (let outputIdx = 0; outputIdx < orderInfos.length; outputIdx++) { + const input = orderInfos[outputIdx]!.utxo.input(); + const key = `${input.transactionId()}#${input.index()}`; + const requestIdx = originToRequestIdx.get(key); + if (requestIdx === undefined) { + throw new Error(`Order input ${key} not found in signed payload`); + } + inputToRequests.push(BigInt(requestIdx)); + requestToOutputs.push(BigInt(outputIdx)); + } + + // 9. Build outputs and compute output indices + const numDestOutputs = orderInfos.length; + + // For deposit with positive yield, the yield pot output is inserted after destinations + let numExtraOutputs = 0; + if (actionType === "deposit") { + const totalYield = orderInfos.reduce( + (sum, o) => sum + (o.yield ?? 0n), + 0n, + ); + if (totalYield > 0n) { + const vaultValue = vaultUtxo!.output().amount(); + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const treasuryCirculating = parsedTreasuryDatum!.circulating_supply; + const { unstakedYieldShare } = calculateYieldShares( + totalYield, + vaultUSDr, + treasuryCirculating, + ); + if (unstakedYieldShare > 0n) { + numExtraOutputs = 1; + } + } + } + + // For unstake with forfeit, add yield pot output + if (actionType === "unstake") { + const totalForfeit = orderInfos.reduce( + (sum, o) => sum + (o.forfeit ?? 0n), + 0n, + ); + if (totalForfeit > 0n) { + numExtraOutputs = 1; + } + } + + const treasuryOutputIdx = needsTreasury + ? BigInt(numDestOutputs + numExtraOutputs) + : 0n; + const vaultOutputIdx = needsVault + ? BigInt(numDestOutputs + numExtraOutputs + (needsTreasury ? 1 : 0)) + : undefined; + + // 10. Build ExtraProtocolRedeemer + const extra: V1_0Rc1Types.ExtraProtocolRedeemerV1 = { + request_to_outputs: requestToOutputs, + input_to_requests: inputToRequests, + treasury_input_idx: treasuryInputIdx, + treasury_output_idx: treasuryOutputIdx, + vault_input_idx: vaultInputIdx, + vault_output_idx: vaultOutputIdx, + }; + + // 11. Build SignedRedeemer + const serializedSignedRedeemer = Data.serialize( + V1_0Rc1Types.SignedRedeemer_v1_0_ExtraProtocolRedeemerV1, + { + extra, + payload: signedPayload, + signatures, + }, + ); + + const executeRedeemer = Data.serialize( + V1_0Rc1Types.OrderRedeemerV1, + "Execute", + ); + + // 12. Build the transaction + const tx = this.newOrderTransaction(); + + // Add order inputs with Execute redeemer + for (const orderInfo of orderInfos) { + tx.addInput(orderInfo.utxo, executeRedeemer); + } + + // Add wallet fee inputs explicitly + for (const feeUtxo of feeUtxos) { + tx.addInput(feeUtxo); + } + + // Add reference inputs + tx.addReferenceInput(refInputs.protocol!); + tx.addReferenceInput(refInputs.order!); + tx.addReferenceInput(proxyUtxo); + // V1.0 sub-validator reference inputs + if (refInputs.protocolMint) { + tx.addReferenceInput(refInputs.protocolMint); + } + if (refInputs.protocolStake) { + tx.addReferenceInput(refInputs.protocolStake); + } + if (refInputs.protocolManagement) { + tx.addReferenceInput(refInputs.protocolManagement); + } + if (refInputs.treasury) { + tx.addReferenceInput(refInputs.treasury); + } + if (refInputs.stakingVault) { + tx.addReferenceInput(refInputs.stakingVault); + } + + // Add orchestrator withdrawal with signed redeemer + const orchestratorRewardAccount = Core.RewardAccount.fromCredential( + { + type: Core.CredentialType.ScriptHash, + hash: this.protocolScriptHash, + }, + this.network, + ); + tx.addWithdrawal(orchestratorRewardAccount, 0n, serializedSignedRedeemer); + + // Determine which sub-validator to use based on action type + const subValidatorHash = + actionType === "mint" || + actionType === "burn" || + actionType === "direct_mint" || + actionType === "direct_burn" + ? this.protocolMintScriptHash + : actionType === "stake" || actionType === "unstake" + ? this.protocolStakeScriptHash + : this.protocolManagementScriptHash; // deposit, withdraw + + // Add sub-validator withdrawal with void redeemer + const subValidatorRewardAccount = Core.RewardAccount.fromCredential( + { + type: Core.CredentialType.ScriptHash, + hash: subValidatorHash, + }, + this.network, + ); + const voidRedeemer = Data.Void(); + tx.addWithdrawal(subValidatorRewardAccount, 0n, voidRedeemer); + + // Build per-action-type outputs, minting, and state updates + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const sUSDrAssetId = Core.AssetId( + this.stablecoinPolicyId + this.sUSDrAssetNameHex, + ); + + switch (actionType) { + case "mint": + this.buildMintExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "burn": + this.buildBurnExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "withdraw": + this.buildWithdrawExecute( + tx, + orderInfos, + treasuryUtxo!, + parsedTreasuryDatum!, + settings, + ); + break; + case "deposit": + this.buildDepositExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + vaultUtxo!, + parsedVaultDatum!, + settings, + ); + break; + case "stake": + this.buildStakeExecute( + tx, + orderInfos, + stablecoinAssetId, + sUSDrAssetId, + vaultUtxo!, + parsedVaultDatum!, + ); + break; + case "unstake": + this.buildUnstakeExecute( + tx, + orderInfos, + stablecoinAssetId, + sUSDrAssetId, + vaultUtxo!, + parsedVaultDatum!, + settings, + ); + break; + case "direct_mint": + this.buildDirectMintExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + ); + break; + case "direct_burn": + this.buildDirectBurnExecute( + tx, + orderInfos, + stablecoinAssetId, + treasuryUtxo!, + parsedTreasuryDatum!, + ); + break; + } + + // Provide the mint proxy script for minting + tx.provideScript(this.mintProxyScript); + + return tx; + } + + // ───────────────────────────────────────────────────────────────────────────── + // Per-Action Execute Builders (rc1: no fees, plain min-ADA destination outputs) + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Mint: reserve goes to treasury, USDr minted to destinations. + */ + protected override buildMintExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: SettingsV1, + ): void { + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Destination outputs: send USDr to each destination + for (const orderInfo of orderInfos) { + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + addDirectOutput( + tx, + destAddress, + makeValue(MIN_LOVELACE, [stablecoinAssetId, orderInfo.amount]), + ); + } + + // Mint USDr + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Compute per-reserve-asset deltas + const reserveDeltas = computeReserveDeltas(orderInfos, settings); + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalAmount, + ); + } + + /** + * Burn: USDr burned, reserve sent to destinations. + */ + protected override buildBurnExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: SettingsV1, + ): void { + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Destination outputs: send reserve tokens to each destination + for (const orderInfo of orderInfos) { + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const reserveAssetId = Core.AssetId( + orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1], + ); + const reserveAmount = usdrToReserve(-orderInfo.amount, ra); + addDirectOutput( + tx, + destAddress, + makeValue(MIN_LOVELACE, [reserveAssetId, reserveAmount]), + ); + } + + // Burn USDr (totalAmount is negative) + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Compute per-reserve-asset deltas + const reserveDeltas = computeReserveDeltas(orderInfos, settings); + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalAmount, + ); + } + + /** + * Withdraw: reserve sent to destinations, no mint/burn. + */ + protected override buildWithdrawExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + settings: SettingsV1, + ): void { + // Destination outputs: send reserve tokens to each destination + for (const orderInfo of orderInfos) { + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const reserveAssetId = Core.AssetId( + orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1], + ); + const reserveAmount = usdrToReserve(orderInfo.amount, ra); + addDirectOutput( + tx, + destAddress, + makeValue(MIN_LOVELACE, [reserveAssetId, reserveAmount]), + ); + } + + // Update treasury: reserve decreases, no circulating_supply change + const reserveDeltas = computeReserveDeltas(orderInfos, settings, true); + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + 0n, + ); + } + + /** + * Deposit: reserve deposited, interest USDr minted and split between vault and yield pot. + */ + protected override buildDepositExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: VaultDatumV1, + settings: SettingsV1, + ): void { + const totalYield = orderInfos.reduce((sum, o) => sum + (o.yield ?? 0n), 0n); + + // Destination outputs: min ADA to each destination + for (const orderInfo of orderInfos) { + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + addDirectOutput(tx, destAddress, makeValue(MIN_LOVELACE)); + } + + // Calculate yield split + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const treasuryCirculating = parsedTreasuryDatum.circulating_supply; + + const { stakedYieldShare, unstakedYieldShare } = calculateYieldShares( + totalYield, + vaultUSDr, + treasuryCirculating, + ); + + if (totalYield > 0n) { + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalYield]]), + Data.Void(), + ); + + if (unstakedYieldShare > 0n) { + const yieldPotAddress = destinationToAddress(this.network, { + address: settings.unstaked_yield_pot, + datum: "NoDatum", + }); + addDirectOutput( + tx, + yieldPotAddress, + makeValue(MIN_LOVELACE, [stablecoinAssetId, unstakedYieldShare]), + ); + } + } else if (totalYield < 0n) { + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalYield]]), + Data.Void(), + ); + } + + // Update treasury + const reserveDeltas = new Map(); + for (const orderInfo of orderInfos) { + const assetId = orderInfo.reserveAsset![0] + orderInfo.reserveAsset![1]; + const ra = findReserveAsset(settings, orderInfo.reserveAsset!); + const yieldValue = orderInfo.yield ?? 0n; + + const usdrBacking = + yieldValue >= 0n ? orderInfo.amount + yieldValue : orderInfo.amount; + + const reserveAmount = usdrToReserve(usdrBacking, ra); + reserveDeltas.set( + assetId, + (reserveDeltas.get(assetId) ?? 0n) + reserveAmount, + ); + } + this.updateTreasuryOutput( + tx, + treasuryUtxo, + parsedTreasuryDatum, + reserveDeltas, + totalYield, + ); + + // Update vault + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + 0n, + stakedYieldShare, + ); + } + + /** + * Stake: USDr locked in vault, sUSDr minted to destinations. + */ + protected override buildStakeExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + sUSDrAssetId: Core.AssetId, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: VaultDatumV1, + ): void { + const totalUSDrStaked = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const circulatingSUSDr = parsedVaultDatum.circulating_susdr; + + let totalSUSDrMinted: bigint; + if (circulatingSUSDr === 0n || vaultUSDr === 0n) { + totalSUSDrMinted = totalUSDrStaked; + } else { + totalSUSDrMinted = (totalUSDrStaked * circulatingSUSDr) / vaultUSDr; + } + + for (const orderInfo of orderInfos) { + let sUSDrAmount: bigint; + if (circulatingSUSDr === 0n || vaultUSDr === 0n) { + sUSDrAmount = orderInfo.amount; + } else { + sUSDrAmount = (orderInfo.amount * circulatingSUSDr) / vaultUSDr; + } + + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + addDirectOutput( + tx, + destAddress, + makeValue(MIN_LOVELACE, [sUSDrAssetId, sUSDrAmount]), + ); + } + + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.sUSDrAssetNameHex), totalSUSDrMinted]]), + Data.Void(), + ); + + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + totalSUSDrMinted, + totalUSDrStaked, + ); + } + + /** + * Unstake: sUSDr burned, USDr sent to user's destination address. + * V1_0Rc1: Supports forfeit parameter - forfeited USDr goes to yield pot. + */ + protected override buildUnstakeExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + sUSDrAssetId: Core.AssetId, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: VaultDatumV1, + settings: SettingsV1, + ): void { + const totalSUSDrBurned = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + const vaultValue = vaultUtxo.output().amount(); + const vaultUSDr = vaultValue.multiasset()?.get(stablecoinAssetId) ?? 0n; + const circulatingSUSDr = parsedVaultDatum.circulating_susdr; + + if (circulatingSUSDr === 0n) { + throw new Error("Cannot unstake: no sUSDr in circulation"); + } + + let totalUSDrReleased = 0n; + let totalForfeit = 0n; + + for (const orderInfo of orderInfos) { + const uSDrEntitled = (orderInfo.amount * vaultUSDr) / circulatingSUSDr; + const forfeit = orderInfo.forfeit ?? 0n; + const uSDrAmount = uSDrEntitled - forfeit; + + totalUSDrReleased += uSDrEntitled; + totalForfeit += forfeit; + + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + const output = new Core.TransactionOutput( + destAddress, + makeValue(MIN_LOVELACE, [stablecoinAssetId, uSDrAmount]), + ); + tx.addOutput(output); + } + + // Send forfeited USDr to yield pot if any + if (totalForfeit > 0n) { + const yieldPotAddress = destinationToAddress(this.network, { + address: settings.unstaked_yield_pot, + datum: "NoDatum", + }); + addDirectOutput( + tx, + yieldPotAddress, + makeValue(MIN_LOVELACE, [stablecoinAssetId, totalForfeit]), + ); + } + + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.sUSDrAssetNameHex), -totalSUSDrBurned]]), + Data.Void(), + ); + + this.updateVaultOutput( + tx, + vaultUtxo, + parsedVaultDatum, + -totalSUSDrBurned, + -totalUSDrReleased, + ); + } + + /** + * DirectMint: Mint USDr without reserve asset flow. + * USDr is minted to destinations, treasury circulating_supply increases. + * NO reserve asset changes. + */ + protected override buildDirectMintExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + ): void { + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // Destination outputs: send USDr to each destination + for (const orderInfo of orderInfos) { + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + addDirectOutput( + tx, + destAddress, + makeValue(MIN_LOVELACE, [stablecoinAssetId, orderInfo.amount]), + ); + } + + // Mint USDr + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Update treasury: circulating_supply increases, NO reserve changes + this.updateTreasuryOutputNoReserve( + tx, + treasuryUtxo, + parsedTreasuryDatum, + totalAmount, + ); + } + + /** + * DirectBurn: Burn USDr without reserve asset flow. + * USDr is burned, treasury circulating_supply decreases. + * NO reserve asset changes, NO destination outputs (fiat sent off-chain). + * + * The `_stablecoinAssetId` parameter exists only to keep the override + * signature compatible with the family's; rc1's direct-burn output is + * min-ADA only and does not touch the stablecoin asset. + */ + protected override buildDirectBurnExecute( + tx: TxBuilder, + orderInfos: IOrderInfo[], + _stablecoinAssetId: Core.AssetId, + treasuryUtxo: Core.TransactionUnspentOutput, + parsedTreasuryDatum: V0_1TreasuryDatum, + ): void { + // totalAmount is negative for burns (from classifyOrderAction) + const totalAmount = orderInfos.reduce((sum, o) => sum + o.amount, 0n); + + // CRITICAL: No destination outputs for DirectBurn + // USDr is burned, fiat is sent off-chain. Nothing goes to user on-chain. + // We just need to return min ADA to the destination (contract may require this) + for (const orderInfo of orderInfos) { + const destAddress = destinationToAddress( + this.network, + orderInfo.datum.destination, + ); + addDirectOutput(tx, destAddress, makeValue(MIN_LOVELACE)); + } + + // Burn USDr (totalAmount is negative) + tx.addMint( + this.stablecoinPolicyId, + new Map([[Core.AssetName(this.assetNameHex), totalAmount]]), + Data.Void(), + ); + + // Update treasury: circulating_supply decreases, NO reserve changes + this.updateTreasuryOutputNoReserve( + tx, + treasuryUtxo, + parsedTreasuryDatum, + totalAmount, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Protected Helpers + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Classify an order action from its datum (rc1 actions carry no min_received). + */ + protected override classifyOrderAction(datum: OrderDatumV1): { + actionType: TOrderActionType; + amount: bigint; + yield?: bigint; + forfeit?: bigint; + reserveAsset?: [string, string]; + isTreasuryAction: boolean; + } { + const action = datum.action; + if ("OMint" in action) { + return { + actionType: "mint", + amount: action.OMint.amount, + reserveAsset: action.OMint.reserve_asset, + isTreasuryAction: true, + }; + } else if ("ORedeem" in action) { + return { + actionType: "burn", + amount: -action.ORedeem.amount, + reserveAsset: action.ORedeem.reserve_asset, + isTreasuryAction: true, + }; + } else if ("ODeposit" in action) { + return { + actionType: "deposit", + amount: action.ODeposit.principal, + yield: action.ODeposit.yield, + reserveAsset: action.ODeposit.reserve_asset, + isTreasuryAction: true, + }; + } else if ("OWithdraw" in action) { + return { + actionType: "withdraw", + amount: action.OWithdraw.amount, + reserveAsset: action.OWithdraw.reserve_asset, + isTreasuryAction: true, + }; + } else if ("OStake" in action) { + return { + actionType: "stake", + amount: action.OStake.amount, + isTreasuryAction: false, + }; + } else if ("OUnstake" in action) { + return { + actionType: "unstake", + amount: action.OUnstake.amount, + forfeit: action.OUnstake.forfeit, + isTreasuryAction: false, + }; + } else if ("ODirectMint" in action) { + return { + actionType: "direct_mint", + amount: action.ODirectMint.amount, + isTreasuryAction: true, + }; + } else if ("ODirectBurn" in action) { + return { + actionType: "direct_burn", + amount: -action.ODirectBurn.amount, + isTreasuryAction: true, + }; + } + throw new Error("Unknown order action type"); + } +} diff --git a/modules/realfi-partner-sdk/src/sdk/v1_1_rc1/diffusion.ts b/modules/realfi-partner-sdk/src/sdk/v1_1_rc1/diffusion.ts new file mode 100644 index 0000000000..bcd2bb53d5 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v1_1_rc1/diffusion.ts @@ -0,0 +1,144 @@ +import type { VaultDatumV1 } from "../../generated-types/v1_1_rc1/index.js"; + +export interface ISusdrExchangeRateInputs { + circulatingSusdr: bigint; + vaultUsdr: bigint; + pendingYield: bigint; + diffusionStartUnixMilli: bigint; + diffusionEndUnixMilli: bigint; +} + +export const SUSDR_EXCHANGE_RATE_PRECISION = 1_000_000n; + +/** + * Time-diffused yield — a verbatim TypeScript port of the on-chain helpers in + * `contracts/lib/v1_1_rc1/utilities.ak`. Deposited staked yield does not hit + * the exchange rate instantly; it releases linearly over a window so a large + * deposit cannot be sniped by staking right before it and unstaking right + * after. The SDK must reproduce this math exactly to build vault datums and + * rate quotes the validators accept. + * + * All timestamps are absolute POSIX milliseconds, matching the on-chain datum + * and the Plutus validity range (the ledger presents tx validity bounds to the + * script in POSIX ms, not slots). + */ + +/** + * Maximum tx validity-range span (ms) tolerated while a diffusion window is + * active. Mirrors `max_diffusion_rate_span` (utilities.ak). The validator + * rejects a wider range so an interpolated rate can't be read from a stale, + * far-future lower bound. + */ +export const MAX_DIFFUSION_RATE_SPAN_MS = 3_600_000n; + +/** + * USDr not yet diffused into the exchange rate at `atTimeMs`. Releases linearly + * from `diffusion_start` (full `pending_yield`) to `diffusion_end` (zero), + * rounded UP so settled backing is never overstated (conservative on unstake). + * + * Port of `pending_remaining` (utilities.ak:1082). + */ +export function pendingRemaining( + vault: VaultDatumV1, + atTimeMs: bigint, +): bigint { + const { pending_yield, diffusion_start, diffusion_end } = vault; + if (pending_yield <= 0n || atTimeMs >= diffusion_end) { + return 0n; + } + if (atTimeMs <= diffusion_start) { + return pending_yield; + } + const span = diffusion_end - diffusion_start; + // Round up: (a + span - 1) / span with BigInt truncating division. + return (pending_yield * (diffusion_end - atTimeMs) + span - 1n) / span; +} + +/** + * Settled backing — the USDr currently backing sUSDr — given the full vault + * USDr balance and diffusion state at `atTimeMs`. Port of `settled_backing` + * (utilities.ak:1099). When no window is active the whole balance is settled + * and `atTimeMs` is irrelevant (matches the validator, which then requires no + * validity bound). + */ +export function settledBacking( + usdrBalance: bigint, + vault: VaultDatumV1, + atTimeMs: bigint, +): bigint { + if (vault.pending_yield <= 0n) { + return usdrBalance; + } + return usdrBalance - pendingRemaining(vault, atTimeMs); +} + +/** + * Diffusion-aware USDr-per-sUSDr exchange rate, scaled by `precision`. + * Returns 1:1 when no sUSDr is circulating, matching the on-chain convention. + */ +export function calculateSusdrExchangeRate( + inputs: ISusdrExchangeRateInputs, + atTimeMs: bigint, + precision: bigint = SUSDR_EXCHANGE_RATE_PRECISION, +): bigint { + if (inputs.circulatingSusdr <= 0n) { + return precision; + } + + const vault: VaultDatumV1 = { + circulating_susdr: inputs.circulatingSusdr, + pending_yield: inputs.pendingYield, + diffusion_start: inputs.diffusionStartUnixMilli, + diffusion_end: inputs.diffusionEndUnixMilli, + }; + + return ( + (settledBacking(inputs.vaultUsdr, vault, atTimeMs) * precision) / + inputs.circulatingSusdr + ); +} + +/** + * The diffusion fields (`pending_yield`, `diffusion_start`, `diffusion_end`) + * the vault output must carry after a deposit. Port of the field expectations + * inside `validate_deposit_diffusion` (utilities.ak:1117). + * + * - Positive yield: the staked share rolls into `pending` on top of whatever + * hasn't diffused yet, and the window becomes `[nowMs, windowEndMs]`. If no + * window is requested (`windowEndMs <= 0`) and none is active, or the + * requested window has already elapsed by execution (`windowEndMs <= nowMs`), + * it collapses to instant `(0, 0, 0)`. + * - Loss (negative yield): the window is frozen (carried over unchanged); the + * loss is recognised immediately rather than diffused. + * + * `windowEndMs` is the max `diffusion_end` across the batch's deposit requests + * (`max_end` in deposit.ak); `nowMs` is the execution time (the tx validity + * lower bound). + */ +export function nextDepositDiffusion( + vaultIn: VaultDatumV1, + stakedYieldShare: bigint, + totalYield: bigint, + windowEndMs: bigint, + nowMs: bigint, +): { pending_yield: bigint; diffusion_start: bigint; diffusion_end: bigint } { + if (totalYield >= 0n) { + if (vaultIn.pending_yield <= 0n && windowEndMs <= 0n) { + return { pending_yield: 0n, diffusion_start: 0n, diffusion_end: 0n }; + } + if (windowEndMs > nowMs) { + return { + pending_yield: pendingRemaining(vaultIn, nowMs) + stakedYieldShare, + diffusion_start: nowMs, + diffusion_end: windowEndMs, + }; + } + return { pending_yield: 0n, diffusion_start: 0n, diffusion_end: 0n }; + } + // Loss: freeze the existing window. + return { + pending_yield: vaultIn.pending_yield, + diffusion_start: vaultIn.diffusion_start, + diffusion_end: vaultIn.diffusion_end, + }; +} diff --git a/modules/realfi-partner-sdk/src/sdk/v1_1_rc1/index.ts b/modules/realfi-partner-sdk/src/sdk/v1_1_rc1/index.ts new file mode 100644 index 0000000000..cec70d0db5 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sdk/v1_1_rc1/index.ts @@ -0,0 +1,1281 @@ +import { blake2b_256, HexBlob, PlutusData } from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { parse, type Exact } from "@blaze-cardano/data"; +import type { Provider } from "@blaze-cardano/query"; +import { + type Blaze, + Core, + makeValue, + type TxBuilder, + Value, + type Wallet, +} from "@blaze-cardano/sdk"; + +import { + BaseTypes, + V0_1Types, + V0_4Types, + V1_0Types, + V1_1Rc1Types, +} from "../../generated-types/index.js"; +import type { + Destination, + MultisigScript, + OrderActionV1, + SettingsV1, + TreasuryRequestV1, + Tuple_VerificationKey_COSESign1, + VaultDatumV1, +} from "../../generated-types/v1_1_rc1/index.js"; + +import { + buildNonceFromUtxo, + credentialFromScript, + deployScript, + findReserveAsset, + getDatumFromNFT, + slotAlignedTimeMs, + slotFloor, + usdrToReserveCeil, + YIELD_ORACLE_BOOTSTRAP_PLACEHOLDER, + type ICachedReferenceInputs, +} from "../shared/index.js"; +import { + calculateYieldShares, + MIN_LOVELACE, + RealfiSDKV1Family, + type IClassifiedOrderAction, + type IExecutionValidityContext, + type IOrderInfo, + type IRequestOrigin, + type IV1FamilyConstructorParams, +} from "../v1/family.js"; +import type { + IV1FamilySchemas, + IV1FamilyScripts, + IV1SigningSchemas, + IYieldSplitAlpha, + TV1Registry, + TV1SettingsConfig, +} from "../v1/types.js"; + +/** V1_1-specific knobs threaded from the public params to the constructor. */ +// eslint-disable-next-line @typescript-eslint/naming-convention +interface IV1_1Rc1Options { + now?: () => bigint; + defaultDiffusionDurationMs?: bigint; + executionValidityWindowMs?: bigint; + diffusionShortfallThresholdMs?: bigint; + throwOnDiffusionWindowShortfall?: boolean; + distributionOracleScriptHash: Core.Hash28ByteBase16; + /** + * The `protocol_migration_v1_0_to_v1_1` withdraw validator script. Used to + * deploy/register it and to attach its withdrawal + hash when running the + * in-place vault-datum migration (`MigrateState`). + */ + migrationScript: Core.Script; +} + +import { + MAX_DIFFUSION_RATE_SPAN_MS, + nextDepositDiffusion, + pendingRemaining, + settledBacking, +} from "./diffusion.js"; + +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface IRealfiSDKParamsV1_1Rc1 { + version: "V1_1_Rc1"; + proxyBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** USDr asset name hex */ + assetNameHex: string; + /** sUSDr asset name hex */ + sUSDrAssetNameHex: string; + /** The treasury bootstrap UTxO reference */ + treasuryBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** The staking vault bootstrap UTxO reference */ + stakingVaultBootstrap: { + txHash: Core.TransactionId; + outputIndex: bigint; + }; + /** + * Dedicated bootstrap UTxO for the yield_oracle NFT one-shot, baked into the + * orchestrator's logic hash (via the yield_oracle validator param). + * + * OPTIONAL: a deployment that DEFERS the oracle can omit it, in which case the + * SDK uses {@link YIELD_ORACLE_BOOTSTRAP_PLACEHOLDER} — a permanently + * un-consumable all-zeros reference. A deployment that intends to actually run + * the oracle must supply a real, still-unspent UTxO here (distinct from the + * proxy/treasury/stakingVault seeds, each of which its own NFT mint consumes), + * so the oracle policy stays mintable when the publish flow bootstraps the + * oracle NFT. + */ + yieldOracleBootstrap?: { + readonly txHash: Core.TransactionId; + readonly outputIndex: bigint; + }; + /** Enable trace output in Plutus scripts for debugging. Default: false */ + enableTrace?: boolean; + /** + * Fallback slippage tolerance (bps) for stake/unstake `minReceived`. 50n = + * 0.5%. Default: 50n. Same semantics as V1_0. + */ + defaultSlippageToleranceBps?: bigint; + /** + * Use V0.1 treasury script instead of V1.1. Needed for protocol-only + * upgrades where the treasury NFT stays at the V0.1 address. Default: false + */ + useV0_1Treasury?: boolean; + /** + * Use V0.4 staking vault script instead of V1.1. Needed for protocol-only + * upgrades where the vault NFT stays at the V0.4 address. Default: false + */ + useV0_4StakingVault?: boolean; + /** + * Hashes of the validators this deployment actually runs. See + * IV1FamilyConstructorParams.deployedValidators. + */ + deployedValidators?: Readonly>; + /** + * Address to deploy reference scripts to (and resolve them from). When + * omitted, Blaze's burn address is used for both deploy and resolve. + */ + scriptDeploymentAddress?: Core.Address; + referenceInputs?: { + protocolRefInput?: Core.TransactionUnspentOutput; + proxyRefInput?: Core.TransactionUnspentOutput; + treasuryRefInput?: Core.TransactionUnspentOutput; + orderRefInput?: Core.TransactionUnspentOutput; + stakingVaultRefInput?: Core.TransactionUnspentOutput; + }; + /** + * Default diffusion window length (ms) applied to `buildDepositOrderTx` when + * the caller passes neither `diffusionEnd` nor `diffusionDurationMs`. Measured + * from ORDER-CREATION time (not execution). When unset, deposits default to + * instant (no diffusion window). Choose to match the yield-deposit cadence + * (~24h for daily deposits, ~5d per epoch). + */ + defaultDiffusionDurationMs?: bigint; + /** + * Forward validity window (ms) attached to vault-touching executions while a + * diffusion window is active. The window plus any default-clock backoff must + * not exceed 1h (`MAX_DIFFUSION_RATE_SPAN_MS`). Default: 30 minutes. + */ + executionValidityWindowMs?: bigint; + /** + * Remaining diffusion window (ms) at or below which a deposit execution + * reports a shortfall (see {@link throwOnDiffusionWindowShortfall} for how). + * Default: 0n — only a window that has FULLY lapsed by execution time, which + * is the point the validator collapses it to an instant deposit. Raise it + * (e.g. 300_000n) to also flag a window that will survive execution but has + * nearly nothing left to diffuse over. + */ + diffusionShortfallThresholdMs?: bigint; + /** + * Refuse (throw) rather than `console.warn` when a deposit execution hits a + * diffusion-window shortfall. Default: false — a lapsed window is still a + * valid, executable deposit on-chain (it just settles instantly), so the + * default never blocks an execution. Set true in automation that must not + * silently under-deliver a diffused deposit. + */ + throwOnDiffusionWindowShortfall?: boolean; + /** + * Injectable clock (POSIX ms) for the diffusion rate time and deposit + * `diffusion_end` defaulting. Defaults to wall-clock `Date.now()`. Tests + * pass a deterministic function tied to the emulator clock. + */ + now?: () => bigint; +} + +const DEFAULT_EXECUTION_VALIDITY_WINDOW_MS = 1_800_000n; // 30 minutes + +/** + * How far in the past to open a vault-touching execution's validity interval + * when using the default wall clock. + * + * The validator requires the vault's `diffusion_start` to equal the validity + * lower bound. Backing off both values absorbs submitter clock skew without + * shortening duration-based order windows or the forward execution window. + * Injected clocks are used verbatim for deterministic emulator tests. + */ +const DEFAULT_CLOCK_BACKOFF_MS = 120_000n; // 2 minutes + +// ───────────────────────────────────────────────────────────────────────────── +// SDK Class +// ───────────────────────────────────────────────────────────────────────────── + +/** + * V1_1_Rc1 SDK implementation. + * + * The release candidate keeps V1_0's order/redeemer taxonomy (fees, + * `min_received`, `ExchangeRequestV1`/`TreasuryRequestV1`/`StakeRequestV1`) and + * adds **time-diffused yield**: the staking vault datum grows to four fields + * (`circulating_susdr`, `pending_yield`, `diffusion_start`, `diffusion_end`) + * and deposited staked yield releases into the exchange rate linearly over a + * window rather than instantly. + * + * Because the redeemer shape is V1_0 plus an additive `diffusion_end`, this + * class reuses {@link RealfiSDKV1Family}'s V1_0-semantics tx-builders wholesale + * and overrides only the diffusion seams: + * - the four-field vault datum ({@link buildInitialVaultDatum} / + * {@link buildUpdatedVaultDatum}) and nested settings adapters; + * - {@link settledVaultBacking}: quote stake/unstake rates against settled + * backing (balance minus not-yet-diffused pending yield); + * - {@link buildTreasuryRequest}: echo the order datum's `diffusion_end` into + * the signed payload; + * - {@link updateDepositVaultOutput}: roll the staked share into the diffusion + * window on deposit; + * - {@link buildDepositOrderTx}: expose the `diffusion_end` order parameter; + * - {@link applyExecutionValidityBounds}: attach the validity range the + * diffusion rate time is read from. + */ +export class RealfiSDKV1_1Rc1< + P extends Provider, + W extends Wallet, +> extends RealfiSDKV1Family { + readonly version = "V1_1_Rc1" as const; + + private readonly nowFn: () => bigint; + private readonly defaultDiffusionDurationMs?: bigint; + private readonly executionValidityWindowMs: bigint; + private readonly executionClockBackoffMs: bigint; + private readonly diffusionShortfallThresholdMs: bigint; + private readonly throwOnDiffusionWindowShortfall: boolean; + /** + * The `distribution_oracle` (publish-logic) validator hash. Exposed so + * settings datums can point `registry.yield_oracle` at it — that is the + * withdrawal the orchestrator's PublishYieldOracle path requires. NOTE: this + * is NOT the orchestrator's 5th compile-time parameter; that parameter is the + * `yield_oracle` validator hash (the mint+spend validator that holds the + * oracle UTxO), which is a different validator with a different hash. + */ + readonly distributionOracleScriptHash: Core.Hash28ByteBase16; + + /** + * The `protocol_migration_v1_0_to_v1_1` withdraw validator and its hash. + * The validator is registry-gated (whitelisted via `registry.migration`), NOT + * an orchestrator compile-time parameter, so it lives version-locally on this + * class. Deploy it (`deployMigration`) + register its stake + * (`registerMigrationStake`), then run `buildMigrateStateTx` to migrate a + * v1_0 one-field vault datum to the four-field v1_1 shape in place. + */ + readonly migrationScript: Core.Script; + readonly migrationScriptHash: Core.Hash28ByteBase16; + + /** + * Slot-aligned execution bounds for the in-flight `buildExecuteOrdersTx`. + * `executionNowMs` is the backed-off lower bound used by the diffusion datum + * and rate quote; `executionValidUntilMs` is based on the unshifted wall time. + * Both are undefined outside an execution build. + */ + private executionNowMs?: bigint; + private executionValidUntilMs?: bigint; + + static create

( + blaze: Blaze, + params: IRealfiSDKParamsV1_1Rc1, + ): RealfiSDKV1_1Rc1 { + const enableTrace = params.enableTrace ?? false; + + // 1. Create oneshot script + const oneShotScript = new BaseTypes.BaseOneshotOneshotMint( + { + transaction_id: params.proxyBootstrap.txHash, + output_index: params.proxyBootstrap.outputIndex, + }, + enableTrace, + ).Script; + const oneShotPolicyId = oneShotScript.hash(); + + // 2. Create sub-validator scripts first (they only need proxy policy) + const protocolMintScript = + new V1_1Rc1Types.V1_1Rc1ProtocolMintProtocolMintWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + const protocolStakeScript = + new V1_1Rc1Types.V1_1Rc1ProtocolStakeProtocolStakeWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + const protocolManagementScript = + new V1_1Rc1Types.V1_1Rc1ProtocolManagementProtocolManagementWithdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + // 3. Derive the two oracle validators. They are DISTINCT scripts with + // distinct roles and hashes (the shared "yield_oracle" naming is a contract + // quirk): + // - `yield_oracle` is a mint+spend validator: its single hash is both the + // oracle-NFT policy id AND the address holding the long-lived oracle + // UTxO. This is the orchestrator's `yield_oracle_validator` compile-time + // param — ExecuteOrders' `no_script_input` guard protects that UTxO from + // being drained by a normal execution. + // - `distribution_oracle` is the withdraw-only publish-logic validator. + // Its hash is what `registry.yield_oracle` must hold (PublishYieldOracle + // requires THIS validator's withdrawal). + // Seeded by its OWN dedicated bootstrap UTxO (NOT proxyBootstrap, which the + // proxy NFT mint consumes) so the oracle one-shot stays satisfiable when the + // publish flow later bootstraps the oracle NFT. Only the hashes are needed + // here (the publish path / NFT mint is a follow-up). + // A deferred oracle omits the seed → default to the placeholder (a + // permanently un-consumable reference). A deployment that runs the oracle + // supplies a real seed. Either way the orchestrator hash is deterministic. + const yieldOracleBootstrap = + params.yieldOracleBootstrap ?? YIELD_ORACLE_BOOTSTRAP_PLACEHOLDER; + const yieldOracleScript = + new V1_1Rc1Types.V1_1Rc1YieldOracleYieldOracleMint( + { + transaction_id: yieldOracleBootstrap.txHash, + output_index: yieldOracleBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + const yieldOracleValidatorHash = yieldOracleScript.hash(); + // The oracle NFT is minted under the yield_oracle validator's own policy, so + // the NFT policy id equals that validator's hash. + const oracleNftPolicyId = yieldOracleValidatorHash; + const distributionOracleScript = + new V1_1Rc1Types.V1_1Rc1DistributionOracleDistributionOracleWithdraw( + oneShotPolicyId, + oracleNftPolicyId, + enableTrace, + ).Script; + const distributionOracleScriptHash = distributionOracleScript.hash(); + + // The v1_0→v1_1 migration validator. Withdraw-only and registry-gated (not + // an orchestrator compile param): whitelisted at runtime via + // `registry.migration`. Only the proxy policy id parametrizes it. + const migrationScript = + new V1_1Rc1Types.V1_1Rc1ProtocolMigrationV1_0ToV1_1ProtocolMigrationV1_0ToV1_1Withdraw( + oneShotPolicyId, + enableTrace, + ).Script; + + // 4. Create orchestrator with sub-validator hashes + the yield_oracle + // validator hash (the validator that HOLDS the oracle UTxO — NOT + // distribution_oracle). + const protocolOrchestratorScript = + new V1_1Rc1Types.V1_1Rc1ProtocolOrchestratorProtocolOrchestratorWithdraw( + oneShotPolicyId, + protocolMintScript.hash(), + protocolStakeScript.hash(), + protocolManagementScript.hash(), + yieldOracleValidatorHash, + enableTrace, + ).Script; + + const mintProxyScript = new BaseTypes.BaseMintProxyMintProxyMint( + oneShotPolicyId, + enableTrace, + ).Script; + + // Use V0.1 or V1.1 treasury script based on option + const treasuryScript = params.useV0_1Treasury + ? new V0_1Types.V0_1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script + : new V1_1Rc1Types.V1_1Rc1TreasuryTreasurySpend( + { + transaction_id: params.treasuryBootstrap.txHash, + output_index: params.treasuryBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + // 4. Create order script with orchestrator hash + const orderScript = new V1_1Rc1Types.V1_1Rc1OrderOrderSpend( + oneShotPolicyId, + protocolOrchestratorScript.hash(), + enableTrace, + ).Script; + + // Use V0.4 or V1.1 staking vault script based on option + const stakingVaultScript = params.useV0_4StakingVault + ? new V0_4Types.V0_4StakingVaultStakingVaultSpend( + { + transaction_id: params.stakingVaultBootstrap.txHash, + output_index: params.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script + : new V1_1Rc1Types.V1_1Rc1StakingVaultStakingVaultSpend( + { + transaction_id: params.stakingVaultBootstrap.txHash, + output_index: params.stakingVaultBootstrap.outputIndex, + }, + oneShotPolicyId, + enableTrace, + ).Script; + + return new RealfiSDKV1_1Rc1( + blaze, + { + version: "V1_1_Rc1", + proxyBootstrap: params.proxyBootstrap, + assetNameHex: params.assetNameHex, + sUSDrAssetNameHex: params.sUSDrAssetNameHex, + enableTrace, + defaultSlippageToleranceBps: params.defaultSlippageToleranceBps, + scriptDeploymentAddress: params.scriptDeploymentAddress, + deployedValidators: params.deployedValidators, + }, + V1_1Rc1Types, + { + oneShotScript, + protocolOrchestratorScript, + protocolMintScript, + protocolStakeScript, + protocolManagementScript, + mintProxyScript, + treasuryScript, + orderScript, + stakingVaultScript, + }, + { + protocolRefInput: params.referenceInputs?.protocolRefInput, + proxyRefInput: params.referenceInputs?.proxyRefInput, + treasuryRefInput: params.referenceInputs?.treasuryRefInput, + orderRefInput: params.referenceInputs?.orderRefInput, + stakingVaultRefInput: params.referenceInputs?.stakingVaultRefInput, + }, + // The v1_1 signed-payload / signed-redeemer schemas are the V1_0-shaped + // payload plus TreasuryRequestV1.diffusion_end (additive), so they map + // onto the family's stable signing-schema keys. blaze mangles the + // orchestrator generics with a `_v1_1_` infix (see the codegen note in + // project_v1_1_rc1_vs_audited_v1_1_divergence); remap them here. + { + SignedPayload_ProtocolRedeemerV1: + V1_1Rc1Types.SignedPayload_v1_1_ProtocolRedeemerV1, + SignedRedeemer_ExtraProtocolRedeemerV1: + V1_1Rc1Types.SignedRedeemer_v1_1_ExtraProtocolRedeemerV1, + }, + { + now: params.now, + defaultDiffusionDurationMs: params.defaultDiffusionDurationMs, + executionValidityWindowMs: params.executionValidityWindowMs, + diffusionShortfallThresholdMs: params.diffusionShortfallThresholdMs, + throwOnDiffusionWindowShortfall: params.throwOnDiffusionWindowShortfall, + distributionOracleScriptHash, + migrationScript, + }, + ); + } + + protected constructor( + blaze: Blaze, + params: IV1FamilyConstructorParams, + schemas: IV1FamilySchemas, + scripts: IV1FamilyScripts, + cachedReferenceInputs: ICachedReferenceInputs | undefined, + signingSchemas: IV1SigningSchemas, + options: IV1_1Rc1Options, + ) { + super( + blaze, + params, + schemas, + scripts, + cachedReferenceInputs, + signingSchemas, + ); + this.nowFn = options.now ?? (() => BigInt(Date.now())); + this.executionClockBackoffMs = + options.now === undefined ? DEFAULT_CLOCK_BACKOFF_MS : 0n; + this.defaultDiffusionDurationMs = options.defaultDiffusionDurationMs; + this.diffusionShortfallThresholdMs = + options.diffusionShortfallThresholdMs ?? 0n; + // A negative threshold would silently suppress detection of a window that + // HAS lapsed (remaining is negative by then), defeating the whole guard — + // and, with throwOnDiffusionWindowShortfall set, defeating it silently. + if (this.diffusionShortfallThresholdMs < 0n) { + throw new RangeError( + `diffusionShortfallThresholdMs must be non-negative, got ${this.diffusionShortfallThresholdMs} ms.`, + ); + } + this.throwOnDiffusionWindowShortfall = + options.throwOnDiffusionWindowShortfall ?? false; + this.executionValidityWindowMs = + options.executionValidityWindowMs ?? DEFAULT_EXECUTION_VALIDITY_WINDOW_MS; + const validitySpanMs = + this.executionClockBackoffMs + this.executionValidityWindowMs; + if ( + this.executionValidityWindowMs < 0n || + validitySpanMs > MAX_DIFFUSION_RATE_SPAN_MS + ) { + throw new RangeError( + `Execution validity span must be at most 1 hour (${MAX_DIFFUSION_RATE_SPAN_MS} ms), got ${validitySpanMs} ms.`, + ); + } + this.distributionOracleScriptHash = options.distributionOracleScriptHash; + this.migrationScript = options.migrationScript; + this.migrationScriptHash = options.migrationScript.hash(); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Version Seams + // ───────────────────────────────────────────────────────────────────────────── + + protected settingsConfig(settings: SettingsV1): TV1SettingsConfig { + // V1_1 settings are nested: the reserve/pot config lives under `config`. + return settings.config; + } + + protected settingsRegistry(settings: SettingsV1): TV1Registry { + return settings.registry; + } + + protected buildInitialVaultDatum(): VaultDatumV1 { + return { + circulating_susdr: 0n, + pending_yield: 0n, + diffusion_start: 0n, + diffusion_end: 0n, + }; + } + + protected buildUpdatedVaultDatum( + previous: VaultDatumV1, + sUSDrDelta: bigint, + ): VaultDatumV1 { + // Stake / unstake move only circulating_susdr; the diffusion window passes + // through untouched (stake.ak / unstake.ak enforce this). Deposit builds + // its datum via updateDepositVaultOutput, not this seam. + return { + circulating_susdr: previous.circulating_susdr + sUSDrDelta, + pending_yield: previous.pending_yield, + diffusion_start: previous.diffusion_start, + diffusion_end: previous.diffusion_end, + }; + } + + protected override settledVaultBacking( + parsedVaultDatum: VaultDatumV1, + vaultUSDr: bigint, + ): bigint { + return settledBacking(vaultUSDr, parsedVaultDatum, this.rateTimeMs()); + } + + protected override buildTreasuryRequest( + datum: Parameters< + RealfiSDKV1Family["buildTreasuryRequest"] + >[0], + parsed: IClassifiedOrderAction, + origin: IRequestOrigin, + ): TreasuryRequestV1 { + // The signed request must echo the order datum's diffusion_end + // (utilities.ak enforces request.diffusion_end == order.diffusion_end). + const action = datum.action as OrderActionV1; + const diffusionEnd = + "ODeposit" in action ? action.ODeposit.diffusion_end : 0n; + return { + destination: datum.destination, + amount: parsed.amount, + yield: parsed.yield ?? 0n, + diffusion_end: diffusionEnd, + origin, + reserve_asset: parsed.reserveAsset!, + }; + } + + protected override get splitsYield(): boolean { + return true; + } + + /** + * The yield split a deposit batch's creator should pick: + * vault_usdr / treasury_circulating, i.e. the share of the circulating supply + * that is staked. Pinning it to that ratio makes the SIGNED split reproduce + * exactly the integer staked share the executor writes to the vault — + * deposit.ak recomputes staked_yield_share = total_yield * numerator / + * denominator with the same truncation-toward-zero, and the same two values + * feed the execute path's calculateYieldShares. + * + * Only the creator of a batch calls this. A co-signer must NOT: it reads live + * state, and two signers reading it at different chain states would produce + * different payload bytes, which cannot be co-signed (the orchestrator checks + * every signature against one payload hash). Co-signers read the batch's alpha + * back from the backend and pass it to getSignedPayloadFromOrderInputs. + */ + async computeDepositAlpha(): Promise { + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const { vaultUtxo } = await this.getVaultDatum(); + const vaultUSDr = + vaultUtxo.output().amount().multiasset()?.get(stablecoinAssetId) ?? 0n; + const { parsedTreasuryDatum } = await this.getTreasuryDatum(); + const treasuryCirculating = parsedTreasuryDatum.circulating_supply; + return treasuryCirculating > 0n + ? { numerator: vaultUSDr, denominator: treasuryCirculating } + : { numerator: 0n, denominator: 1n }; + } + + protected override async buildDepositAction( + requests: TreasuryRequestV1[], + alpha?: IYieldSplitAlpha, + ): Promise< + Awaited< + ReturnType< + RealfiSDKV1Family["buildDepositAction"] + > + > + > { + // No fallback to live state: that is what made two signings of one batch + // disagree. The batch's alpha has to be handed in — its creator computes it + // once (computeDepositAlpha), everyone else reads it back from the backend. + if (!alpha) { + throw new Error( + "v1_1_rc1: a deposit batch needs its yield-split alpha — pass the batch's stored alpha (created with computeDepositAlpha)", + ); + } + if (alpha.denominator <= 0n) { + throw new Error( + `v1_1_rc1: yield-split alpha denominator must be positive, got ${alpha.denominator}`, + ); + } + if (alpha.numerator < 0n || alpha.numerator > alpha.denominator) { + throw new Error( + `v1_1_rc1: yield-split alpha must be within [0, 1], got ${alpha.numerator}/${alpha.denominator}`, + ); + } + // The family action type is v1_0-shaped (Deposit has no `alpha`); the rc1 + // signing schema serializes `alpha` via its $defs (see IV1SigningSchemas). + return { Deposit: { requests, alpha } } as unknown as Awaited< + ReturnType< + RealfiSDKV1Family["buildDepositAction"] + > + >; + } + + /** + * rc1's Deposit carries a COSE-signed `alpha`; `deposit.ak` splits total_yield + * against that signed ratio (quotient_integer), NOT live vault/treasury state. + * Echo the signed alpha here so the executor's vault/pot outputs (and the + * pot-output indexing) match what the validator checks — re-reading state + * would diverge if the vault or treasury moved between signing and execution. + */ + protected override resolveDepositYieldShares( + totalYield: bigint, + vaultUSDr: bigint, + treasuryCirculating: bigint, + action: Parameters< + RealfiSDKV1Family< + P, + W, + SettingsV1, + VaultDatumV1 + >["resolveDepositYieldShares"] + >[3], + ): { stakedYieldShare: bigint; unstakedYieldShare: bigint } { + const deposit = ( + action as unknown as { + Deposit?: { alpha: { numerator: bigint; denominator: bigint } }; + } + ).Deposit; + if (!deposit) { + // Defensive: a non-Deposit action routed here → live-state split. + return super.resolveDepositYieldShares( + totalYield, + vaultUSDr, + treasuryCirculating, + action, + ); + } + const { numerator, denominator } = deposit.alpha; + // BigInt division truncates toward zero, matching Aiken quotient_integer. + const stakedYieldShare = + denominator > 0n ? (totalYield * numerator) / denominator : 0n; + return { + stakedYieldShare, + unstakedYieldShare: totalYield - stakedYieldShare, + }; + } + + protected override serializeOrchestratorWithdrawalRedeemer( + redeemer: Parameters< + RealfiSDKV1Family< + P, + W, + SettingsV1, + VaultDatumV1 + >["serializeOrchestratorWithdrawalRedeemer"] + >[0], + ): PlutusData { + // v1_1_rc1's orchestrator dispatch wraps order execution in + // ExecuteOrders(...) (the sibling PublishYieldOracle path is a follow-up + // PR). Nest the family's signed redeemer inside the wrapper. The redeemer is + // v1_0-typed at the family layer (Deposit carries `alpha` only at runtime, + // injected by buildDepositAction); cast to the wrapper's static. + return Data.serialize(V1_1Rc1Types.ProtocolOrchestratorRedeemerV1, { + ExecuteOrders: [redeemer], + } as unknown as Exact); + } + + protected override updateDepositVaultOutput( + tx: TxBuilder, + vaultUtxo: Core.TransactionUnspentOutput, + parsedVaultDatum: VaultDatumV1, + ctx: { + stakedYieldShare: bigint; + totalYield: bigint; + orderInfos: IOrderInfo[]; + }, + ): void { + // Vault window end = max diffusion_end across the batch's deposit orders + // (max_end in deposit.ak). Read from each order datum's ODeposit action. + let windowEndMs = 0n; + for (const orderInfo of ctx.orderInfos) { + const action = orderInfo.datum.action as OrderActionV1; + if ("ODeposit" in action && action.ODeposit.diffusion_end > windowEndMs) { + windowEndMs = action.ODeposit.diffusion_end; + } + } + + // One timestamp for both the shortfall check and the datum, so the warning + // can never describe a different execution time than the one written. + const nowMs = this.rateTimeMs(); + this.checkDiffusionWindow(parsedVaultDatum, ctx, windowEndMs, nowMs); + + const window = nextDepositDiffusion( + parsedVaultDatum, + ctx.stakedYieldShare, + ctx.totalYield, + windowEndMs, + nowMs, + ); + + this.updateVaultOutputWithDatum( + tx, + vaultUtxo, + { + circulating_susdr: parsedVaultDatum.circulating_susdr, + ...window, + }, + ctx.stakedYieldShare, + ); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Deposit order builder (adds the diffusion_end datum field) + // ───────────────────────────────────────────────────────────────────────────── + + /** + * Build a deposit order. Identical to the family default except the ODeposit + * datum carries `diffusion_end` — the absolute POSIX-ms timestamp the staked + * yield diffuses until, set at ORDER CREATION and echoed by the executed + * request. Resolution: explicit `diffusionEnd` > `diffusionDurationMs` added to + * the order-creation time > the SDK's `defaultDiffusionDurationMs` added to the + * order-creation time > `0n` (instant). + * + * NB: because the window is absolute and fixed here, any delay before the + * execute lands (batching, cold/multisig signature collection) shortens the + * effective window; a window that fully elapses before execution collapses the + * deposit to instant on-chain. + */ + override async buildDepositOrderTx(params: { + principal: bigint; + yield: bigint; + reserveAsset: [string, string]; + destination: Destination; + owner?: MultisigScript; + data?: PlutusData; + /** Absolute POSIX-ms timestamp the staked yield diffuses until. */ + diffusionEnd?: bigint; + /** Diffusion window length (ms) from order-creation time. */ + diffusionDurationMs?: bigint; + }): Promise { + if (params.principal < 0n) { + throw new Error("Deposit principal must be non-negative"); + } + if (params.principal === 0n && params.yield === 0n) { + throw new Error("Deposit must have non-zero principal or yield"); + } + const settings = this.settingsConfig(await this.getVersionSettings()); + const ra = findReserveAsset(settings, params.reserveAsset); + const reserveAssetId = Core.AssetId( + params.reserveAsset[0] + params.reserveAsset[1], + ); + + let valueToLock: Core.Value; + if (params.yield >= 0n) { + // Positive yield: lock reserve backing for BOTH principal AND yield. + const totalUSDrBacking = params.principal + params.yield; + valueToLock = + totalUSDrBacking > 0n + ? makeValue(MIN_LOVELACE, [ + reserveAssetId, + usdrToReserveCeil(totalUSDrBacking, ra), + ]) + : makeValue(MIN_LOVELACE); + } else { + // Negative yield: lock principal (reserve) + unstaked yield share (USDr). + const principalReserve = + params.principal > 0n ? usdrToReserveCeil(params.principal, ra) : 0n; + valueToLock = + principalReserve > 0n + ? makeValue(MIN_LOVELACE, [reserveAssetId, principalReserve]) + : makeValue(MIN_LOVELACE); + + const stablecoinAssetId = Core.AssetId( + this.stablecoinPolicyId + this.assetNameHex, + ); + const { parsedTreasuryDatum } = await this.getTreasuryDatum(); + const vaultUtxo = (await this.getVaultDatum()).vaultUtxo; + const vaultUSDr = + vaultUtxo.output().amount().multiasset()?.get(stablecoinAssetId) ?? 0n; + const { unstakedYieldShare } = calculateYieldShares( + params.yield, + vaultUSDr, + parsedTreasuryDatum.circulating_supply, + ); + if (unstakedYieldShare < 0n) { + valueToLock = Value.merge( + valueToLock, + makeValue(0n, [stablecoinAssetId, -unstakedYieldShare]), + ); + } + } + + // Typed as the v1_1 action (carries diffusion_end); assignable to the + // family's v1_0 action param since the extra field is additive. + const action: OrderActionV1 = { + ODeposit: { + principal: params.principal, + yield: params.yield, + diffusion_end: this.resolveDiffusionEnd(params), + reserve_asset: params.reserveAsset, + }, + }; + + return this._buildOrderTx({ + action, + valueToLock, + owner: params.owner, + destination: params.destination, + data: params.data, + }); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Execution validity / diffusion rate time + // ───────────────────────────────────────────────────────────────────────────── + + override async buildExecuteOrdersTx( + params: Parameters< + RealfiSDKV1Family["buildExecuteOrdersTx"] + >[0], + ): Promise { + // Pin both execution bounds once and align them to integer slots. The + // backed-off lower bound drives diffusion_start and rate math; the upper + // bound stays relative to unshifted wall time so skew protection does not + // shorten the configured forward window. + const provider = this.blaze.provider; + const wallNowMs = slotAlignedTimeMs(provider, this.nowFn()); + this.executionNowMs = slotAlignedTimeMs( + provider, + wallNowMs - this.executionClockBackoffMs, + ); + this.executionValidUntilMs = slotAlignedTimeMs( + provider, + wallNowMs + this.executionValidityWindowMs, + ); + try { + return await super.buildExecuteOrdersTx(params); + } finally { + this.executionNowMs = undefined; + this.executionValidUntilMs = undefined; + } + } + + protected override async applyExecutionValidityBounds( + tx: TxBuilder, + context: IExecutionValidityContext, + ): Promise { + const nowMs = this.executionNowMs; + const validUntilMs = this.executionValidUntilMs; + if (nowMs === undefined || validUntilMs === undefined) { + return; + } + const { actionType, parsedVaultDatum } = context; + + // Deposit always reads the diffusion rate time once a window is requested + // or already active; setting bounds unconditionally on deposit is safe + // (the validator only caps the span when it reads it). Stake/unstake need + // bounds only when a diffusion window is active. + const needsBounds = + actionType === "deposit" || + ((actionType === "stake" || actionType === "unstake") && + (parsedVaultDatum?.pending_yield ?? 0n) > 0n); + if (!needsBounds) { + return; + } + + // Both bounds are already slot-aligned times, but go through `slotFloor` + // anyway: it is the only conversion allowed to reach the tx builder, and it + // guarantees an integer slot (the CBOR writer would silently truncate a + // fractional one, putting a different value on-chain than the datum's). + tx.setValidFrom(slotFloor(this.blaze.provider, nowMs)); + tx.setValidUntil(slotFloor(this.blaze.provider, validUntilMs)); + } + + // ───────────────────────────────────────────────────────────────────────────── + // Helpers + // ───────────────────────────────────────────────────────────────────────────── + + /** + * The diffusion rate timestamp (POSIX ms): the pinned execution time during + * an execution build, else the current wall-clock time (used by order-build + * min-received estimation, where an exact rate time is not yet knowable). + */ + private rateTimeMs(): bigint { + return this.executionNowMs ?? this.nowFn(); + } + + private resolveDiffusionEnd(params: { + diffusionEnd?: bigint; + diffusionDurationMs?: bigint; + }): bigint { + if (params.diffusionEnd !== undefined) { + return params.diffusionEnd; + } + const duration = + params.diffusionDurationMs ?? this.defaultDiffusionDurationMs; + return duration !== undefined ? this.nowFn() + duration : 0n; + } + + /** + * Surface a diffusion-window shortfall on a deposit execution. + * + * `diffusion_end` is absolute and fixed at ORDER CREATION, so waiting to + * execute (batching, cold/multisig signing) eats the window. Once it is gone, + * `validate_deposit_diffusion` (utilities.ak:1117) zeroes the window and the + * deposit settles instantly — a VALID on-chain outcome, so the tx succeeds and + * nothing else in the stack complains. This is the only place that sees it: + * the operator would otherwise have to read the resulting vault datum. + * + * Advisory by default; {@link IRealfiSDKParamsV1_1Rc1.throwOnDiffusionWindowShortfall} + * turns it into a refusal. + */ + private checkDiffusionWindow( + vaultIn: VaultDatumV1, + ctx: { stakedYieldShare: bigint; totalYield: bigint }, + windowEndMs: bigint, + nowMs: bigint, + ): void { + // A loss freezes the window rather than collapsing it (utilities.ak:1143). + if (ctx.totalYield < 0n) { + return; + } + // What the vault still owes the exchange rate — NOT `pending_yield`, which + // keeps its original value in the datum until a tx rewrites it and so stays + // positive long after the window has run its course. Only an unfinished + // window has anything left to lose. + const pendingLeftUsdr = pendingRemaining(vaultIn, nowMs); + // No window requested and nothing left owed: the validator zeroes the datum + // as its benign no-op case (utilities.ak:1128) — either a plain instant + // deposit, or bookkeeping cleanup after a window ran to completion. + if (windowEndMs <= 0n && pendingLeftUsdr <= 0n) { + return; + } + // Nothing to diffuse: no staked share arriving and nothing still owed. + if (ctx.stakedYieldShare <= 0n && pendingLeftUsdr <= 0n) { + return; + } + + const remainingMs = windowEndMs - nowMs; + let message: string; + if (windowEndMs > 0n) { + if (remainingMs > this.diffusionShortfallThresholdMs) { + return; + } + // Distinct outcomes: a lapsed window collapses to instant, while a + // near-lapsed one still opens and diffuses over what is left. + if (remainingMs <= 0n) { + message = + `deposit diffusion window lapsed ${-remainingMs}ms before execution ` + + `(diffusion_end=${windowEndMs}, execution time=${nowMs}); the staked ` + + `yield settles INSTANTLY instead of diffusing. Re-create the order ` + + `with a longer window to diffuse it.`; + } else { + message = + `deposit diffusion window has only ${remainingMs}ms left at ` + + `execution (diffusion_end=${windowEndMs}); the staked yield diffuses ` + + `over that remainder.`; + } + } else { + // No window requested while one is unfinished: the validator clears the + // active window instead of carrying it (utilities.ak:1128-1136). + message = + `deposit requests no diffusion window while ${pendingLeftUsdr} USDr has ` + + `not yet diffused (of ${vaultIn.pending_yield} pending, at execution ` + + `time ${nowMs}); the active window is CLEARED and that remainder ` + + `settles instantly.`; + } + + const text = `[realfi-sdk] ${message}`; + if (this.throwOnDiffusionWindowShortfall) { + throw new Error(text); + } + console.warn(text); + } + + // ─────────────────────────────────────────────────────────────────────────── + // In-place v1_0 → v1_1_rc1 upgrade: vault-datum migration (MigrateState) + // ─────────────────────────────────────────────────────────────────────────── + + /** + * Deploy the migration validator as a reference script. Required before its + * withdrawal can be attached in {@link buildMigrateStateTx}. + */ + async deployMigration(): Promise { + return deployScript( + this.blaze, + this.migrationScript, + this.scriptDeploymentAddress, + ); + } + + /** + * Register the migration validator's stake credential. Its withdrawal cannot + * be exercised until the stake credential is registered. + */ + registerMigrationStake(): TxBuilder { + return this.blaze + .newTransaction() + .addRegisterStake(credentialFromScript(this.migrationScript)); + } + + /** + * Read the staking-vault UTxO holding a legacy v1_0 (one-field) datum. The + * inherited {@link getVaultDatum} parses the four-field v1_1 schema and THROWS + * on a pre-migration vault, so the migration path reads the input with the + * v1_0 single-field schema (`circulating_susdr` only). + */ + private async readLegacyVaultDatum(): Promise<{ + vaultUtxo: Core.TransactionUnspentOutput; + circulatingSusdr: bigint; + }> { + const { utxo, parsedDatum } = await getDatumFromNFT( + this.blaze, + this.stakingVaultNFTAssetId, + V1_0Types.VaultDatumV1, + ); + const legacy = parsedDatum as V1_0Types.VaultDatumV1; + return { vaultUtxo: utxo, circulatingSusdr: legacy.circulating_susdr }; + } + + /** + * Build the COSE payload for a `MigrateState` action. Unlike the order path + * (whose nonce derives from the sorted order inputs), migration spends the + * vault UTxO, so the nonce is anchored to the vault input. Returns the CBOR + * payload (for {@link buildMigrateStateTx}) and its blake2b-256 hash (for + * CIP-30 signing by the `permissions.migrate` signer(s)). + */ + async getMigrateStatePayload(): Promise<{ + signedPayload: string; + payloadHash: string; + }> { + const { vaultUtxo } = await this.readLegacyVaultDatum(); + const nonce = buildNonceFromUtxo(vaultUtxo.input()); + // The family signing-schema key is v1_0-typed at compile time (its action + // union predates MigrateState), but the runtime schema is the v1_1 one whose + // ProtocolRedeemerV1 includes the MigrateState literal (ctor 8). Cast the + // payload to the family payload type the serializer expects. + const payload = { action: "MigrateState", nonce } as unknown as Parameters< + RealfiSDKV1Family< + P, + W, + SettingsV1, + VaultDatumV1 + >["serializeOrchestratorWithdrawalRedeemer"] + >[0]["payload"]; + const serialized = Data.serialize( + this.signing.SignedPayload_ProtocolRedeemerV1, + payload, + ); + const signedPayload = serialized.toCbor().toString(); + const payloadHash = blake2b_256(HexBlob(signedPayload)); + return { signedPayload, payloadHash }; + } + + /** + * Build the in-place vault-datum migration transaction (`MigrateState`). Spends + * the staking-vault UTxO (still holding the v1_0 one-field datum) and re-locks + * it at the SAME address and value with the four-field v1_1 datum + * (`circulating_susdr` preserved, diffusion window zeroed). Operator-only — not + * on the partner surface, like {@link buildExecuteOrdersTx}. + * + * Requires (per `protocol_migration_v1_0_to_v1_1.ak` + the orchestrator's + * MigrateState branch): the migration validator deployed + stake-registered, + * `registry.migration = Some(migrationScriptHash)` in the live settings, and + * `signatures` = the `permissions.migrate` COSE signatures over the payload + * hash from {@link getMigrateStatePayload}. + */ + async buildMigrateStateTx(params: { + signedPayload: string; + signatures: Tuple_VerificationKey_COSESign1[]; + }): Promise { + const signedPayload = parse( + this.signing.SignedPayload_ProtocolRedeemerV1, + PlutusData.fromCbor(HexBlob(params.signedPayload)), + ) as Parameters< + RealfiSDKV1Family< + P, + W, + SettingsV1, + VaultDatumV1 + >["serializeOrchestratorWithdrawalRedeemer"] + >[0]["payload"]; + + const { vaultUtxo, circulatingSusdr } = await this.readLegacyVaultDatum(); + + // Reference inputs: orchestrator + staking-vault + migration scripts, plus + // the proxy datum (read as a reference input, never spent). + const refInputs = await this.getScriptReferenceInputs({ + protocol: this.protocolScriptHash, + stakingVault: this.stakingVaultScriptHash, + migration: this.migrationScriptHash, + }); + const { proxyUtxo } = await this.getParsedProxyDatum(); + + // Fee inputs: wallet UTxOs minus the vault (a script input), the proxy, and + // every reference input (regular and reference inputs must be disjoint). + const walletUtxos = await this.blaze.wallet.getUnspentOutputs(); + const utxoKey = (inp: Core.TransactionInput) => + `${inp.transactionId().toString()}#${inp.index().toString()}`; + const excluded = new Set([ + utxoKey(vaultUtxo.input()), + utxoKey(proxyUtxo.input()), + ]); + for (const ref of Object.values(refInputs)) { + if (ref) { + excluded.add(utxoKey(ref.input())); + } + } + const feeUtxos = walletUtxos.filter( + (u) => !excluded.has(utxoKey(u.input())), + ); + + // Vault input index in the ledger-sorted input set (txHash, then index). + const sortedInputRefs = [ + vaultUtxo.input(), + ...feeUtxos.map((u) => u.input()), + ].sort((a, b) => { + const txA = a.transactionId().toString(); + const txB = b.transactionId().toString(); + if (txA < txB) return -1; + if (txA > txB) return 1; + return Number(a.index()) - Number(b.index()); + }); + const vaultInputIdx = BigInt( + sortedInputRefs.findIndex( + (r) => + r.transactionId().toString() === + vaultUtxo.input().transactionId().toString() && + r.index() === vaultUtxo.input().index(), + ), + ); + + // Migrated datum: preserve circulating_susdr, zero the diffusion window (no + // pending yield at migration time). The vault output is the first output the + // builder adds, so its index is 0 (change outputs are appended after). + const migratedDatum: VaultDatumV1 = { + circulating_susdr: circulatingSusdr, + pending_yield: 0n, + diffusion_start: 0n, + diffusion_end: 0n, + }; + + // No order requests travel in a migration; the request/treasury indices are + // dummies (the migration branch reads only the vault indices). + const extra: Parameters< + RealfiSDKV1Family< + P, + W, + SettingsV1, + VaultDatumV1 + >["serializeOrchestratorWithdrawalRedeemer"] + >[0]["extra"] = { + request_to_outputs: [], + input_to_requests: [], + treasury_input_idx: 0n, + treasury_output_idx: 0n, + vault_input_idx: vaultInputIdx, + vault_output_idx: 0n, + }; + + const orchestratorRedeemer = this.serializeOrchestratorWithdrawalRedeemer({ + extra, + payload: signedPayload, + signatures: params.signatures, + }); + + const tx = this.newOrderTransaction(); + + // Spend the vault with DeferToProtocol (Void); the vault script resolves + // from the staking-vault reference input. + tx.addInput(vaultUtxo, Data.Void()); + for (const feeUtxo of feeUtxos) { + tx.addInput(feeUtxo); + } + + tx.addReferenceInput(refInputs.protocol!); + tx.addReferenceInput(refInputs.stakingVault!); + tx.addReferenceInput(refInputs.migration!); + tx.addReferenceInput(proxyUtxo); + + // Re-lock exactly one vault output at the SAME address (payment + stake) and + // the SAME value, no reference script, carrying the four-field datum. + tx.lockAssets( + vaultUtxo.output().address(), + vaultUtxo.output().amount(), + Data.serialize(this.schemas.VaultDatumV1, migratedDatum), + ); + + // Orchestrator withdrawal carries the ExecuteOrders(MigrateState) redeemer + // plus the permissions.migrate COSE signatures. + tx.addWithdrawal( + Core.RewardAccount.fromCredential( + { type: Core.CredentialType.ScriptHash, hash: this.protocolScriptHash }, + this.network, + ), + 0n, + orchestratorRedeemer, + ); + // Migration validator withdrawal (Void); enforces the migration tx shape. + tx.addWithdrawal( + Core.RewardAccount.fromCredential( + { + type: Core.CredentialType.ScriptHash, + hash: this.migrationScriptHash, + }, + this.network, + ), + 0n, + Data.Void(), + ); + + return tx; + } +} + +/** Re-exported for parity with the sibling version modules. */ +export { MAX_DIFFUSION_RATE_SPAN_MS }; diff --git a/modules/realfi-partner-sdk/src/sundae/discovery.ts b/modules/realfi-partner-sdk/src/sundae/discovery.ts new file mode 100644 index 0000000000..0b3bc9522e --- /dev/null +++ b/modules/realfi-partner-sdk/src/sundae/discovery.ts @@ -0,0 +1,195 @@ +import { + QueryProviderSundaeSwap, + SundaeUtils, + type IPoolData, + type TSupportedNetworks, +} from "@sundaeswap/core"; + +import { RealfiApi } from "../api/realfi-api.js"; +import { API_REGISTRY } from "../api/registry.js"; +import { isSwappableSundaeSwapVersion } from "./support.js"; +import { withV4CurveData } from "./v4-curve.js"; + +/** + * Which pools discovery returns, narrowing left to right: + * `curated ⊆ buildable ⊆ all`. + * + * - `all` — every pool the Sundae API returns for the asset, any version. + * - `buildable` — those the SDK can build an order *for*. Note "for", not + * "against": a V4 pool is included because the SDK places a pool-less intent + * for it, even though no order names the pool. + * - `curated` — the buildable pools whose pair RealFi has approved. + */ +export type TSundaePoolDiscoveryScope = "curated" | "buildable" | "all"; + +export interface ISundaePoolDiscoveryParams { + /** Defaults to the RealFi-approved `curated` scope. */ + scope?: TSundaePoolDiscoveryScope; +} + +export interface ISundaePoolDiscoveryOptions { + /** Overrides Sundae's endpoint while retaining the network for fee math. */ + endpoint?: string; + /** Overrides RealFi's runtime partner configuration for custom deployments. */ + partnerConfigUrl?: string; +} + +export interface ISundaePoolDiscoverySDK { + findPoolsByAsset( + assetId: string, + params?: ISundaePoolDiscoveryParams, + ): Promise; +} + +/** Internal seam for RealFi's authoritative runtime pair configuration. */ +export interface ISundaeCuratedPoolAssets { + baseAssetId: string; + counterpartAssetIds: readonly string[]; +} + +export type TSundaeCuratedPoolAssetsLoader = ( + network: TSupportedNetworks, +) => Promise; + +const SUNDAE_POOL_QUERY_RESULT_LIMIT = 50; +const SUNDAE_POOL_DISCOVERY_SCOPES: readonly TSundaePoolDiscoveryScope[] = [ + "curated", + "buildable", + "all", +]; + +function isPoolAsset(assetId: string, candidate: string): boolean { + return SundaeUtils.isAssetIdsEqual(assetId, candidate); +} + +function poolContainsAsset(pool: IPoolData, assetId: string): boolean { + return ( + isPoolAsset(pool.assetA.assetId, assetId) || + isPoolAsset(pool.assetB.assetId, assetId) + ); +} + +function deterministicUniquePools(pools: readonly IPoolData[]): IPoolData[] { + const unique = new Map(); + for (const pool of pools) { + const key = `${pool.version}\u0000${pool.ident}`; + if (!unique.has(key)) { + unique.set(key, pool); + } + } + + return [...unique.values()].sort((left, right) => { + if (left.ident !== right.ident) { + return left.ident < right.ident ? -1 : 1; + } + if (left.version === right.version) { + return 0; + } + return left.version < right.version ? -1 : 1; + }); +} + +function isCuratedPool( + pool: IPoolData, + { baseAssetId, counterpartAssetIds }: ISundaeCuratedPoolAssets, +): boolean { + const aIsBase = isPoolAsset(pool.assetA.assetId, baseAssetId); + const bIsBase = isPoolAsset(pool.assetB.assetId, baseAssetId); + const counterpartId = aIsBase + ? pool.assetB.assetId + : bIsBase + ? pool.assetA.assetId + : undefined; + + return ( + counterpartId !== undefined && + counterpartAssetIds.some((assetId) => isPoolAsset(counterpartId, assetId)) + ); +} + +/** + * Internal constructor. The loader remains behind the package export boundary + * so RealFi, not partners, owns curated pair selection. + */ +export function createPoolDiscovery( + network: TSupportedNetworks, + options: ISundaePoolDiscoveryOptions = {}, + loadCuratedPoolAssets?: TSundaeCuratedPoolAssetsLoader, +): ISundaePoolDiscoverySDK { + const queryProvider = new QueryProviderSundaeSwap(network); + if (options.endpoint !== undefined) { + queryProvider.baseUrl = options.endpoint; + } + + return { + async findPoolsByAsset( + assetId, + { scope = "curated" }: ISundaePoolDiscoveryParams = {}, + ) { + if (assetId.trim().length === 0) { + throw new Error("Sundae pool discovery requires a non-empty asset id"); + } + if (!SUNDAE_POOL_DISCOVERY_SCOPES.includes(scope)) { + throw new Error(`Unsupported Sundae pool discovery scope: ${scope}`); + } + if (scope === "curated" && !loadCuratedPoolAssets) { + throw new Error( + "Curated Sundae pool discovery requires authoritative RealFi asset configuration", + ); + } + + const curatedAssets = + scope === "curated" ? await loadCuratedPoolAssets!(network) : undefined; + const rawPools = await queryProvider.findPoolDataByAssetId(assetId); + // Sundae's byAsset query has no pagination arguments. Treat the gateway's + // 50-result boundary as incomplete rather than silently hiding pools. + if (rawPools.length >= SUNDAE_POOL_QUERY_RESULT_LIMIT) { + throw new Error( + `Sundae pool discovery returned ${rawPools.length} pools for ${assetId}; results may be truncated`, + ); + } + + // Before any scope filter, so `all` carries the curve data too. Retires + // itself once Sundae's own query selects these fields — see v4-curve.ts. + const all = await withV4CurveData( + deterministicUniquePools(rawPools), + assetId, + queryProvider.baseUrl, + ); + if (scope === "all") { + return all; + } + + // `swap`, not `buildAgainstPool` — see TSundaePoolDiscoveryScope. The + // narrower capability would hide V4 from `curated` too, since that is + // derived from this. + const buildable = all.filter( + (pool) => + isSwappableSundaeSwapVersion(pool.version) && + poolContainsAsset(pool, assetId), + ); + if (scope === "buildable") { + return buildable; + } + + return buildable.filter((pool) => isCuratedPool(pool, curatedAssets!)); + }, + }; +} + +/** RealFi-owned runtime curation used by the public network factory. */ +export function createRuntimeCuratedPoolAssetsLoader( + partnerConfigUrl?: string, +): TSundaeCuratedPoolAssetsLoader { + return async (network) => { + const api = RealfiApi.create({ + ...API_REGISTRY[network], + ...(partnerConfigUrl === undefined ? {} : { partnerConfigUrl }), + }); + const config = await api.getPartnerConfig(); + return { + baseAssetId: config.stablecoinAssetId, + counterpartAssetIds: config.swapCounterpartAssets, + }; + }; +} diff --git a/modules/realfi-partner-sdk/src/sundae/index.ts b/modules/realfi-partner-sdk/src/sundae/index.ts new file mode 100644 index 0000000000..e70c2ce521 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sundae/index.ts @@ -0,0 +1,808 @@ +import { + Core, + type Blaze, + type Provider, + type TxBuilder as BlazeTxBuilder, + type Wallet, +} from "@blaze-cardano/sdk"; +import { AssetAmount, type IAssetAmountMetadata } from "@sundaeswap/asset"; +import { + BlazeHelper, + EContractVersion, + EDatumType, + EPoolCurve, + ESwapType, + SundaeSDK, + SundaeUtils, + type IComposedTx, + type IPoolData, + type ISwapConfigArgs, + type TDestinationAddress, + type TOrderAddressesArgs, + type TSupportedNetworks, + type TSwapType, +} from "@sundaeswap/core"; + +// Keep the partner construction surface self-contained. Consumers can build +// swap inputs through `SundaeSwap` without importing our implementation +// dependencies directly. +export { AssetAmount, EContractVersion, EDatumType, EPoolCurve, ESwapType }; +export type { + IAssetAmountMetadata, + IPoolData, + ISwapConfigArgs, + TDestinationAddress, + TSwapType, +}; + +import type { IBuildStakeContinuationParams } from "../sdk/v1/family.js"; +import { + addressToRealFiDestination, + plutusDataFromCbor, + realfiOwnerFromSundaeV3OwnerAddress, + sundaeV3DestinationAddressFromStepResult, +} from "../tx-builder/destination.js"; +import type { RealFiDestinationDatum } from "../tx-builder/destination.js"; +import type { StakeContinuationBuilder } from "../tx-builder/registry.js"; +import { + createPoolDiscovery, + createRuntimeCuratedPoolAssetsLoader, + type ISundaePoolDiscoveryOptions, + type ISundaePoolDiscoverySDK, +} from "./discovery.js"; +import { + assertSupportedSundaeSwapPool, + assertSwappableSundaeSwapPool, +} from "./support.js"; + +export type { + ISundaePoolDiscoveryOptions, + ISundaePoolDiscoveryParams, + ISundaePoolDiscoverySDK, + TSundaePoolDiscoveryScope, +} from "./discovery.js"; +export { + assertSupportedSundaeSwapPool, + assertSwappableSundaeSwapPool, + isSupportedSundaeSwapVersion, + isSwappableSundaeSwapVersion, + SUPPORTED_SUNDAE_SWAP_VERSIONS, + SWAPPABLE_SUNDAE_SWAP_VERSIONS, + type TSundaeSwapVersion, + type TSwappableSundaeSwapVersion, +} from "./support.js"; + +export interface ISundaeSwapQuoteParams { + pool: IPoolData; + suppliedAsset: AssetAmount; + /** Decimal fraction: `0.01` is 1%. No application default is applied. */ + slippage: number; +} + +export interface ISundaeSwapQuote { + estimatedReceived: AssetAmount; + minReceived: AssetAmount; + /** Decimal fraction: `0.01` is 1%. */ + priceImpact: number; +} + +export interface ISundaeSwapInputQuoteParams { + pool: IPoolData; + /** The amount the owner wants to receive. */ + desiredOutput: AssetAmount; +} + +export interface ISundaeSwapInputQuote { + /** The smallest supply that still yields `desiredOutput`. */ + requiredInput: AssetAmount; +} + +export type TSundaeSwapOrder = IComposedTx; + +export type TSundaeOwnedSwapConfigArgs = Omit< + ISwapConfigArgs, + "ownerAddress" | "orderAddresses" +> & { + ownerAddress: string; + /** Final recipient and optional cancellation address; not a Sundae order route. */ + orderAddresses: Omit; +}; + +export interface ISundaeSwapToStakeParams { + sdk: StakeContinuationBuilder; + swap: TSundaeOwnedSwapConfigArgs; + stake?: Omit; +} + +/** + * A V4 swap intent: an offer and a floor, naming no pool. + * + * `referralFee` is deliberately not surfaced — no RealFi path takes one. + */ +export interface ISundaeSwapIntentParams { + /** Bech32 owner: the cancel authority and the default payout destination. */ + ownerAddress: string; + /** What the owner pays into the swap. */ + offered: AssetAmount; + /** + * The floor the fill must clear, and the owner's only guarantee: the surplus + * above it is unbound on-chain, so the scooper keeps whatever the fill clears + * it by. Take it from {@link quoteSwap}; never slacken it to help an order + * fill. + */ + minReceived: AssetAmount; + /** Final recipient. Defaults to a fixed destination at `ownerAddress`. */ + destination?: TDestinationAddress | "Self"; + /** Lifetime service-fee allocation, in lovelace. */ + budget?: bigint; + /** + * Per-scoop fee cap, in lovelace — also the scooper's routing fan-out budget + * (`maxPerExecution / costPerPool` pools). Too small and the order cannot be + * routed at all; a fill spanning more of the pair's pools needs more of it. + */ + maxPerExecution?: bigint; + /** + * The OrderConfig settings entry this order fulfills. Resolved from the + * protocol query when omitted — but that query returns nothing on a + * deployment whose API does not serve settings yet, so it stays passable. + */ + configToken?: string; +} + +export interface ISundaeSwapSDK { + quoteSwap(params: ISundaeSwapQuoteParams): ISundaeSwapQuote; + quoteSwapInput(params: ISundaeSwapInputQuoteParams): ISundaeSwapInputQuote; + buildSwapOrderTx(params: ISwapConfigArgs): Promise; + /** V4 only: a pool-less intent. See {@link buildSwapIntentTx}. */ + buildSwapIntentTx(params: ISundaeSwapIntentParams): Promise; + buildSwapToStakeOrderTx( + params: ISundaeSwapToStakeParams, + ): Promise; +} + +/** Creates a network-scoped, Blaze-free Sundae pool discovery adapter. */ +export function forNetwork( + network: TSupportedNetworks, + options: ISundaePoolDiscoveryOptions = {}, +): ISundaePoolDiscoverySDK { + return createPoolDiscovery( + network, + options, + createRuntimeCuratedPoolAssetsLoader(options.partnerConfigUrl), + ); +} + +function canonicalizePoolAsset( + pool: IPoolData, + asset: AssetAmount, +): AssetAmount { + const metadata = [pool.assetA, pool.assetB].find((poolAsset) => + SundaeUtils.isAssetIdsEqual(poolAsset.assetId, asset.metadata.assetId), + ); + + if (!metadata) { + throw new Error( + `Asset is not part of the Sundae swap pool: ${asset.metadata.assetId}`, + ); + } + + return new AssetAmount(asset.amount, metadata); +} + +function oppositePoolAsset( + pool: IPoolData, + suppliedAsset: AssetAmount, +): IAssetAmountMetadata { + return suppliedAsset.metadata.assetId === pool.assetA.assetId + ? pool.assetB + : pool.assetA; +} + +function canonicalizeSwapType( + pool: IPoolData, + suppliedAsset: AssetAmount, + swapType: TSwapType, +): TSwapType { + if (swapType.type === ESwapType.MARKET) { + return swapType; + } + + const minReceivable = canonicalizePoolAsset(pool, swapType.minReceivable); + const expectedAsset = oppositePoolAsset(pool, suppliedAsset); + if (minReceivable.metadata.assetId !== expectedAsset.assetId) { + throw new Error( + `Sundae LIMIT minimum must use the pool asset opposite the supplied asset: ${expectedAsset.assetId}`, + ); + } + + return { ...swapType, minReceivable }; +} + +function assertValidSlippage(slippage: number): void { + if (!Number.isFinite(slippage) || slippage < 0 || slippage > 1) { + throw new Error( + "Sundae swap slippage must be a finite number between 0 and 1 inclusive", + ); + } +} + +function decimalFraction(value: number): { + numerator: bigint; + denominator: bigint; +} { + const [coefficient = "0", exponentText] = value + .toString() + .toLowerCase() + .split("e"); + const exponent = Number(exponentText ?? 0); + const [whole, fraction = ""] = coefficient.split("."); + const digits = BigInt(`${whole}${fraction}`); + const scale = fraction.length - exponent; + + return scale > 0 + ? { numerator: digits, denominator: 10n ** BigInt(scale) } + : { numerator: digits * 10n ** BigInt(-scale), denominator: 1n }; +} + +function ceilDiv(numerator: bigint, denominator: bigint): bigint { + return numerator === 0n ? 0n : (numerator + denominator - 1n) / denominator; +} + +/** + * Applies the caller's decimal slippage to an integer quote without coercing + * the quote to a JavaScript number. Sundae's helper performs that coercion, + * which can weaken large minimums after `Number.MAX_SAFE_INTEGER`. + */ +function minReceivableFromSlippage( + output: bigint, + receivedAsset: IAssetAmountMetadata, + slippage: number, +): AssetAmount { + const { numerator, denominator } = decimalFraction(slippage); + const remaining = denominator - numerator; + const amount = ceilDiv(output * remaining, denominator); + + return new AssetAmount(amount, receivedAsset); +} + +/** + * Why this fee cannot quote a constant-sum swap, or undefined if it can. + * + * At a fee of 1 the forward quote settles to nothing and the inverse divides by + * zero; above 1 the forward quote goes negative. The bound matches + * `ConstantSumPool.getSwapInput`'s own `[0, 1)` — the forward direction + * tolerates exactly 1, but a pool taking the whole trade is not one we should be + * quoting either way. + */ +function feeRefusal(currentFee: number): string | undefined { + if (!Number.isFinite(currentFee) || currentFee < 0 || currentFee >= 1) { + return `Sundae constant-sum swap requires a fee in [0, 1); got ${currentFee}`; + } + return undefined; +} + +/** + * The positive-amount rule matches what V3 and Stableswaps already enforce + * through Sundae's "Input and reserves must be positive"; V4 was the only + * version that quietly returned zero instead. + */ +function assertQuotableConstantSum(amount: bigint, currentFee: number): void { + if (amount <= 0n) { + throw new Error("Sundae constant-sum swap requires a positive amount"); + } + const refusal = feeRefusal(currentFee); + if (refusal) { + throw new Error(refusal); + } +} + +/** + * Settles a V4 (constant-sum) swap the way Sundae's own engine does: + * + * output = offered − floor(offered × fee) + * + * That is `ConstantSumPool.getSwapOutput` from `@sundaeswap/math` specialised to + * equal per-asset prices, not an approximation of it. We cannot call + * `SundaeUtils.getSwapOutput` for V4 because it dispatches on `pool.curve`, and + * the Sundae API populates neither `curve` nor `prices` — it would fall through + * to `Unsupported v4 pool curve: undefined`. + * + * The rate comes from `currentFee`'s exact decimal expansion rather than a float + * product: past `Number.MAX_SAFE_INTEGER` a float drops the low digits and + * shifts the result, the same hazard {@link minReceivableFromSlippage} avoids. + * + * `priceWeight` is the pool's per-asset constant-sum price, which both assets of + * a supported pool share. It cannot be divided out: the fee is floored at the + * *scaled* value and the quotient is floored again, so the two roundings only + * collapse into one at a weight of `1`. At a weight of `2`, offering `1999` at a + * fee of `0.001` settles to `1997`, where dividing out would say `1998` — and + * since this figure also becomes `minReceived`, the higher answer would leave a + * floor the fill can never clear. + * + * Deliberately does NOT cap the output at the pool's reserve. `ConstantSumPool` + * caps, because it prices one specific pool; a V4 order names no pool, so + * capping here would silently lower `minReceived` — the owner's only guarantee — + * whenever a large order is quoted against a shallow pool. + */ +function constantSumSwapOutput( + offered: bigint, + currentFee: number, + priceWeight: bigint, +): bigint { + assertQuotableConstantSum(offered, currentFee); + + const { numerator, denominator } = decimalFraction(currentFee); + const offeredValue = offered * priceWeight; + const feeValue = (offeredValue * numerator) / denominator; + + return (offeredValue - feeValue) / priceWeight; +} + +/** + * Quotes a V4 swap. `slippage` is validated by {@link quoteSwap} and then + * ignored: a constant-sum pool has no price movement to buffer against, and — + * decisively — the surplus above `min_received` is unbound on-chain, so slack in + * the floor is not a safety margin, it is directly skimmable by the scooper. + * `estimatedReceived` and `minReceived` are therefore the same figure. + * + * Assumes the pool weights its two assets equally. That precondition is + * unverifiable from the API, which never serves `prices`; the matching-decimals + * half of it is checked here, and the pools RealFi trades satisfy both. + */ +/** + * Why this pool cannot be priced as an equal-weight constant-sum pool, or + * undefined if it can. {@link constantSumPriceWeight} throws it and + * {@link selectV4QuotePool} filters on it, so the two cannot drift apart. + */ +function constantSumRefusal(pool: IPoolData): string | undefined { + // A V4 pool's swap math follows its invariant module, not its contract + // version, so "V4" alone does not mean constant-sum. Nor does an absent + // `curve`: that means whoever fetched the pool did not ask for it, which is + // not evidence of anything. Pool discovery asks; Sundae's own query provider + // does not. + if (pool.curve !== EPoolCurve.ConstantSum) { + return ( + `Sundae V4 pool ${pool.ident} is not known to be ${EPoolCurve.ConstantSum} ` + + `(curve: ${pool.curve ?? "unknown"}). Resolve pools through pool ` + + `discovery, which supplies the curve.` + ); + } + // Same story for `prices`: absent means unasked, not 1:1. Unequal weights need + // the two-price form of the constant-sum formula and a reserve orientation + // this quote does not model; equal weights of any magnitude are handled, and + // carried into the arithmetic rather than divided out. + if (pool.prices === undefined) { + return ( + `Sundae V4 pool ${pool.ident} declares no price weights. Resolve pools ` + + `through pool discovery, which supplies them.` + ); + } + const [priceIn, priceOut] = pool.prices; + if (priceIn !== priceOut) { + return ( + `Sundae V4 pool ${pool.ident} weights its assets ` + + `${priceIn}:${priceOut}; only equal weights are priced here` + ); + } + if (priceIn <= 0n) { + return `Sundae V4 pool ${pool.ident} declares a non-positive price weight`; + } + // Decimals stand in for the price weights we usually cannot see: a 1:1 + // constant-sum pair settles raw amounts one-for-one only at equal scale. + if (pool.assetA.decimals !== pool.assetB.decimals) { + return ( + `Sundae V4 pool ${pool.ident} pairs assets of differing decimals ` + + `(${pool.assetA.decimals} and ${pool.assetB.decimals}); the 1:1 ` + + `constant-sum assumption does not hold` + ); + } + return undefined; +} + +function constantSumPriceWeight(pool: IPoolData): bigint { + const refusal = constantSumRefusal(pool); + if (refusal) { + throw new Error(refusal); + } + return pool.prices![0]; +} + +/** + * Stricter than the quote, deliberately: a swap form trades both ways against + * the one pool it selected, so both reserves must be usable, where a single + * quote only checks the side it pays out. + */ +function isSelectableV4Pool(pool: IPoolData): boolean { + return ( + constantSumRefusal(pool) === undefined && + feeRefusal(pool.currentFee) === undefined && + pool.liquidity.aReserve > 0n && + pool.liquidity.bReserve > 0n + ); +} + +/** + * Picks the V4 pool whose fee should quote a swap, ignoring any non-V4 pool in + * `pools` and any V4 pool {@link quoteSwap} would refuse. Undefined when none + * qualifies, which means the caller should fall back to another version. + * + * A V4 order names no pool, so this routes nothing — it only decides whose fee + * sets `min_received`. Cheapest is both the best rate and the safer pick: the + * floor is the owner's only guarantee, and a pool overstating its fee would drag + * it down into territory a scooper can fill cheaply and pocket the difference. + * A hostile pool can therefore only win by genuinely being the cheapest. + * + * Selection lives here rather than in the caller so that the eligibility rules + * have one home. `SundaeUtils.getBestPoolBySwapOutcome` is the equivalent for + * the other versions and cannot be used: it calls `getSwapOutput`, which throws + * on a V4 pool. + */ +export function selectV4QuotePool(pools: IPoolData[]): IPoolData | undefined { + return pools + .filter( + (pool) => + pool.version === EContractVersion.V4 && isSelectableV4Pool(pool), + ) + .reduce< + IPoolData | undefined + >((best, pool) => (best === undefined || pool.currentFee < best.currentFee ? pool : best), undefined); +} + +function quoteConstantSumSwap( + pool: IPoolData, + suppliedAsset: AssetAmount, + receivedAsset: IAssetAmountMetadata, + outputReserve: bigint, +): ISundaeSwapQuote { + const priceIn = constantSumPriceWeight(pool); + if (outputReserve <= 0n) { + throw new Error( + `Sundae V4 pool ${pool.ident} holds no ${receivedAsset.assetId} to swap into`, + ); + } + + const output = constantSumSwapOutput( + suppliedAsset.amount, + pool.currentFee, + priceIn, + ); + + return { + estimatedReceived: new AssetAmount(output, receivedAsset), + minReceived: new AssetAmount(output, receivedAsset), + priceImpact: 0, + }; +} + +/** + * Quotes a market swap for any swappable pool version. Callers do not branch on + * `pool.version`; this does. + * + * V3 / Stableswaps use Sundae's own pool math with the caller's slippage applied + * at bigint precision. V4 is constant-sum — see {@link quoteConstantSumSwap} for + * why its quote is exact, why `priceImpact` is `0`, and why `slippage` is + * ignored there. + */ +export function quoteSwap({ + pool, + suppliedAsset, + slippage, +}: ISundaeSwapQuoteParams): ISundaeSwapQuote { + assertSwappableSundaeSwapPool(pool); + assertValidSlippage(slippage); + + const canonicalSuppliedAsset = canonicalizePoolAsset(pool, suppliedAsset); + const receivesAssetA = SundaeUtils.isAssetIdsEqual( + pool.assetB.assetId, + canonicalSuppliedAsset.metadata.assetId, + ); + const receivedAsset = receivesAssetA ? pool.assetA : pool.assetB; + + if (pool.version === EContractVersion.V4) { + return quoteConstantSumSwap( + pool, + canonicalSuppliedAsset, + receivedAsset, + receivesAssetA ? pool.liquidity.aReserve : pool.liquidity.bReserve, + ); + } + + const outcome = SundaeUtils.getSwapOutput(pool, canonicalSuppliedAsset); + + return { + estimatedReceived: new AssetAmount(outcome.output, receivedAsset), + minReceived: minReceivableFromSlippage( + outcome.output, + receivedAsset, + slippage, + ), + priceImpact: outcome.priceImpact.toNumber(), + }; +} + +/** + * The smallest constant-sum supply that still yields `output`. + * + * Mirrors `ConstantSumPool.getSwapInput`. Not a plain gross-up: the forward + * settlement is `ceil(input·price·(feeDen−feeNum)/feeDen)`, and that clears + * `output·price` exactly when the numerator reaches `feeDen·(target−1)+1`, so + * the `−1n` is what keeps the answer minimal rather than a unit high. + */ +function constantSumSwapInput( + output: bigint, + currentFee: number, + priceWeight: bigint, +): bigint { + // Reasserted here even though `quoteSwapInput` checks the amount: this is + // where a fee of 1 would divide by zero, and the raw error would name the + // division rather than the fee that caused it. + assertQuotableConstantSum(output, currentFee); + + const { numerator: feeNum, denominator: feeDen } = + decimalFraction(currentFee); + const targetValue = output * priceWeight; + const numerator = feeDen * (targetValue - 1n) + 1n; + const denominator = (feeDen - feeNum) * priceWeight; + + return (numerator + denominator - 1n) / denominator; +} + +/** + * Quotes the supply needed to receive `desiredOutput`, for any swappable pool + * version. The inverse of {@link quoteSwap}, and the direction a swap form needs + * when the user edits the receive field rather than the pay field. + */ +export function quoteSwapInput({ + pool, + desiredOutput, +}: ISundaeSwapInputQuoteParams): ISundaeSwapInputQuote { + assertSwappableSundaeSwapPool(pool); + + const canonicalDesiredOutput = canonicalizePoolAsset(pool, desiredOutput); + const suppliedAsset = oppositePoolAsset(pool, canonicalDesiredOutput); + + if (pool.version === EContractVersion.V4) { + if (canonicalDesiredOutput.amount <= 0n) { + throw new Error("Sundae V4 swap requires a positive desired output"); + } + + return { + requiredInput: new AssetAmount( + constantSumSwapInput( + canonicalDesiredOutput.amount, + pool.currentFee, + constantSumPriceWeight(pool), + ), + suppliedAsset, + ), + }; + } + + return { + requiredInput: new AssetAmount( + SundaeUtils.getSwapInput(pool, canonicalDesiredOutput).input, + suppliedAsset, + ), + }; +} + +/** + * Builds a standalone Sundae swap order against a specific pool. + * + * V4 is quotable but not buildable here: its order carries no pool reference at + * all, so it cannot share this pool-taking argument shape. Use + * {@link buildSwapIntentTx}. + */ +export async function buildSwapOrderTx( + blaze: Blaze, + params: ISwapConfigArgs, +): Promise { + if (params.pool.version === EContractVersion.V4) { + throw new Error( + "Sundae V4 swaps are placed as pool-less intents; use buildSwapIntentTx", + ); + } + assertSupportedSundaeSwapPool(params.pool); + if (params.swapType.type === ESwapType.MARKET) { + assertValidSlippage(params.swapType.slippage); + } + + const suppliedAsset = canonicalizePoolAsset( + params.pool, + params.suppliedAsset, + ); + const swapType = canonicalizeSwapType( + params.pool, + suppliedAsset, + params.swapType, + ); + const builderSwapType: TSwapType = + swapType.type === ESwapType.MARKET + ? { + type: ESwapType.LIMIT, + minReceivable: minReceivableFromSlippage( + SundaeUtils.getSwapOutput(params.pool, suppliedAsset).output, + oppositePoolAsset(params.pool, suppliedAsset), + swapType.slippage, + ), + } + : swapType; + const canonicalParams: ISwapConfigArgs = { + ...params, + suppliedAsset, + // Convert MARKET inputs to the equivalent LIMIT input ourselves so the + // Sundae builder cannot repeat its bigint-unsafe slippage calculation. + swapType: builderSwapType, + }; + + const builder = SundaeSDK.new({ blazeInstance: blaze }).builder( + params.pool.version, + ); + return builder.swap(canonicalParams); +} + +/** + * Places a Sundae V4 swap. + * + * A V4 order is an intent: an offer and a floor, naming no pool. The scooper + * decides how to fill it — one pool, a split across the pair's pools, or a + * multi-hop chain — and `minReceived` is what bounds the result. + * + * Goes through `swapIntent` rather than `swap`: `TxBuilderV4.swap` throws by + * design, because a swap order carries the route constraint, which is outside + * the launch's audited surface. + */ +export async function buildSwapIntentTx( + blaze: Blaze, + params: ISundaeSwapIntentParams, +): Promise { + if (!params.ownerAddress) { + throw new Error( + "Sundae V4 swap requires ownerAddress so the order remains cancellable", + ); + } + if (params.offered.amount <= 0n) { + throw new Error("Sundae V4 swap requires a positive offered amount"); + } + if (params.minReceived.amount <= 0n) { + throw new Error("Sundae V4 swap requires a positive minReceived amount"); + } + if ( + SundaeUtils.isAssetIdsEqual( + params.offered.metadata.assetId, + params.minReceived.metadata.assetId, + ) + ) { + throw new Error( + "Sundae V4 swap requires the offered and received assets to differ", + ); + } + + const builder = SundaeSDK.new({ blazeInstance: blaze }).builder( + EContractVersion.V4, + ); + + // Each optional is forwarded only when supplied, so Sundae's own defaults + // apply otherwise. + return builder.swapIntent({ + ownerAddress: params.ownerAddress, + offered: params.offered, + minReceived: params.minReceived, + ...(params.destination === undefined + ? {} + : { destination: params.destination }), + ...(params.budget === undefined ? {} : { budget: params.budget }), + ...(params.maxPerExecution === undefined + ? {} + : { maxPerExecution: params.maxPerExecution }), + ...(params.configToken === undefined + ? {} + : { configToken: params.configToken }), + }); +} + +/** + * Builds a Sundae V3 or Stableswaps order whose proceeds continue into a + * version-aware RealFi stake order. The caller's original Sundae destination + * becomes the RealFi destination, so both sUSDr and any USDr above Sundae's + * guaranteed minimum continue to the intended recipient. + */ +export async function buildSwapToStakeOrderTx( + blaze: Blaze, + { sdk, swap, stake }: ISundaeSwapToStakeParams, +): Promise { + assertSupportedSundaeSwapPool(swap.pool); + if (!swap.ownerAddress) { + throw new Error( + "Sundae swap-to-stake requires ownerAddress so the swap remains cancellable", + ); + } + + // The Sundae builder validates the continuation address that replaces this + // destination. Validate the caller's original final destination first so a + // cross-network address or a script address without a datum cannot be hidden + // by composition and later receive the sUSDr/excess output incorrectly. + BlazeHelper.validateAddressAndDatumAreValid({ + ...swap.orderAddresses.DestinationAddress, + network: SundaeUtils.getNetworkFromProvider(blaze.provider.networkName), + }); + + const suppliedAsset = canonicalizePoolAsset(swap.pool, swap.suppliedAsset); + const swapType = canonicalizeSwapType( + swap.pool, + suppliedAsset, + swap.swapType, + ); + const minReceived = + swapType.type === ESwapType.LIMIT + ? swapType.minReceivable + : quoteSwap({ + pool: swap.pool, + suppliedAsset, + slippage: swapType.slippage, + }).minReceived; + + const continuation = await sdk.buildStakeContinuation({ + ...stake, + owner: + stake?.owner ?? + realfiOwnerFromSundaeV3OwnerAddress( + Core.Address.fromBech32(swap.ownerAddress).getNetworkId() === + Core.NetworkId.Mainnet + ? "mainnet" + : "preview", + swap.ownerAddress, + ), + swap: { minReceived }, + destination: realfiDestinationFromSundaeDestination( + swap.orderAddresses.DestinationAddress, + ), + }); + + return buildSwapOrderTx(blaze, { + ...swap, + orderAddresses: { + DestinationAddress: + sundaeV3DestinationAddressFromStepResult(continuation), + ...(swap.orderAddresses.AlternateAddress + ? { AlternateAddress: swap.orderAddresses.AlternateAddress } + : {}), + }, + }); +} + +/** Creates a Blaze-scoped partner swap adapter. */ +export function create(blaze: Blaze): ISundaeSwapSDK { + return { + quoteSwap, + quoteSwapInput, + buildSwapOrderTx: (params) => buildSwapOrderTx(blaze, params), + buildSwapIntentTx: (params) => buildSwapIntentTx(blaze, params), + buildSwapToStakeOrderTx: (params) => buildSwapToStakeOrderTx(blaze, params), + }; +} + +function realfiDestinationFromSundaeDestination({ + address, + datum, +}: TDestinationAddress) { + const realfiDatum: RealFiDestinationDatum = (() => { + switch (datum.type) { + case EDatumType.NONE: + return "NoDatum"; + case EDatumType.HASH: + return { DatumHash: [datum.value] }; + case EDatumType.INLINE: + return { InlineDatum: [plutusDataFromCbor(datum.value)] }; + default: { + const unreachable: never = datum; + return unreachable; + } + } + })(); + + return addressToRealFiDestination( + Core.Address.fromBech32(address), + realfiDatum, + ); +} diff --git a/modules/realfi-partner-sdk/src/sundae/support.ts b/modules/realfi-partner-sdk/src/sundae/support.ts new file mode 100644 index 0000000000..119385a952 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sundae/support.ts @@ -0,0 +1,101 @@ +import { EContractVersion, type IPoolData } from "@sundaeswap/core"; + +interface IPoolSupport { + /** We can quote this pool and place a swap for it. */ + swap: boolean; + /** + * The order names the pool, so the pool-taking `buildSwapOrderTx` accepts it. + * A V4 order is an intent that names no pool — the scooper chooses — so a V4 + * pool is swappable without this. + */ + buildAgainstPool: boolean; +} + +/** + * What the SDK can do with a pool, by Sundae contract version. + * + * Deliberately a `Record` over every version: a new Sundae version will not + * compile until someone answers both questions for it, rather than silently + * defaulting to unsupported because nobody remembered a second list. + */ +const POOL_SUPPORT = { + [EContractVersion.V1]: { swap: false, buildAgainstPool: false }, + [EContractVersion.V3]: { swap: true, buildAgainstPool: true }, + [EContractVersion.NftCheck]: { swap: false, buildAgainstPool: false }, + [EContractVersion.Condition]: { swap: false, buildAgainstPool: false }, + [EContractVersion.Stableswaps]: { swap: true, buildAgainstPool: true }, + [EContractVersion.V4]: { swap: true, buildAgainstPool: false }, +} as const satisfies Record; + +type TVersionsWhere = { + [V in EContractVersion]: (typeof POOL_SUPPORT)[V][K] extends true ? V : never; +}[EContractVersion]; + +function versionsWhere( + capability: K, +): readonly TVersionsWhere[] { + return (Object.keys(POOL_SUPPORT) as EContractVersion[]).filter( + (version): version is TVersionsWhere => + POOL_SUPPORT[version][capability], + ); +} + +/** + * `pool.version` comes off the Sundae API, so a version absent from the table + * reads as unsupported rather than throwing. Fail closed. + */ +function supports( + version: EContractVersion, + capability: keyof IPoolSupport, +): boolean { + return POOL_SUPPORT[version]?.[capability] === true; +} + +/** Versions whose order names the pool. See {@link isSupportedSundaeSwapVersion}. */ +export const SUPPORTED_SUNDAE_SWAP_VERSIONS = versionsWhere("buildAgainstPool"); + +export type TSundaeSwapVersion = TVersionsWhere<"buildAgainstPool">; + +/** + * Whether the pool-taking `buildSwapOrderTx` accepts this version. Narrower than + * {@link isSwappableSundaeSwapVersion} — a V4 pool is swappable but its order + * names no pool, so it is not buildable *against a pool*. + */ +export function isSupportedSundaeSwapVersion( + version: EContractVersion, +): version is TSundaeSwapVersion { + return supports(version, "buildAgainstPool"); +} + +export function assertSupportedSundaeSwapPool( + pool: IPoolData, +): asserts pool is IPoolData & { version: TSundaeSwapVersion } { + if (!isSupportedSundaeSwapVersion(pool.version)) { + throw new Error(`Unsupported Sundae swap pool version: ${pool.version}`); + } +} + +/** Versions the SDK can quote and place a swap for. */ +export const SWAPPABLE_SUNDAE_SWAP_VERSIONS = versionsWhere("swap"); + +export type TSwappableSundaeSwapVersion = TVersionsWhere<"swap">; + +/** Whether the SDK can quote this version and place a swap for it. */ +export function isSwappableSundaeSwapVersion( + version: EContractVersion, +): version is TSwappableSundaeSwapVersion { + return supports(version, "swap"); +} + +/** + * Throws the same message as {@link assertSupportedSundaeSwapPool} on purpose: + * callers and tests treat "Unsupported Sundae swap pool version: X" as the one + * version-rejection string. + */ +export function assertSwappableSundaeSwapPool( + pool: IPoolData, +): asserts pool is IPoolData & { version: TSwappableSundaeSwapVersion } { + if (!isSwappableSundaeSwapVersion(pool.version)) { + throw new Error(`Unsupported Sundae swap pool version: ${pool.version}`); + } +} diff --git a/modules/realfi-partner-sdk/src/sundae/v4-curve.ts b/modules/realfi-partner-sdk/src/sundae/v4-curve.ts new file mode 100644 index 0000000000..448b570516 --- /dev/null +++ b/modules/realfi-partner-sdk/src/sundae/v4-curve.ts @@ -0,0 +1,125 @@ +import { EContractVersion, EPoolCurve, type IPoolData } from "@sundaeswap/core"; + +/** + * Fills in the two v4 fields Sundae's own pool query does not select. + * + * `QueryProviderSundaeSwap.findPoolDataByAssetId` builds its query inside + * `@sundaeswap/core`, and that query asks for neither `modules` nor `prices`. + * So every v4 pool it returns arrives with `curve` and `prices` undefined, and + * anything downstream has to assume the curve rather than check it. + * + * This is a stopgap for that gap, deliberately shaped to retire itself: it only + * queries for pools that are *missing* the fields. The day Sundae selects them + * upstream, the candidate list is empty, the extra request never fires, and + * deleting this module is pure cleanup rather than a behaviour change. + */ + +interface IPoolCurveRow { + id: string; + modules?: { identifier: string }[] | null; + prices?: (string | number)[] | null; +} + +const POOL_CURVE_QUERY = `query poolCurves($asset: ID!) { + pools { byAsset(asset: $asset) { id modules { identifier } prices } } +}`; + +const CURVES: readonly EPoolCurve[] = [ + EPoolCurve.ConstantProduct, + EPoolCurve.ConstantSum, + EPoolCurve.ConcentratedLiquidity, +]; + +/** + * The invariant module identifiers are exactly the `EPoolCurve` values, so match + * on those rather than on the `kind` discriminator — one less shape to depend on. + */ +function curveOf(row: IPoolCurveRow): EPoolCurve | undefined { + return CURVES.find((curve) => + (row.modules ?? []).some((module) => module.identifier === curve), + ); +} + +/** + * `IPoolData.prices` is a two-tuple aligned to `[assetA, assetB]`, but a v4 pool + * can hold up to 16 assets and the API returns a weight for each. Two cases are + * safe to map: + * + * - every weight is equal, so whichever two `assetA`/`assetB` project to are + * equal as well — this is what RealFi's stablecoin pools look like, including + * the three-asset ones; + * - exactly two weights, which align with the pair directly. + * + * Anything else is left undefined rather than guessed at. A consumer that needs + * the weights then refuses the pool, which is the right answer for a pool we + * cannot describe. + */ +function pricesOf(row: IPoolCurveRow): [bigint, bigint] | undefined { + const raw = row.prices ?? []; + if (raw.length === 0) return undefined; + + const weights = raw.map((price) => BigInt(price)); + if (new Set(weights).size === 1) { + return [weights[0]!, weights[0]!]; + } + return weights.length === 2 ? [weights[0]!, weights[1]!] : undefined; +} + +function needsCurveData(pool: IPoolData): boolean { + return ( + pool.version === EContractVersion.V4 && + (pool.curve === undefined || pool.prices === undefined) + ); +} + +/** + * Returns `pools` with `curve`/`prices` filled in for the v4 pools that lacked + * them. A pool the query cannot describe is returned untouched; a failed request + * leaves every pool untouched, so discovery degrades to today's behaviour rather + * than failing outright. + */ +export async function withV4CurveData( + pools: readonly IPoolData[], + assetId: string, + endpoint: string, +): Promise { + if (!pools.some(needsCurveData)) { + return [...pools]; + } + + let rows: IPoolCurveRow[]; + try { + const response = await fetch(endpoint, { + body: JSON.stringify({ + query: POOL_CURVE_QUERY, + variables: { asset: assetId }, + }), + headers: { "Content-Type": "application/json" }, + method: "POST", + }); + const payload = (await response.json()) as { + data?: { pools?: { byAsset?: IPoolCurveRow[] } }; + }; + rows = payload.data?.pools?.byAsset ?? []; + } catch { + return [...pools]; + } + + const byIdent = new Map(rows.map((row) => [row.id, row])); + + return pools.map((pool) => { + if (!needsCurveData(pool)) return pool; + + const row = byIdent.get(pool.ident); + if (!row) return pool; + + const curve = pool.curve ?? curveOf(row); + const prices = pool.prices ?? pricesOf(row); + + return { + ...pool, + ...(curve === undefined ? {} : { curve }), + ...(prices === undefined ? {} : { prices }), + }; + }); +} diff --git a/modules/realfi-partner-sdk/src/tx-builder/README.md b/modules/realfi-partner-sdk/src/tx-builder/README.md new file mode 100644 index 0000000000..1bcba6d0b1 --- /dev/null +++ b/modules/realfi-partner-sdk/src/tx-builder/README.md @@ -0,0 +1,164 @@ +# RealFi Transaction Flow Builder + +This module builds transaction flow outputs for multi-step RealFi routes. A +flow starts with a final destination, then works backward through each requested +step so every step receives the correct continuation address and datum for the +step that follows it. + +The result is a single `TxBuilderFlowResult` containing: + +- `address`: where the outermost order output should be locked +- `datum`: the inline datum for that output, when one is needed +- `value`: the assets locked at that output + +The entire sequence of steps is folded into the output datum. +Callers of the tx flow builder can then use a Cardano transaction building library (eg. blaze) to create a valid cardano transaction that produces this output. + +## Importing + +The tx-builder API is exported from the main SDK and from a subpath: + +```ts +import { TxBuilder } from "@sundaeswap/realfi-sdk"; +``` + +```ts +import { + buildTxFlow, + createTxFlowBuilder, + txBuilderFlowResultToCoreOutput, + type TxFlowStep, +} from "@sundaeswap/realfi-sdk/tx-builder"; +``` + +## Flow Steps + +The following protocols are supported: + +- `RealFiTxFlowStep`: legacy V1.0-only flow step. +- `SundaeV3TxFlowStep`: builds a Sundae V3 swap, deposit, or withdraw order + datum and points its destination at the next step. +- `RealfiSDK.sundae.buildSwapToStakeOrderTx`: builds a version-neutral + swap-to-stake order for Sundae V3 or Stableswaps pools. The pool's + `version` selects Sundae's real transaction and datum builder. + +For swap-to-stake, the version-neutral helper asks the version-aware RealFi SDK +to build the stake continuation. It supports the current V1.0 and V1.1 schemas, +uses the live RealFi request address and exchange rate, and computes RealFi's +`min_received` without a caller-supplied vault ratio. The deprecated +`sundaeV3SwapToStake` helper remains available for compatibility with callers +that already supply a fully formed V3 datum input. + +## Network Registry + +The package includes a `TX_BUILDER_REGISTRY` keyed by network: + +- `preview` +- `preprod` +- `mainnet` + +Each entry contains request script addresses for legacy flow steps. Sundae V3 +request addresses are included. The version-neutral swap-to-stake helper does +not use these Sundae addresses: Sundae's selected V3 or Stableswaps builder +resolves its version-specific validator from current protocol parameters. The +legacy RealFi V1.0 address is included for `preprod`; `preview` runs V1.1, so +the stale V1.0 address is deliberately unset. Both swap-to-stake helpers get +the RealFi address from the live SDK instead of this registry. Trying to build +a legacy RealFi step without an address throws an error. + +For most SDK usage, create a network-scoped builder once and let it populate +step addresses from the registry: + +```ts +const txFlow = createTxFlowBuilder({ network: "preview" }); +``` + +You can also pass a custom registry: + +```ts +const txFlow = createTxFlowBuilder({ + network: "preview", + registry: { + preview: { + realfi: { requestAddress: "addr_test..." }, + sundaeV3: { requestAddress: "addr_test..." }, + }, + preprod: { + realfi: { requestAddress: "addr_test..." }, + sundaeV3: { requestAddress: "addr_test..." }, + }, + mainnet: { + realfi: { requestAddress: "addr..." }, + sundaeV3: { requestAddress: "addr..." }, + }, + }, +}); +``` + +## Example + +```ts +import { AssetAmount } from "@sundaeswap/asset"; +import { EDatumType, ESwapType } from "@sundaeswap/core"; +import { RealfiSDK } from "@sundaeswap/realfi-sdk"; + +const ownerAddress = await blaze.wallet.getChangeAddress(); +const suppliedAsset = new AssetAmount(100_000_000n, pool.assetA); +const sundae = RealfiSDK.sundae.create(blaze); + +// The caller still chooses swap slippage. The SDK uses Sundae's quote logic. +const quote = sundae.quoteSwap({ pool, suppliedAsset, slippage: 0.03 }); + +const order = await sundae.buildSwapToStakeOrderTx({ + sdk: realfiSdk, + swap: { + pool, + suppliedAsset, + swapType: { + type: ESwapType.LIMIT, + minReceivable: quote.minReceived, + }, + // This address retains cancellation authority over the Sundae and RealFi + // orders unless `stake.owner` is deliberately overridden. + ownerAddress: ownerAddress.toBech32(), + orderAddresses: { + // The final destination receives sUSDr and any USDr above the guaranteed + // swap minimum after RealFi executes the stake order. + DestinationAddress: { + address: ownerAddress.toBech32(), + datum: { type: EDatumType.NONE }, + }, + AlternateAddress: ownerAddress.toBech32(), + }, + }, + // Optional override for the RealFi leg; the SDK default is used when omitted. + stake: { slippageToleranceBps: 500n }, +}); +const { cbor } = await order.build(); +``` + +The helper supports Sundae V3 and Stableswaps without a caller-side branch. It +uses the executable Sundae `minReceived` as the RealFi stake amount, while the +RealFi SDK independently computes the stake leg's sUSDr `min_received`. It does +not accept a separate stake amount, `vaultRatio`, or RealFi `min_received`. + +`buildTxFlow` and `txBuilderFlowResultToCoreOutput` are available as +lower-level functions when callers want to provide fully formed steps directly. +The low-level `realfi` and `realfiStake` steps are retained for V1.0 callers. +They serialize the V1.0 schema and require a V1.0 request address; +`realfiStake` also requires the caller to supply a vault ratio. Do not use them +for Preview's V1.1 deployment. + +## Destination Helpers + +The module also exposes helpers for encoding continuation destinations: + +- `realfiDestinationFromStepResult` +- `addressToRealFiDestination` +- `realfiDestinationToAddress` +- `sundaeV3DestinationFromStepResult` +- `inlineDatumFromStepResult` +- `plutusDataFromCbor` + +These helpers are useful when integrating new step builders or testing datum +round-trips. diff --git a/modules/realfi-partner-sdk/src/tx-builder/destination.ts b/modules/realfi-partner-sdk/src/tx-builder/destination.ts new file mode 100644 index 0000000000..84be8cbea8 --- /dev/null +++ b/modules/realfi-partner-sdk/src/tx-builder/destination.ts @@ -0,0 +1,214 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +import { Hash28ByteBase16, HexBlob, PlutusData } from "@blaze-cardano/core"; +import { Core } from "@blaze-cardano/sdk"; +import { + DatumBuilderV3, + EDatumType, + type TDatum, + type TDatumResult, + type TDestinationAddress, + type TSupportedNetworks, +} from "@sundaeswap/core"; + +import type { + Destination, + MultisigScript, +} from "../generated-types/v1_0/index.js"; + +/** + * Intermediate output produced by one flow step and consumed by the previous + * flow step as its continuation destination. + */ +export interface TxBuilderStepResult { + address: Core.Address; + datum?: PlutusData; +} + +export type RealFiDestinationDatum = Destination["datum"]; +export type SundaeV3DestinationResult = TDatumResult< + ReturnType["schema"] +>; + +/** + * Converts a step result's optional inline datum into the RealFi destination + * datum shape. + */ +export function realfiDestinationDatumFromStepResult( + stepResult: TxBuilderStepResult, +): RealFiDestinationDatum { + return stepResult.datum ? { InlineDatum: [stepResult.datum] } : "NoDatum"; +} + +/** + * Builds a RealFi destination that points to a step result's address and datum. + */ +export function realfiDestinationFromStepResult( + stepResult: TxBuilderStepResult, +): Destination { + return addressToRealFiDestination( + stepResult.address, + realfiDestinationDatumFromStepResult(stepResult), + ); +} + +/** + * Converts a Cardano address plus optional datum into the generated RealFi + * destination type. + */ +export function addressToRealFiDestination( + address: Core.Address, + datum: RealFiDestinationDatum = "NoDatum", +): Destination { + const props = address.getProps(); + const paymentPart = props.paymentPart; + + if (!paymentPart) { + throw new Error("Address must have a payment part"); + } + + const paymentCredential = + paymentPart.type === Core.CredentialType.KeyHash + ? { VerificationKey: [paymentPart.hash] as [string] } + : { Script: [paymentPart.hash] as [string] }; + + let stakeCredential: Destination["address"]["stake_credential"] = undefined; + if (props.delegationPart) { + const stakeCred = + props.delegationPart.type === Core.CredentialType.KeyHash + ? { VerificationKey: [props.delegationPart.hash] as [string] } + : { Script: [props.delegationPart.hash] as [string] }; + stakeCredential = { Inline: [stakeCred] }; + } + + return { + address: { + payment_credential: paymentCredential, + stake_credential: stakeCredential, + }, + datum, + }; +} + +/** + * Derives a RealFi owner from the exact cancellation authority Sundae V3 + * assigns to an owner address. Sundae prefers a base address's staking hash + * over its payment hash, while deciding Signature vs Script from the address's + * payment credential, so this must use Sundae's builder rather than reimplement + * those semantics from the Blaze address parts. + */ +export function realfiOwnerFromSundaeV3OwnerAddress( + network: TSupportedNetworks, + ownerAddress: string, +): MultisigScript { + const sundaeOwner = new DatumBuilderV3(network).buildOwnerDatum( + ownerAddress, + ).schema; + + if ("Signature" in sundaeOwner) { + return { Signature: { key_hash: sundaeOwner.Signature.keyHash } }; + } + if ("Script" in sundaeOwner) { + return { Script: { script_hash: sundaeOwner.Script.scriptHash } }; + } + + throw new Error("Unsupported Sundae V3 owner datum derived from address"); +} + +/** + * Reconstructs a Cardano address from a generated RealFi destination address. + */ +export function realfiDestinationToAddress( + network: Core.NetworkId, + destination: Destination, +): Core.Address { + const paymentCred = destination.address.payment_credential; + const stakingCred = destination.address.stake_credential; + + const paymentCredCore = + "VerificationKey" in paymentCred + ? keyCredential(paymentCred.VerificationKey[0]) + : scriptCredential(paymentCred.Script[0]); + + let stakingCredCore: Core.Credential | undefined = undefined; + if (stakingCred && "Inline" in stakingCred) { + const inlineCredential = stakingCred.Inline[0]; + stakingCredCore = + "VerificationKey" in inlineCredential + ? keyCredential(inlineCredential.VerificationKey[0]) + : scriptCredential(inlineCredential.Script[0]); + } + + return Core.addressFromCredentials(network, paymentCredCore, stakingCredCore); +} + +/** + * Converts a step result's optional inline datum into the Sundae V3 destination + * datum shape. + */ +export function sundaeV3DestinationDatumFromStepResult( + stepResult: TxBuilderStepResult, +): TDatum { + return stepResult.datum + ? { + type: EDatumType.INLINE, + value: stepResult.datum.toCbor().toString(), + } + : { type: EDatumType.NONE }; +} + +/** + * Builds the Sundae V3 destination address payload for a step result. + */ +export function sundaeV3DestinationAddressFromStepResult( + stepResult: TxBuilderStepResult, +): TDestinationAddress { + return { + address: stepResult.address.toBech32(), + datum: sundaeV3DestinationDatumFromStepResult(stepResult), + }; +} + +/** + * Serializes the Sundae V3 destination used by classic, stableswap, and + * linearswap orders to route proceeds to the next step. + */ +export function sundaeV3DestinationFromStepResult( + network: TSupportedNetworks, + stepResult: TxBuilderStepResult, +): SundaeV3DestinationResult { + return new DatumBuilderV3(network).buildDestinationAddresses( + sundaeV3DestinationAddressFromStepResult(stepResult), + ); +} + +/** + * Returns the step result's inline datum for protocols that store continuation + * data directly as an optional Plutus datum. + */ +export function inlineDatumFromStepResult( + stepResult: TxBuilderStepResult, +): PlutusData | undefined { + return stepResult.datum; +} + +/** + * Parses Plutus data from a CBOR hex string. + */ +export function plutusDataFromCbor(cborHex: string): PlutusData { + return PlutusData.fromCbor(HexBlob(cborHex)); +} + +function keyCredential(hash: string): Core.Credential { + return Core.Credential.fromCore({ + type: Core.CredentialType.KeyHash, + hash: Hash28ByteBase16(hash), + }); +} + +function scriptCredential(hash: string): Core.Credential { + return Core.Credential.fromCore({ + type: Core.CredentialType.ScriptHash, + hash: Hash28ByteBase16(hash), + }); +} diff --git a/modules/realfi-partner-sdk/src/tx-builder/flow.ts b/modules/realfi-partner-sdk/src/tx-builder/flow.ts new file mode 100644 index 0000000000..fe384a4c84 --- /dev/null +++ b/modules/realfi-partner-sdk/src/tx-builder/flow.ts @@ -0,0 +1,284 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +import type { PlutusData } from "@blaze-cardano/core"; +import * as Data from "@blaze-cardano/data"; +import { Core } from "@blaze-cardano/sdk"; +import { + DatumBuilderV3, + type IDatumBuilderDepositV3Args, + type IDatumBuilderSwapV3Args, + type IDatumBuilderWithdrawV3Args, + type TSupportedNetworks, +} from "@sundaeswap/core"; + +import { V1_0Types } from "../generated-types/index.js"; +import type { + MultisigScript, + OrderActionV1, + OrderDatumV1, +} from "../generated-types/v1_0/index.js"; +import { + type TxBuilderStepResult, + plutusDataFromCbor, + realfiDestinationFromStepResult, + sundaeV3DestinationAddressFromStepResult, +} from "./destination.js"; + +/** + * Output produced by one flow step. The previous step consumes only this + * result's address and datum as its continuation destination. The value is the + * Cardano assets locked at this step's output; after the right fold, only the + * outermost folded result is converted into the transaction output. + */ +export interface TxBuilderFlowResult extends TxBuilderStepResult { + value: Core.Value; +} + +export interface TxBuilderFinalStep extends TxBuilderFlowResult {} + +export const STAKE_VAULT_RATIO_SCALE = 1_000_000n; +export const DEFAULT_STAKE_SLIPPAGE_TOLERANCE_BPS = 50n; + +const BPS_DENOMINATOR = 10_000n; + +/** + * @deprecated V1_0 only. Prefer the SDK-backed stake continuation helper. + */ +export interface RealFiStakeActionInput { + amount: bigint; + /** + * Current USDr-per-sUSDr vault ratio scaled by 1e6. + * + * This is the shape returned by the RealFi API's latestVaultRatio query. + */ + vaultRatio: bigint; + slippageToleranceBps?: bigint; +} + +/** @deprecated V1_0 only. Prefer the SDK-backed stake continuation helper. */ +export interface RealFiTxFlowStep { + kind: "realfi"; + address: Core.Address; + value: Core.Value; + owner: MultisigScript; + action: OrderActionV1; + data?: PlutusData; +} + +export interface SundaeV3BaseTxFlowStep { + kind: "sundae-v3"; + network: TSupportedNetworks; + address: Core.Address; + value: Core.Value; +} + +export interface SundaeV3SwapTxFlowStep + extends + SundaeV3BaseTxFlowStep, + Omit { + orderKind: "swap"; +} + +export interface SundaeV3DepositTxFlowStep + extends + SundaeV3BaseTxFlowStep, + Omit { + orderKind: "deposit"; +} + +export interface SundaeV3WithdrawTxFlowStep + extends + SundaeV3BaseTxFlowStep, + Omit { + orderKind: "withdraw"; +} + +export type SundaeV3TxFlowStep = + | SundaeV3SwapTxFlowStep + | SundaeV3DepositTxFlowStep + | SundaeV3WithdrawTxFlowStep; + +export type SundaeTxFlowStep = SundaeV3TxFlowStep; + +export type TxFlowStep = RealFiTxFlowStep | SundaeTxFlowStep; + +/** + * Computes stake order `min_received` from the current vault exchange rate. + * + * `vaultRatio` is USDr per sUSDr scaled by 1e6, so the natural sUSDr output is + * `amount * 1e6 / vaultRatio`. The tolerance is applied to that output floor. + * + * @deprecated V1_0 only. Prefer the SDK-backed stake continuation helper. + */ +export function computeStakeMinReceivedFromVaultRatio( + amount: bigint, + vaultRatio: bigint, + slippageToleranceBps: bigint = DEFAULT_STAKE_SLIPPAGE_TOLERANCE_BPS, +): bigint { + if (amount <= 0n) { + throw new Error("Stake amount must be positive"); + } + if (vaultRatio <= 0n) { + throw new Error("Vault ratio must be positive"); + } + if (slippageToleranceBps < 0n || slippageToleranceBps > BPS_DENOMINATOR) { + throw new Error("Slippage tolerance must be between 0 and 10000 bps"); + } + + const expected = (amount * STAKE_VAULT_RATIO_SCALE) / vaultRatio; + const minReceived = + (expected * (BPS_DENOMINATOR - slippageToleranceBps)) / BPS_DENOMINATOR; + // WTB-1764: stake.ak requires min_received > 0 and crashes the entire + // execution transaction (not just this request) when it is not, so a floor + // that rounds or tolerances down to zero must not become an order. + if (minReceived <= 0n) { + throw new Error( + `Quoted min_received must be positive (got ${minReceived}); the stake amount ` + + "is too small for this vault ratio and tolerance to quote a non-zero floor", + ); + } + return minReceived; +} + +/** @deprecated V1_0 only. Prefer the SDK-backed stake continuation helper. */ +export function buildRealFiStakeAction({ + amount, + vaultRatio, + slippageToleranceBps, +}: RealFiStakeActionInput): OrderActionV1 { + return { + OStake: { + amount, + min_received: computeStakeMinReceivedFromVaultRatio( + amount, + vaultRatio, + slippageToleranceBps, + ), + }, + }; +} + +/** + * Builds the final flow result by folding from the final step backward through + * each requested flow step. + */ +export function buildTxFlow( + steps: readonly TxFlowStep[], + finalStep: TxBuilderFinalStep, +): TxBuilderFlowResult { + return steps.reduceRight( + (nextStep, step) => buildTxFlowStep(step, nextStep), + finalStep, + ); +} + +/** + * Builds one flow step using the already-built next step as its continuation. + */ +export function buildTxFlowStep( + step: TxFlowStep, + nextStep: TxBuilderFlowResult, +): TxBuilderFlowResult { + switch (step.kind) { + case "realfi": + return buildRealFiTxFlowStep(step, nextStep); + case "sundae-v3": + return buildSundaeV3TxFlowStep(step, nextStep); + default: { + const unreachable: never = step; + return unreachable; + } + } +} + +/** + * Builds a RealFi order flow result whose destination points to the next step. + * + * @deprecated V1_0 only. Prefer the SDK-backed stake continuation helper. + */ +export function buildRealFiTxFlowStep( + step: RealFiTxFlowStep, + nextStep: TxBuilderStepResult, +): TxBuilderFlowResult { + const orderDatum: OrderDatumV1 = { + owner: step.owner, + destination: realfiDestinationFromStepResult(nextStep), + action: step.action, + data: step.data ?? Data.Void(), + }; + + return { + address: step.address, + datum: Data.serialize(V1_0Types.OrderDatumV1, orderDatum), + value: step.value, + }; +} + +/** + * Builds a Sundae V3 flow result by injecting the next step as the order + * destination and serializing the selected order datum. + */ +export function buildSundaeV3TxFlowStep( + step: SundaeV3TxFlowStep, + nextStep: TxBuilderStepResult, +): TxBuilderFlowResult { + const builder = new DatumBuilderV3(step.network); + const destinationAddress = sundaeV3DestinationAddressFromStepResult(nextStep); + let inlineDatum: string; + + switch (step.orderKind) { + case "swap": + inlineDatum = builder.buildSwapDatum({ + destinationAddress, + ident: step.ident, + order: step.order, + ownerAddress: step.ownerAddress, + scooperFee: step.scooperFee, + }).inline; + break; + case "deposit": + inlineDatum = builder.buildDepositDatum({ + destinationAddress, + ident: step.ident, + order: step.order, + ownerAddress: step.ownerAddress, + scooperFee: step.scooperFee, + }).inline; + break; + case "withdraw": + inlineDatum = builder.buildWithdrawDatum({ + destinationAddress, + ident: step.ident, + order: step.order, + ownerAddress: step.ownerAddress, + scooperFee: step.scooperFee, + }).inline; + break; + default: { + const unreachable: never = step; + return unreachable; + } + } + + return { + address: step.address, + datum: plutusDataFromCbor(inlineDatum), + value: step.value, + }; +} + +/** + * Converts the folded flow result into a transaction output with an inline + * datum when the result includes one. + */ +export function txBuilderFlowResultToCoreOutput( + result: TxBuilderFlowResult, +): Core.TransactionOutput { + const output = new Core.TransactionOutput(result.address, result.value); + + if (result.datum) { + output.setDatum(Core.Datum.newInlineData(result.datum)); + } + + return output; +} diff --git a/modules/realfi-partner-sdk/src/tx-builder/index.ts b/modules/realfi-partner-sdk/src/tx-builder/index.ts new file mode 100644 index 0000000000..f772034c13 --- /dev/null +++ b/modules/realfi-partner-sdk/src/tx-builder/index.ts @@ -0,0 +1,3 @@ +export * from "./destination.js"; +export * from "./flow.js"; +export * from "./registry.js"; diff --git a/modules/realfi-partner-sdk/src/tx-builder/registry.ts b/modules/realfi-partner-sdk/src/tx-builder/registry.ts new file mode 100644 index 0000000000..708c761cf3 --- /dev/null +++ b/modules/realfi-partner-sdk/src/tx-builder/registry.ts @@ -0,0 +1,259 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +import { Core } from "@blaze-cardano/sdk"; +import type { TSupportedNetworks } from "@sundaeswap/core"; + +import type { + IBuildStakeContinuationParams, + IStakeContinuation, +} from "../sdk/v1/family.js"; +import { + buildRealFiStakeAction, + buildSundaeV3TxFlowStep, + buildTxFlow, + txBuilderFlowResultToCoreOutput, + type RealFiTxFlowStep, + type RealFiStakeActionInput, + type SundaeV3TxFlowStep, + type TxBuilderFinalStep, + type TxBuilderFlowResult, + type TxFlowStep, +} from "./flow.js"; +import { + realfiOwnerFromSundaeV3OwnerAddress, + realfiDestinationFromStepResult, +} from "./destination.js"; + +type TxFlowStepInput = TStep extends unknown + ? Omit + : never; + +export type TxBuilderNetwork = TSupportedNetworks; + +export interface TxBuilderProtocolRegistry { + requestAddress?: string; +} + +export interface TxBuilderNetworkRegistry { + realfi: TxBuilderProtocolRegistry; + sundaeV3: TxBuilderProtocolRegistry; +} + +export type TxBuilderRegistry = Record< + TxBuilderNetwork, + TxBuilderNetworkRegistry +>; + +/** @deprecated V1_0 only. Prefer `SundaeV3SwapToStakeInput`. */ +export type RealFiTxFlowStepInput = TxFlowStepInput; + +/** @deprecated V1_0 only. Prefer `SundaeV3SwapToStakeInput`. */ +export type RealFiStakeTxFlowStepInput = Omit & + RealFiStakeActionInput; + +export type SundaeV3TxFlowStepInput = TxFlowStepInput; + +export type SundaeV3SwapTxFlowStepInput = Extract< + SundaeV3TxFlowStepInput, + { orderKind: "swap" } +>; + +/** A swap leg with explicit cancellation authority for the routed order. */ +export type SundaeV3OwnedSwapTxFlowStepInput = Omit< + SundaeV3SwapTxFlowStepInput, + "ownerAddress" +> & { + ownerAddress: string; +}; + +/** + * Any SDK instance exposing `buildStakeContinuation` — the partner facade's + * per-build dispatcher, an `"at-init"` instance, or a raw version-pinned SDK. + * Only the per-build dispatcher fails closed on a stale protocol version; + * the others carry no such guarantee. + */ +export interface StakeContinuationBuilder { + buildStakeContinuation( + params: IBuildStakeContinuationParams, + ): Promise; +} + +/** + * @deprecated Prefer `RealfiSDK.sundae.create(blaze).buildSwapToStakeOrderTx`. + * This input belongs to the lower-level, V3-only flow composer. + */ +export interface SundaeV3SwapToStakeInput { + sdk: StakeContinuationBuilder; + swap: SundaeV3OwnedSwapTxFlowStepInput; + finalStep: TxBuilderFinalStep; + stake?: Omit; +} + +export interface CreateTxFlowBuilderOptions { + network: TxBuilderNetwork; + registry?: TxBuilderRegistry; +} + +export interface TxFlowBuilder { + network: TxBuilderNetwork; + /** @deprecated V1_0 only. Prefer `sundaeV3SwapToStake`. */ + realfi: (step: RealFiTxFlowStepInput) => RealFiTxFlowStep; + /** @deprecated V1_0 only. Prefer `sundaeV3SwapToStake`. */ + realfiStake: (step: RealFiStakeTxFlowStepInput) => RealFiTxFlowStep; + sundaeV3: (step: SundaeV3TxFlowStepInput) => SundaeV3TxFlowStep; + /** + * @deprecated Prefer `RealfiSDK.sundae.create(blaze).buildSwapToStakeOrderTx`, + * which builds the complete V3 or Stableswaps order transaction. + */ + sundaeV3SwapToStake: ( + input: SundaeV3SwapToStakeInput, + ) => Promise; + build: ( + steps: readonly TxFlowStep[], + finalStep: TxBuilderFinalStep, + ) => TxBuilderFlowResult; + toOutput: (result: TxBuilderFlowResult) => Core.TransactionOutput; +} + +/** + * Default request address registry. Sundae V3 entries are enterprise order + * script addresses. The RealFi entry is a legacy V1_0-only path; preview runs + * V1_1, so its old V1_0 address is deliberately unset. New stake continuations + * derive the live address from the version-aware SDK instead. + */ +export const TX_BUILDER_REGISTRY = { + preview: { + realfi: {}, + sundaeV3: { + requestAddress: + "addr_test1wr866xg5kkvarzll69xjh0tfvqvu9zvuhht2qve9ehmgp0qfgf3wc", + }, + }, + preprod: { + realfi: { + requestAddress: + "addr_test1wrkgqyfrz7qhlhu737nf4v5dllypylasaqruphlul5jhpeczfzjzl", + }, + sundaeV3: { + requestAddress: + "addr_test1wz5cn230um3cve5gvvgk9kxveqcd888r3vl3rtxn3qxpvhcv0tzpr", + }, + }, + mainnet: { + realfi: {}, + sundaeV3: { + requestAddress: + "addr1w8ax5k9mutg07p2ngscu3chsauktmstq92z9de938j8nqacprc9mw", + }, + }, +} satisfies TxBuilderRegistry; + +/** + * Returns the registry entry for the selected network. + */ +export function getTxBuilderNetworkRegistry( + network: TxBuilderNetwork, + registry: TxBuilderRegistry = TX_BUILDER_REGISTRY, +): TxBuilderNetworkRegistry { + return registry[network]; +} + +/** + * Returns the RealFi request script address for the selected network. + * + * @deprecated V1_0 only. Prefer the version-aware SDK continuation builder. + */ +export function getRealFiRequestAddress( + network: TxBuilderNetwork, + registry: TxBuilderRegistry = TX_BUILDER_REGISTRY, +): Core.Address { + return requestAddressFromRegistry( + getTxBuilderNetworkRegistry(network, registry).realfi.requestAddress, + network, + "RealFi", + ); +} + +/** + * Returns the Sundae V3 request script address for the selected network. + */ +export function getSundaeV3RequestAddress( + network: TxBuilderNetwork, + registry: TxBuilderRegistry = TX_BUILDER_REGISTRY, +): Core.Address { + return requestAddressFromRegistry( + getTxBuilderNetworkRegistry(network, registry).sundaeV3.requestAddress, + network, + "Sundae V3", + ); +} + +/** + * Creates a network-scoped flow builder that fills request script addresses from + * the registry before building the right-folded transaction flow. + */ +export function createTxFlowBuilder({ + network, + registry = TX_BUILDER_REGISTRY, +}: CreateTxFlowBuilderOptions): TxFlowBuilder { + const sundaeV3 = (step: SundaeV3TxFlowStepInput): SundaeV3TxFlowStep => + ({ + ...step, + kind: "sundae-v3", + network, + address: getSundaeV3RequestAddress(network, registry), + }) as SundaeV3TxFlowStep; + + return { + network, + realfi: (step) => ({ + ...step, + kind: "realfi", + address: getRealFiRequestAddress(network, registry), + }), + realfiStake: ({ amount, vaultRatio, slippageToleranceBps, ...step }) => ({ + ...step, + kind: "realfi", + address: getRealFiRequestAddress(network, registry), + action: buildRealFiStakeAction({ + amount, + vaultRatio, + slippageToleranceBps, + }), + }), + sundaeV3, + sundaeV3SwapToStake: async ({ sdk, swap, finalStep, stake }) => { + if (!swap.ownerAddress) { + throw new Error( + "Sundae V3 swap-to-stake requires ownerAddress so the swap remains cancellable", + ); + } + // Default the inner RealFi order's owner to the Sundae leg's owner, so + // one address retains cancellation authority over both legs unless the + // caller deliberately splits it via `stake.owner`. + const continuation = await sdk.buildStakeContinuation({ + owner: realfiOwnerFromSundaeV3OwnerAddress(network, swap.ownerAddress), + ...stake, + swap: swap.order, + destination: realfiDestinationFromStepResult(finalStep), + }); + return buildSundaeV3TxFlowStep(sundaeV3(swap), continuation); + }, + build: buildTxFlow, + toOutput: txBuilderFlowResultToCoreOutput, + }; +} + +function requestAddressFromRegistry( + requestAddress: string | undefined, + network: TxBuilderNetwork, + protocol: string, +): Core.Address { + if (!requestAddress) { + throw new Error( + `No ${protocol} request address configured for ${network}. Add it to the tx-builder registry before building this step.`, + ); + } + + return Core.Address.fromBech32(requestAddress); +} diff --git a/modules/realfi-partner-sdk/tsconfig.cjs.json b/modules/realfi-partner-sdk/tsconfig.cjs.json new file mode 100644 index 0000000000..c362a3cb70 --- /dev/null +++ b/modules/realfi-partner-sdk/tsconfig.cjs.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "CommonJS", + "moduleResolution": "Node", + "declaration": false, + "outDir": "dist/cjs", + "rootDir": "src", + "strict": true, + "skipLibCheck": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "noEmitOnError": true + }, + "include": ["src/**/*"] +} diff --git a/modules/realfi-partner-sdk/tsconfig.esm.json b/modules/realfi-partner-sdk/tsconfig.esm.json new file mode 100644 index 0000000000..0863e40007 --- /dev/null +++ b/modules/realfi-partner-sdk/tsconfig.esm.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "declaration": true, + "outDir": "dist/esm", + "declarationDir": "dist/types", + "rootDir": "src", + "strict": true, + "skipLibCheck": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "noEmitOnError": true + }, + "include": ["src/**/*"] +} diff --git a/yarn.lock b/yarn.lock index 2df604695b..ef62388fff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -996,6 +996,17 @@ "@cosmjs/stargate" "^0.33.1" "@cosmjs/tendermint-rpc" "^0.33.1" +"@biglup/is-cid@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@biglup/is-cid/-/is-cid-1.0.3.tgz#6f97610814f882e0c6e9a08b978d202b6d345b3c" + integrity sha512-R0XPZ/IQhU2TtetSFI9vI+7kJOJYNiCncn5ixEBW+/LNaZCo2HK37Mq3pRNzrM4FryuAkyeqY7Ujmj3I3e3t9g== + dependencies: + "@multiformats/mafmt" "^12.1.6" + "@multiformats/multiaddr" "^12.1.14" + iso-url "^1.1.3" + multiformats "^13.0.1" + uint8arrays "^5.0.1" + "@bitcoin-js/tiny-secp256k1-asmjs@2.2.3": version "2.2.3" resolved "https://registry.npmjs.org/@bitcoin-js/tiny-secp256k1-asmjs/-/tiny-secp256k1-asmjs-2.2.3.tgz" @@ -1057,6 +1068,162 @@ resolved "https://registry.npmjs.org/@bitgo/wasm-utxo/-/wasm-utxo-4.27.0.tgz#35e613b7022787e357dab43b71a662d05155ae4e" integrity sha512-If9zQ3bLO9Xn61h5zWgto3sR9CR+OGD7KoBYJQ8Vp9jBMNKeIe7ZYCc+6xJARwAx90woVl/ivkjPoaYJtmsiYw== +"@blaze-cardano/blueprint@0.8.2": + version "0.8.2" + resolved "https://registry.npmjs.org/@blaze-cardano/blueprint/-/blueprint-0.8.2.tgz#0c54bafefdb3b0ec9c1cd37594d33361fc0e43bd" + integrity sha512-Vqoyz/Pl67KdLPalobctnQ/JbrPmm7ooMBgko074f3CC+H2ZqO7ipk67E7G3ZWa+hEcxcNi5REf/J5dY8B4SoA== + +"@blaze-cardano/core@0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@blaze-cardano/core/-/core-0.8.0.tgz#eb7a60dba8694aa477be068f81237ef2add6909a" + integrity sha512-l7boNfxrl4epfRPzXbD8rIb4Lfq/f2sz1sI9DEX7Y2JPNj6SZUAflEWyPy4BhFDRba8QbLXS1dQ2PV4wEV18WQ== + dependencies: + "@cardano-sdk/core" "0.46" + "@cardano-sdk/crypto" "^0.4" + "@cardano-sdk/util" "^0.17" + "@noble/curves" "^1.8.1" + "@noble/ed25519" "^2.2.3" + "@noble/hashes" "^1.7.1" + "@scure/bip39" "^1.5.4" + blakejs "^1.2.1" + +"@blaze-cardano/core@^0.9.0": + version "0.9.1" + resolved "https://registry.npmjs.org/@blaze-cardano/core/-/core-0.9.1.tgz#101647fcd552cb04e2b70e5dbdc9f5b989e30e73" + integrity sha512-T3hxHuzEwo9pIbOWGAMXpN9q7w3WxOMywx5I7XNVRAYnlQl4kUJVEEHy6qZb3H4PdF+SfG5LQdm9jFErS/AfZQ== + dependencies: + "@cardano-sdk/core" "^0.46.15" + "@cardano-sdk/crypto" "^0.4.7" + "@cardano-sdk/util" "^0.17.2" + "@noble/curves" "^1.8.1" + "@noble/ed25519" "^2.2.3" + "@noble/hashes" "^1.7.1" + "@scure/bip39" "^1.5.4" + blakejs "^1.2.1" + +"@blaze-cardano/data@0.6.6": + version "0.6.6" + resolved "https://registry.npmjs.org/@blaze-cardano/data/-/data-0.6.6.tgz#8c7f06d8a25119b4a96bda3969f376fbb81eb694" + integrity sha512-wmk1LZRlSSkOHlASkTC4YMXhPU3WXdFo0lDl9maono9tJnD7PjhH1NI15j8NoZRgZHBFf2vJosLvp3L9lpME/w== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@sinclair/typebox" "^0.34.28" + +"@blaze-cardano/data@^0.6.1": + version "0.6.8" + resolved "https://registry.npmjs.org/@blaze-cardano/data/-/data-0.6.8.tgz#f6b6e7009ad602acc08f743eb8298a77ed0bfbbd" + integrity sha512-qrQ1ebGb99/xFf5w14FVcX/+PkhWvdrmNKgq2RIkG/1e1j8J1WsUW1orbPmtICsvb2ThPVNqNtVqDNrfFEU3/w== + dependencies: + "@blaze-cardano/core" "^0.9.0" + "@sinclair/typebox" "^0.34.28" + +"@blaze-cardano/emulator@^0.4.4": + version "0.4.5" + resolved "https://registry.npmjs.org/@blaze-cardano/emulator/-/emulator-0.4.5.tgz#1a1755a4df23915c335d02336ac5332e1b0d969c" + integrity sha512-Em7bjBAAoEEblYUih3T7bOMUxWY7XEOJKe1OE3AtPaWsOuuqqe9UHXuDztG91+QGm92k73W0aOGR0L8dgXyJkQ== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/query" "0.5.6" + "@blaze-cardano/tx" "0.14.1" + "@blaze-cardano/vm" "0.2.3" + "@blaze-cardano/wallet" "0.5.3" + +"@blaze-cardano/jest-config@0.0.1": + version "0.0.1" + resolved "https://registry.npmjs.org/@blaze-cardano/jest-config/-/jest-config-0.0.1.tgz#009a61a3ff99ac6f5b226f51a27ca79ca6362bd6" + integrity sha512-q/0BzXoN+PP4kcwmqthJEYrQ1ee3pZ1Y2dV7X7levyccX8yVMxgMUvJjXhZKl0Bb9g8JidoxanVaBW0d0Y0mSw== + +"@blaze-cardano/ogmios@0.0.7": + version "0.0.7" + resolved "https://registry.npmjs.org/@blaze-cardano/ogmios/-/ogmios-0.0.7.tgz#3e159a78e1cb3c90000bc66102fe33f56376549e" + integrity sha512-6T5Iz9Qpenp8tj3eogfvjGIxScm01oSrXrnT8oUFxOT4xYGz7PmX69Y80e+1AFAGIzZpHvYZdIQpGBr0Qlyswg== + dependencies: + "@cardano-ogmios/schema" "^6.6.1" + isomorphic-ws "^5.0.0" + +"@blaze-cardano/query@0.5.6": + version "0.5.6" + resolved "https://registry.npmjs.org/@blaze-cardano/query/-/query-0.5.6.tgz#3b1e1c666992077a02bdb33e7c353e249cd16fc7" + integrity sha512-OrdJW2MjUJ7gT0YJlxGnDGuLvImXMdQln8OH+nIDEBbaxBP7/hrqLVeEtGpLqlQzXf+zqXlPkImIPvU6Gh+ezg== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/jest-config" "0.0.1" + "@blaze-cardano/ogmios" "0.0.7" + "@cardano-ogmios/schema" "^6.6.1" + "@cardanosolutions/json-bigint" "^1.0.2" + ws "^8.17.1" + +"@blaze-cardano/sdk@0.2.47": + version "0.2.47" + resolved "https://registry.npmjs.org/@blaze-cardano/sdk/-/sdk-0.2.47.tgz#a25b6e3cf02f8a9738ae8c93d9885fbc5166b882" + integrity sha512-60cyOXKNqPXmO6LnlUic7KL3wErAUBql8x5CLv0Ixigq7UgjdeeY5uq5fY3MGVNmbg1FFLB8FreKl6c6VOv+2w== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/query" "0.5.6" + "@blaze-cardano/tx" "0.14.1" + "@blaze-cardano/uplc" "0.4.3" + "@blaze-cardano/wallet" "0.5.2" + +"@blaze-cardano/sdk@^0.2.31": + version "0.2.48" + resolved "https://registry.npmjs.org/@blaze-cardano/sdk/-/sdk-0.2.48.tgz#cbaf820098ca906f91b04597646071191463292e" + integrity sha512-2gmqilbwEiIOuOpUFTLsBoGFKIYgQ4O0NA8RWlH82XEOKbOhnaU9LDkZAF2/+5U4HpggUsrn1HnBlB+oiwdvbw== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/query" "0.5.6" + "@blaze-cardano/tx" "0.14.1" + "@blaze-cardano/uplc" "0.4.3" + "@blaze-cardano/wallet" "0.5.3" + +"@blaze-cardano/tx@0.14.1": + version "0.14.1" + resolved "https://registry.npmjs.org/@blaze-cardano/tx/-/tx-0.14.1.tgz#6144c88fc5f52dbd673e3bfca970d63d3220c0f2" + integrity sha512-8FiiWxbYsEj3Kq6/xw9NMxXG2FFZ5nLcs+vYQfxGFY2AA0duNI2onwAw9ZoY30n6mMoDQ7bHFXSP4GuQo86/BQ== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/vm" "0.2.3" + +"@blaze-cardano/uplc@0.4.3": + version "0.4.3" + resolved "https://registry.npmjs.org/@blaze-cardano/uplc/-/uplc-0.4.3.tgz#74bdeccf0a4f518d6ee1b3204dd7f7fbcfc58456" + integrity sha512-S3eJq6hpU7YaUk72EUVph7er8faFOG35WkzFeLbdo9KnFndjYV65q0OJY2Zzk+mHZCvyx3AJvJO6TloN4q1nfQ== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/data" "0.6.6" + hex-encoding "^2.0.2" + +"@blaze-cardano/vm@0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@blaze-cardano/vm/-/vm-0.2.3.tgz#223866415487c90837ca339b50c734d85bc4853d" + integrity sha512-TFOx6ARCLIqt+IbjvvWyrwLG8uh/voNYWhfpdQ8cHxxZox+lUHjJvxqzA/2HaSbmfW17Ljcca8T98TG1A6OFEw== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/uplc" "0.4.3" + +"@blaze-cardano/wallet@0.5.2": + version "0.5.2" + resolved "https://registry.npmjs.org/@blaze-cardano/wallet/-/wallet-0.5.2.tgz#55a8d1495fd1f1471caa5dc96351b1509e52e178" + integrity sha512-HM9QSYmrbSZ4Q+NZGhp6nbvPzoqf6QVEVDnkqOstXALTKmcXMGWl26RtX5gga2FN+ocuqalDAYraYE8k96+eIg== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/jest-config" "0.0.1" + "@blaze-cardano/query" "0.5.6" + "@blaze-cardano/tx" "0.14.1" + "@emurgo/cardano-message-signing-browser" "^1.1.0" + "@emurgo/cardano-message-signing-nodejs" "^1.1.0" + +"@blaze-cardano/wallet@0.5.3", "@blaze-cardano/wallet@^0.5.2": + version "0.5.3" + resolved "https://registry.npmjs.org/@blaze-cardano/wallet/-/wallet-0.5.3.tgz#b91228441249e1a811ab7d33ca0b9c737711951c" + integrity sha512-6UxqbGi56m5qu5gwi+04OFm+2FOgNid5HgsIoDZuXSiUdjP7R98WqaPe6lwCvLvLVcAZP+9Ht+99JvZzdHibUQ== + dependencies: + "@blaze-cardano/core" "0.8.0" + "@blaze-cardano/jest-config" "0.0.1" + "@blaze-cardano/query" "0.5.6" + "@blaze-cardano/tx" "0.14.1" + "@emurgo/cardano-message-signing-browser" "^1.1.0" + "@emurgo/cardano-message-signing-nodejs" "^1.1.0" + "@brandonblack/musig@^0.0.1-alpha.0": version "0.0.1-alpha.1" resolved "https://registry.npmjs.org/@brandonblack/musig/-/musig-0.0.1-alpha.1.tgz" @@ -1067,6 +1234,58 @@ resolved "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.7.0.tgz" integrity sha512-qn6tAIZEw5i/wiESBF4nQxZkl86aY4KoO0IkUa2Lh+rya64oTOdJQFlZuMwI1Qz9VBJQrQC4QlSA2DNek5gCOA== +"@cardano-ogmios/schema@^6.6.1": + version "6.14.0" + resolved "https://registry.npmjs.org/@cardano-ogmios/schema/-/schema-6.14.0.tgz#2d769e2a143e4fce2008708fdd7f4fc6c3607c68" + integrity sha512-s4mn/+5XxSli53tvaciP7KU9DNOXwRa/isPezFU7Sk33tz5Khqfs+7sDtDKlSHiVaFFAe/lb2sxjg0uM+tg9oQ== + +"@cardano-sdk/core@0.46", "@cardano-sdk/core@0.46.15", "@cardano-sdk/core@^0.46.15": + version "0.46.15" + resolved "https://registry.npmjs.org/@cardano-sdk/core/-/core-0.46.15.tgz#a6fc8baef907b4ffeaa1fd4a8c05bf967a17d0be" + integrity sha512-ubfUpDaSSEGxfmdCvV8xN7niXy1cR3HX4dCA/zJH91GpuV5XGGttI5pFbxpqDZubYHU2lw+QQ2kWJJGHQmjbog== + dependencies: + "@biglup/is-cid" "^1.0.3" + "@cardano-sdk/crypto" "~0.4.7" + "@cardano-sdk/util" "~0.17.2" + "@foxglove/crc" "^0.0.3" + "@scure/base" "^1.1.1" + fraction.js "4.0.1" + ip-address "^10.2.0" + lodash "^4.17.21" + ts-custom-error "^3.2.0" + ts-log "^2.2.4" + web-encoding "^1.1.5" + +"@cardano-sdk/crypto@^0.4", "@cardano-sdk/crypto@^0.4.7", "@cardano-sdk/crypto@~0.4.7": + version "0.4.7" + resolved "https://registry.npmjs.org/@cardano-sdk/crypto/-/crypto-0.4.7.tgz#d40736dad5fc287defc846244ffea8bfd3c46eaa" + integrity sha512-4aCsLOkqaIS/gSGw4SBqNGcCIp6hZ8alQWJx58U/OiOxC43t7i2JpKagdyWfCNekPM14hO7BWER7y31wf4BFxw== + dependencies: + "@cardano-sdk/util" "~0.17.2" + blake2b "^2.1.4" + i "^0.3.7" + libsodium-wrappers-sumo "0.8.4" + lodash "^4.17.21" + pbkdf2 "^3.1.3" + ts-custom-error "^3.2.0" + ts-log "^2.2.4" + +"@cardano-sdk/util@^0.17", "@cardano-sdk/util@^0.17.2", "@cardano-sdk/util@~0.17.2": + version "0.17.2" + resolved "https://registry.npmjs.org/@cardano-sdk/util/-/util-0.17.2.tgz#789ab12c08436b0bd3d78a10b203e35a49851288" + integrity sha512-LdY33OQG5H4p0rppHtjnM+akc1poKhz+02T9zsXsbShfTbeU9HXlA0nJ8xj9FNZMs+ozDR0HWrUjDc7fkNZI7w== + dependencies: + bech32 "^2.0.0" + lodash "^4.17.21" + serialize-error "^8" + ts-custom-error "^3.2.0" + ts-log "^2.2.4" + +"@cardanosolutions/json-bigint@^1.0.2": + version "1.1.0" + resolved "https://registry.npmjs.org/@cardanosolutions/json-bigint/-/json-bigint-1.1.0.tgz#dddfa10825de8c1856d8ec945db8f4e366f8cef3" + integrity sha512-Pdgz18cSwLKKgheOqW/dqbzNI+CliNT4AdaKaKY/P++J9qLxIB8MITCurlzbaFWV3W4nmK0CRQwI1yvuArmjFg== + "@cbor-extract/cbor-extract-darwin-arm64@2.2.0": version "2.2.0" resolved "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz" @@ -1097,6 +1316,18 @@ resolved "https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz#4b3f07af047f984c082de34b116e765cb9af975f" integrity sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w== +"@chainsafe/is-ip@^2.0.1": + version "2.1.0" + resolved "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.1.0.tgz#ba9ac32acd9027698e0b56b91c7af069d28d7931" + integrity sha512-KIjt+6IfysQ4GCv66xihEitBjvhU/bixbbbFxdJ1sqCp4uJ0wuZiYBPhksZoy4lfaF0k9cwNzY5upEW/VWdw3w== + +"@chainsafe/netmask@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz#0d4a75f47919f65011da4327a3845c9661f1038a" + integrity sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg== + dependencies: + "@chainsafe/is-ip" "^2.0.1" + "@clack/core@^0.3.3": version "0.3.5" resolved "https://registry.npmjs.org/@clack/core/-/core-0.3.5.tgz" @@ -1741,6 +1972,14 @@ resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@dnsquery/dns-packet@^6.1.1": + version "6.1.1" + resolved "https://registry.npmjs.org/@dnsquery/dns-packet/-/dns-packet-6.1.1.tgz#3abf2c7ebb6dece40a75f429e24f9de23671058a" + integrity sha512-WXTuFvL3G+74SchFAtz3FgIYVOe196ycvGsMgvSH/8Goptb1qpIQtIuM4SOK9G9lhMWYpHxnXyy544ZhluFOew== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.4" + utf8-codec "^1.0.0" + "@emnapi/core@1.4.5": version "1.4.5" resolved "https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz#bfbb0cbbbb9f96ec4e2c4fd917b7bbe5495ceccb" @@ -1807,6 +2046,16 @@ resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@emurgo/cardano-message-signing-browser@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@emurgo/cardano-message-signing-browser/-/cardano-message-signing-browser-1.1.0.tgz#7376839a5b7e2dbdb3cf07881a1aa895545cc31a" + integrity sha512-LyeiGIqCyZu9DZnKsi4wlBjZA1MN+uy3Cqpb5J6RZWvFXDJnCoxrYB/EixUiGRD/la4WsldBgtPsrIHyGsVkpg== + +"@emurgo/cardano-message-signing-nodejs@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@emurgo/cardano-message-signing-nodejs/-/cardano-message-signing-nodejs-1.1.0.tgz#04d45a48deed32e8ead16cf1e534162562e16835" + integrity sha512-PQRc8K8wZshEdmQenNUzVtiI8oJNF/1uAnBhidee5C4o1l2mDLOW+ur46HWHIFKQ6x8mSJTllcjMscHgzju0gQ== + "@emurgo/cardano-serialization-lib-browser@^12.0.1": version "12.1.1" resolved "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-12.1.1.tgz" @@ -2835,6 +3084,11 @@ "@scure/base" "1.1.5" micro-eth-signer "0.7.2" +"@foxglove/crc@^0.0.3": + version "0.0.3" + resolved "https://registry.npmjs.org/@foxglove/crc/-/crc-0.0.3.tgz#04cd8816454e14f1ec48de17c949199b4b3ec9c2" + integrity sha512-DjIZsnL3CyP/yQ/vUYA9cjrD0a/8YXejI5ZmsaOiT16cLfZcTwaCxIN01/ys4jsy+dZCQ/9DnWFn7AEFbiMDaA== + "@gar/promise-retry@^1.0.0", "@gar/promise-retry@^1.0.2": version "1.0.3" resolved "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz#65e726428e794bc4453948e0a41e6de4215ce8b0" @@ -3376,7 +3630,7 @@ resolved "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@leichtgewicht/ip-codec@^2.0.1": +"@leichtgewicht/ip-codec@^2.0.1", "@leichtgewicht/ip-codec@^2.0.4": version "2.0.5" resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz" integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== @@ -3454,6 +3708,18 @@ yargs "17.7.2" yargs-parser "21.1.1" +"@libp2p/interface@^3.1.0": + version "3.2.5" + resolved "https://registry.npmjs.org/@libp2p/interface/-/interface-3.2.5.tgz#fe951a4f864f9012e5b9ae9495ebebdf20c0e4b7" + integrity sha512-RdTchTdakBBc4ShKKsvoME/bJYsrCoVDpdYQVdd4TQ30TCb8QwWKGClqAtw7gfLNuaUKm41xz06kASW6AZpbDA== + dependencies: + "@multiformats/dns" "^1.0.6" + "@multiformats/multiaddr" "^13.0.3" + main-event "^1.0.1" + multiformats "^14.0.0" + progress-events "^1.1.0" + uint8arraylist "^3.0.2" + "@ljharb/resumer@~0.0.1": version "0.0.1" resolved "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz" @@ -3480,6 +3746,48 @@ tweetnacl "^1.0.3" tweetnacl-util "^0.15.1" +"@multiformats/dns@^1.0.3", "@multiformats/dns@^1.0.6": + version "1.0.15" + resolved "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.15.tgz#d0a1bbb2250d31ac53455d882e2007bf2a99a5e3" + integrity sha512-W0zAMABtAn+3chgFcPGvllKND7M6GblMAAFcJQTy+iMmGiyFErZYPzAh2b50Y3SFf340iFV7+ckVgZkGfUyxzA== + dependencies: + "@dnsquery/dns-packet" "^6.1.1" + "@libp2p/interface" "^3.1.0" + hashlru "^2.3.0" + p-queue "^9.0.0" + progress-events "^1.0.0" + uint8arrays "^6.1.1" + +"@multiformats/mafmt@^12.1.6": + version "12.1.6" + resolved "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-12.1.6.tgz#e7c1831c1e94c94932621826049afc89f3ad43b7" + integrity sha512-tlJRfL21X+AKn9b5i5VnaTD6bNttpSpcqwKVmDmSHLwxoz97fAHaepqFOk/l1fIu94nImIXneNbhsJx/RQNIww== + dependencies: + "@multiformats/multiaddr" "^12.0.0" + +"@multiformats/multiaddr@^12.0.0", "@multiformats/multiaddr@^12.1.14": + version "12.5.1" + resolved "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.5.1.tgz#45d64456eddbf8cbe179366d7cb7b72efabe049f" + integrity sha512-+DDlr9LIRUS8KncI1TX/FfUn8F2dl6BIxJgshS/yFQCNB5IAF0OGzcwB39g5NLE22s4qqDePv0Qof6HdpJ/4aQ== + dependencies: + "@chainsafe/is-ip" "^2.0.1" + "@chainsafe/netmask" "^2.0.0" + "@multiformats/dns" "^1.0.3" + abort-error "^1.0.1" + multiformats "^13.0.0" + uint8-varint "^2.0.1" + uint8arrays "^5.0.0" + +"@multiformats/multiaddr@^13.0.3": + version "13.0.3" + resolved "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.3.tgz#f33a69879bd817fb67bab8ceb976c5d7dec38e7b" + integrity sha512-mEqqJ4r3a/uuFMTpRkU316wGNIDQNhuVWpm+ebKTQeYsfv9jXbPONWM6VVnj3KGUrwfsX7GZOyp4TFqEA2SPCw== + dependencies: + "@chainsafe/is-ip" "^2.0.1" + multiformats "^14.0.0" + uint8-varint "^3.0.0" + uint8arrays "^6.1.1" + "@mysten/bcs@^0.7.0": version "0.7.4" resolved "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.4.tgz" @@ -3771,6 +4079,11 @@ dependencies: "@noble/hashes" "1.8.0" +"@noble/ed25519@^2.2.3": + version "2.3.0" + resolved "https://registry.npmjs.org/@noble/ed25519/-/ed25519-2.3.0.tgz#df0dbe424cfd7da4968b956b819c15db5fbe7f21" + integrity sha512-M7dvXL2B92/M7dw9+gzuydL8qn/jiqNHaoR3Q+cb1q1GHV7uwE17WCyFMG+Y+TZb5izcaXk5TdJRrDUxHXL78A== + "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" @@ -3796,7 +4109,7 @@ resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz" integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== -"@noble/hashes@1.8.0", "@noble/hashes@^1", "@noble/hashes@^1.0.0", "@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.3.3", "@noble/hashes@^1.4.0", "@noble/hashes@^1.5.0", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1", "@noble/hashes@^1.0.0", "@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.3.3", "@noble/hashes@^1.4.0", "@noble/hashes@^1.5.0", "@noble/hashes@^1.7.1", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": version "1.8.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== @@ -5067,7 +5380,7 @@ "@noble/hashes" "~1.4.0" "@scure/base" "~1.1.6" -"@scure/bip39@1.6.0", "@scure/bip39@^1.2.1", "@scure/bip39@^1.3.0", "@scure/bip39@^1.5.1", "@scure/bip39@^1.6.0": +"@scure/bip39@1.6.0", "@scure/bip39@^1.2.1", "@scure/bip39@^1.3.0", "@scure/bip39@^1.5.1", "@scure/bip39@^1.5.4", "@scure/bip39@^1.6.0": version "1.6.0" resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz" integrity sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A== @@ -5166,6 +5479,11 @@ resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz" integrity sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g== +"@sinclair/typebox@^0.34.28": + version "0.34.52" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.52.tgz#62f8a686e4ab28a8944902e2ad2d648312ef11cb" + integrity sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw== + "@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" @@ -5677,6 +5995,40 @@ resolved "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz" integrity sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg== +"@sundaeswap/asset@1.0.11", "@sundaeswap/asset@^1.0.11": + version "1.0.11" + resolved "https://registry.npmjs.org/@sundaeswap/asset/-/asset-1.0.11.tgz#0bf26bf362068f008120a9e5aefa57cb362b29cd" + integrity sha512-xbubSh7cm/0yb/8sHCw6ad03fS6L8/1tMiT9q7LeM9y8mn+xQ64ylJkCWWob1tVQDf6BaaWsKquhXlKhsn+70Q== + dependencies: + "@sundaeswap/fraction" "1.0.8" + +"@sundaeswap/bigint-math@^0.6.3": + version "0.6.3" + resolved "https://registry.npmjs.org/@sundaeswap/bigint-math/-/bigint-math-0.6.3.tgz#1cd63baab1838a4d14e8dc6df0ece774c386390e" + integrity sha512-FTXBd8F9LAvZsTZII7SBbZTEnjJc4JOSHp0XM+byAMsIDXglrYKotZT8z4QnYBxq1EcuhONsKdutibTfst4sgg== + +"@sundaeswap/core@^2.13.1": + version "2.13.1" + resolved "https://registry.npmjs.org/@sundaeswap/core/-/core-2.13.1.tgz#182be94ee5924c091ccc637b2d1952323de438ea" + integrity sha512-38f5xyBjS26LIVyDmvJHFwF0q8wM4Hdv77EdsS/TGjrH+x1eLSJQOoQvxF8Nqotj8jRutx+vy8HU2ejsJa9dfA== + dependencies: + "@blaze-cardano/data" "^0.6.1" + "@blaze-cardano/sdk" "^0.2.31" + "@sundaeswap/asset" "^1.0.11" + "@sundaeswap/bigint-math" "^0.6.3" + "@sundaeswap/fraction" "^1.0.5" + "@sundaeswap/math" "0.3.0" + +"@sundaeswap/fraction@1.0.8", "@sundaeswap/fraction@^1.0.5": + version "1.0.8" + resolved "https://registry.npmjs.org/@sundaeswap/fraction/-/fraction-1.0.8.tgz#66c05425bc68922e9f31efe2fb0c192acafccf15" + integrity sha512-vTDao3tzT/cbWt+uTy5dPWUwe7FVkNoPWG6x+pXP4go7kSCy2tzLaNaFP79pOfJENPMYoLd7OXiClQ98pCeY6Q== + +"@sundaeswap/math@0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@sundaeswap/math/-/math-0.3.0.tgz#4854f5cec3c856c6996f33cb42d0f816656ad99e" + integrity sha512-M+2/TexbRFOo13CuylChvAIVHCU8yF0RUw4+J1m9R8zh1ro9st1lEZoAuyE7H9CIXJgkWPyiaQNyLgnG7VXXdA== + "@swc/core-darwin-arm64@1.5.7": version "1.5.7" resolved "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.7.tgz" @@ -6972,6 +7324,11 @@ dependencies: argparse "^2.0.1" +"@zxing/text-encoding@0.9.0": + version "0.9.0" + resolved "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" + integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== + JSONStream@^1.0.3, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" @@ -6995,6 +7352,11 @@ abitype@1.1.0, abitype@^1.0.6, abitype@^1.0.9: resolved "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz" integrity sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A== +abort-error@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/abort-error/-/abort-error-1.0.2.tgz#9fd4b364b3659dadd9ad8af54ec9a1678b51c778" + integrity sha512-lVgvB2NyPLqbXXhVmXcYFTC1x5K7CiVdPgdY7LGgFQWC8506oN01sPN3i9cl9ynuwF4iJ0TS9exnR7cZ9FuX4w== + accepts@~1.3.4, accepts@~1.3.8: version "1.3.8" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" @@ -7612,6 +7974,11 @@ axios@0.25.0, axios@0.27.2, axios@1.16.0, axios@1.18.0, axios@1.7.4, axios@^0.21 https-proxy-agent "^5.0.1" proxy-from-env "^2.1.0" +b4a@^1.0.1: + version "1.8.1" + resolved "https://registry.npmjs.org/b4a/-/b4a-1.8.1.tgz#7f16334ca80127aeb26064a28841acbf174840a4" + integrity sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw== + b4a@^1.6.4: version "1.7.3" resolved "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz" @@ -8020,6 +8387,22 @@ bl@4.1.0, bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" +blake2b-wasm@^2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz#9115649111edbbd87eb24ce7c04b427e4e2be5be" + integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== + dependencies: + b4a "^1.0.1" + nanoassert "^2.0.0" + +blake2b@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" + integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== + dependencies: + blake2b-wasm "^2.4.0" + nanoassert "^2.0.0" + blakejs@^1.1.0, blakejs@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" @@ -8671,7 +9054,7 @@ cbor-x@^1.6.0: optionalDependencies: cbor-extract "^2.2.0" -cbor@^10.0.3: +cbor@10.0.11, cbor@^10.0.3: version "10.0.11" resolved "https://registry.npmjs.org/cbor/-/cbor-10.0.11.tgz" integrity sha512-vIwORDd/WyB8Nc23o2zNN5RrtFGlR6Fca61TtjkUXueI3Jf2DOZDl1zsshvBntZ3wZHBM9ztjnkXSmzQDaq3WA== @@ -11290,6 +11673,11 @@ eventemitter3@^4.0.0, eventemitter3@^4.0.4: resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter3@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" + integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== + events-universal@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz" @@ -11917,6 +12305,11 @@ fp-ts@^2.0.0, fp-ts@^2.12.2, fp-ts@^2.16.2: resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.11.tgz" integrity sha512-LaI+KaX2NFkfn1ZGHoKCmcfv7yrZsC3b8NtWsTVQeHkq4F27vI5igUuO53sxqDEa2gNQMHFPmpojDw/1zmUK7w== +fraction.js@4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.1.tgz#c6b5218b230b082188e6c53e76b0965c052da24c" + integrity sha512-NQYzZw8MUsxSZFQo6E8tKOlmSd/BlDTNOR4puXFSHSwFwNaIlmbortQy5PDN/KnVQ4xWG2NtN0J0hjPw7eE06A== + fraction.js@^4.3.7: version "4.3.7" resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" @@ -11965,7 +12358,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^2.1.0: +fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== @@ -12501,6 +12894,16 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" +hash-base@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz#79d72def7611c3f6e3c3b5730652638001b10a74" + integrity sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg== + dependencies: + inherits "^2.0.4" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" + to-buffer "^1.2.1" + hash-base@~3.0, hash-base@~3.0.4: version "3.0.5" resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz" @@ -12525,6 +12928,11 @@ hasha@^5.0.0: is-stream "^2.0.0" type-fest "^0.8.0" +hashlru@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz#5dc15928b3f6961a2056416bb3a4910216fdfb51" + integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A== + hasown@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" @@ -12558,6 +12966,14 @@ help-me@^5.0.0: resolved "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz" integrity sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg== +hex-encoding@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/hex-encoding/-/hex-encoding-2.0.3.tgz#59ecfa5c07170f29405db7c2a7633b1ad380df47" + integrity sha512-sSmMo4ij2Vejht+5UkzuzNGiYgIWTSUw0GQqxHIQXsuuXB1ozYnjCZJZ/nwWNYRoU8+92Dp736wqxmiAN6/fcw== + dependencies: + node-buffer-encoding "^1.0.3" + uint8-encoding "^2.0.1" + hi-base32@^0.5.1: version "0.5.1" resolved "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz" @@ -12889,6 +13305,11 @@ hyperdyperid@^1.2.0: resolved "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz" integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== +i@^0.3.7: + version "0.3.7" + resolved "https://registry.npmjs.org/i/-/i-0.3.7.tgz#2a7437a923d59c14b17243dc63a549af24d85799" + integrity sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q== + ic0@^0.3.2: version "0.3.2" resolved "https://registry.npmjs.org/ic0/-/ic0-0.3.2.tgz" @@ -13157,7 +13578,7 @@ iobuffer@^5.3.2: resolved "https://registry.npmjs.org/iobuffer/-/iobuffer-5.4.0.tgz" integrity sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA== -ip-address@10.4.0, ip-address@^10.1.1: +ip-address@10.4.0, ip-address@^10.1.1, ip-address@^10.2.0: version "10.4.0" resolved "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz#c5910bc541b6eae287765d1e4846be0308a05d93" integrity sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ== @@ -13646,6 +14067,11 @@ isexe@^4.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz#48f6576af8e87a18feb796b7ed5e2e5903b43dca" integrity sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw== +iso-url@^1.1.3: + version "1.2.1" + resolved "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" + integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== + iso-url@~0.4.7: version "0.4.7" resolved "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz" @@ -14364,6 +14790,18 @@ libsodium-sumo@^0.7.15: resolved "https://registry.npmjs.org/libsodium-sumo/-/libsodium-sumo-0.7.15.tgz" integrity sha512-5tPmqPmq8T8Nikpm1Nqj0hBHvsLFCXvdhBFV7SGOitQPZAA6jso8XoL0r4L7vmfKXr486fiQInvErHtEvizFMw== +libsodium-sumo@^0.8.0: + version "0.8.4" + resolved "https://registry.npmjs.org/libsodium-sumo/-/libsodium-sumo-0.8.4.tgz#6d4687781fa0ad398af14a7df872d5c27cf8cd31" + integrity sha512-TMtHShQfVVsaxDygyapvUC3o7YsPgXa/hRWeIgzyFz6w5k/1hirGptCxp1U7XwW3rCskaTTYKgV10v86UiGgNw== + +libsodium-wrappers-sumo@0.8.4: + version "0.8.4" + resolved "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.8.4.tgz#6656a3e7e0551ecce08ddee4bfb501a092eac6fa" + integrity sha512-ql7hcgulKZ3ekfa2DGAogcCKsWU0diA/0nArz1CFzh93WQdb46/Kj18ka/Hifq6uA3Ush34Pc6vU/6HXeRwUkg== + dependencies: + libsodium-sumo "^0.8.0" + libsodium-wrappers-sumo@^0.7.11, libsodium-wrappers-sumo@^0.7.9: version "0.7.15" resolved "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.15.tgz" @@ -14777,6 +15215,11 @@ magic-string@^0.30.18: dependencies: "@jridgewell/sourcemap-codec" "^1.5.5" +main-event@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/main-event/-/main-event-1.0.5.tgz#956db3cd0d730cc96df9440e4da78a2519702ce9" + integrity sha512-4l9z8r7Q446mhhVTwdHmfPksOYBwN2xa7ewEW2yxPVNQapIaAf57ORFLMB91SpMEMa4wXowect7fq3uMLjDnGA== + make-dir@4.0.0, make-dir@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" @@ -15321,7 +15764,7 @@ minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4, minipass@^7.1.2: resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -minizlib@^2.1.2: +minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== @@ -15348,7 +15791,7 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" -mkdirp@^1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -15497,6 +15940,16 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" +multiformats@^13.0.0, multiformats@^13.0.1: + version "13.4.2" + resolved "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz#309ee17d3946db9a6954cf6832aeb2b4b10dd0f3" + integrity sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ== + +multiformats@^14.0.0: + version "14.0.5" + resolved "https://registry.npmjs.org/multiformats/-/multiformats-14.0.5.tgz#3d9819edefb885d9029cedcae565fd0a8f3052df" + integrity sha512-vbIm83F2yZ1pWJGS0yl0ysracIvv56LtbrIyiIQHoLdYDJOMoLfVFsXhh9DUH4SFdkdkFhucyWniihsNzVEjkQ== + multimatch@5.0.0, multimatch@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz" @@ -15672,6 +16125,11 @@ node-addon-api@^7.0.0: resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz" integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== +node-buffer-encoding@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/node-buffer-encoding/-/node-buffer-encoding-1.0.3.tgz#94bab4c82e8ace9e69c17771f9fe8269f9469ddd" + integrity sha512-9hJZNChhQoCN1rCFScJiEwtzvWEJw2wSnu2nhDLD/YOYl1Ce8GbtnorsnjwwjpSk4sWE7zSp2etX6j7+bO7fVA== + node-domexception@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz" @@ -16538,6 +16996,14 @@ p-queue@6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" +p-queue@^9.0.0: + version "9.3.3" + resolved "https://registry.npmjs.org/p-queue/-/p-queue-9.3.3.tgz#c5e528c7eb361b7ba8eb5a9406902f7f2e75fc8f" + integrity sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA== + dependencies: + eventemitter3 "^5.0.4" + p-timeout "^7.0.0" + p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz" @@ -16559,6 +17025,11 @@ p-timeout@^3.2.0: dependencies: p-finally "^1.0.0" +p-timeout@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz#95680a6aa693c530f14ac337b8bd32d4ec6ae4f0" + integrity sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg== + p-try@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" @@ -16914,6 +17385,18 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: sha.js "^2.4.11" to-buffer "^1.2.0" +pbkdf2@^3.1.3: + version "3.1.6" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.6.tgz#935cb1d99e491880cb48cb070bb539a6901e57d6" + integrity sha512-BT6eelPB1EyGHo8pC0o9Bl6k6SYVhKO1jEbd3lcTrtr7XHdjP8BW1YpfCV3G9Kwkxgattk+S5q2/RvuttCsS1g== + dependencies: + create-hash "^1.2.0" + create-hmac "^1.1.7" + ripemd160 "^2.0.3" + safe-buffer "^5.2.1" + sha.js "^2.4.12" + to-buffer "^1.2.2" + pdfjs-dist@^4.0.0: version "4.10.38" resolved "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.10.38.tgz#3ee698003790dc266cc8b55c0e662ccb9ae18f53" @@ -17475,6 +17958,11 @@ proggy@^3.0.0: resolved "https://registry.npmjs.org/proggy/-/proggy-3.0.0.tgz" integrity sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q== +progress-events@^1.0.0, progress-events@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/progress-events/-/progress-events-1.1.0.tgz#32c5c3cbce3d6465a31ca088e088aef8a44841df" + integrity sha512-82DVc5tI36neVB3IjdXR11ztwGuoBc98em9ijzubeZKxI47OlV2Znq6mlPqE5xPDzO2Uw98GHiQSjj2favBCRQ== + progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" @@ -18345,6 +18833,14 @@ ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: hash-base "^3.0.0" inherits "^2.0.1" +ripemd160@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz#9be54e4ba5e3559c8eee06a25cd7648bbccdf5a8" + integrity sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA== + dependencies: + hash-base "^3.1.2" + inherits "^2.0.4" + ripple-address-codec@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-5.0.0.tgz" @@ -18656,6 +19152,13 @@ send@0.19.0: range-parser "~1.2.1" statuses "2.0.1" +serialize-error@^8: + version "8.1.0" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-8.1.0.tgz#3a069970c712f78634942ddd50fbbc0eaebe2f67" + integrity sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ== + dependencies: + type-fest "^0.20.2" + serialize-javascript@7.0.5, serialize-javascript@^6.0.0, serialize-javascript@^6.0.2: version "7.0.5" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz#c798cc0552ffbb08981914a42a8756e339d0d5b1" @@ -18740,7 +19243,7 @@ setprototypeof@1.2.0: resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@>=2.4.12, sha.js@^2.3.6, sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8, sha.js@~2.4.4: +sha.js@>=2.4.12, sha.js@^2.3.6, sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.12, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.12" resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== @@ -19881,10 +20384,22 @@ tar-stream@^3.1.5: fast-fifo "^1.2.0" streamx "^2.15.0" -tar@6.2.1, tar@7.5.21, tar@^6.1.11, tar@^6.1.2, tar@^7.4.3: - version "7.5.21" - resolved "https://registry.npmjs.org/tar/-/tar-7.5.21.tgz#b3405af2eb493523ce4379f531e9ebda0601bc59" - integrity sha512-XdhtCvlMywwxpCW8YEq3lOXBJpUPTR2OHHcwLPO3HwsJqOHa2Ok/oJ7ruGzp+JrKoRPVCzJwAdEjqLW/vNRPHA== +tar@6.2.1, tar@^6.1.11, tar@^6.1.2: + version "6.2.1" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tar@^7.4.3: + version "7.5.1" + resolved "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz" + integrity sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g== dependencies: "@isaacs/fs-minipass" "^4.0.0" chownr "^3.0.0" @@ -20095,6 +20610,15 @@ to-buffer@^1.2.0: safe-buffer "^5.2.1" typed-array-buffer "^1.0.3" +to-buffer@^1.2.1, to-buffer@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz#ffe59ef7522ada0a2d1cb5dfe03bb8abc3cdc133" + integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw== + dependencies: + isarray "^2.0.5" + safe-buffer "^5.2.1" + typed-array-buffer "^1.0.3" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -20185,6 +20709,11 @@ tronweb@5.1.0: semver "^5.6.0" validator "^13.7.0" +ts-custom-error@^3.2.0: + version "3.3.1" + resolved "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz#8bd3c8fc6b8dc8e1cb329267c45200f1e17a65d1" + integrity sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A== + ts-loader@^9.1.2: version "9.5.4" resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz" @@ -20196,6 +20725,11 @@ ts-loader@^9.1.2: semver "^7.3.4" source-map "^0.7.4" +ts-log@^2.2.4: + version "2.2.7" + resolved "https://registry.npmjs.org/ts-log/-/ts-log-2.2.7.tgz#4f4512144898b77c9984e91587076fcb8518688e" + integrity sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg== + ts-results@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/ts-results/-/ts-results-3.3.0.tgz" @@ -20485,11 +21019,60 @@ uglify-js@^3.1.4: resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz" integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== +uint8-encoding@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/uint8-encoding/-/uint8-encoding-2.0.1.tgz#f8011194c8e576f9629dfd751b2c36d468dcaf59" + integrity sha512-xZAjZ+3OvrDtjFLLgojrLmG6T0YwZEo0OTyqCBxFjlFimIKnLtFqyYk6z/jDOUlJFJE52Srtrv4W4x7t4Cn/dA== + +uint8-varint@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.5.tgz#b7e5af1bc5ff3bc52f913193373f33018c845fda" + integrity sha512-jeFLbL/x30wBRnWjKE1qVBXeumG46r7XmYkpis955lTQ+blccGKFrOsSMHlxePwYB1pI7L8YPHz1t4jLxEs3nA== + dependencies: + uint8arraylist "^2.0.0" + uint8arrays "^5.0.0" + +uint8-varint@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz#073d9a1eb24fcb52fae6763511722b7c60b4a951" + integrity sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q== + dependencies: + uint8arraylist "^3.0.1" + uint8arrays "^6.1.0" + uint8array-tools@0.0.7: version "0.0.7" resolved "https://registry.npmjs.org/uint8array-tools/-/uint8array-tools-0.0.7.tgz" integrity sha512-vrrNZJiusLWoFWBqz5Y5KMCgP9W9hnjZHzZiZRT8oNAkq3d5Z5Oe76jAvVVSRh4U8GGR90N2X1dWtrhvx6L8UQ== +uint8arraylist@^2.0.0: + version "2.4.9" + resolved "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.9.tgz#32aaa90d00ac9b4c3985e889f34d0211a06bb9bb" + integrity sha512-KxWjyEFzchzik3aoQlK66oaoxIReoMo5bQRm1fcjBUZvE8xv/tyR3CTKhjh6K/faV8VaF6hd5pjr45CzbwuwkA== + dependencies: + uint8arrays "^5.0.1" + +uint8arraylist@^3.0.1, uint8arraylist@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz#ca67cba700d0aafec34f8f547f40adc3ee769a57" + integrity sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ== + dependencies: + uint8arrays "^6.0.0" + +uint8arrays@^5.0.0, uint8arrays@^5.0.1: + version "5.1.1" + resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz#85b2811d0be22b1b1530f96c6abeb64a718f3f12" + integrity sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ== + dependencies: + multiformats "^13.0.0" + +uint8arrays@^6.0.0, uint8arrays@^6.1.0, uint8arrays@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz#c2b59dddacc69ac4813ea29ac4b8d727189de522" + integrity sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA== + dependencies: + multiformats "^14.0.0" + umd@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz" @@ -20699,6 +21282,11 @@ utf-8-validate@^5.0.2: dependencies: node-gyp-build "^4.3.0" +utf8-codec@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/utf8-codec/-/utf8-codec-1.0.0.tgz#b30252507271cd612dbf5b58f04620a5e1e7bb89" + integrity sha512-S/QSLezp3qvG4ld5PUfXiH7mCFxLKjSVZRFkB3DOjgwHuJPFDkInAXc/anf7BAbHt/D38ozDzL+QMZ6/7gsI6w== + utf8@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" @@ -20724,7 +21312,7 @@ util@^0.10.4, util@~0.10.1: dependencies: inherits "2.0.3" -util@^0.12.0, util@^0.12.1, util@^0.12.4, util@^0.12.5: +util@^0.12.0, util@^0.12.1, util@^0.12.3, util@^0.12.4, util@^0.12.5: version "0.12.5" resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -20893,6 +21481,15 @@ wcwidth@1.0.1, wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-encoding@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" + integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== + dependencies: + util "^0.12.3" + optionalDependencies: + "@zxing/text-encoding" "0.9.0" + web-streams-polyfill@^3.0.3: version "3.3.3" resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz" @@ -21355,6 +21952,11 @@ ws@7.5.10, ws@8.17.1, ws@8.18.0, ws@^7, ws@^7.0.0, ws@^7.3.1, ws@^7.5.10: resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.17.1: + version "8.21.3" + resolved "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + ws@~8.17.1: version "8.17.1" resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz"