diff --git a/src/debug/layout.ts b/src/debug/layout.ts
index ce5bb1d..dcf4df2 100644
--- a/src/debug/layout.ts
+++ b/src/debug/layout.ts
@@ -1,3 +1,5 @@
+import { EVMStateManagerInterface } from "@ethereumjs/common";
+import { Address } from "@ethereumjs/util";
import {
ArrayType,
ContractDefinition,
@@ -7,9 +9,10 @@ import {
PointerType,
TypeNode
} from "solc-typed-ast";
+import { ContractStates } from "../utils";
import { IArtifactManager } from "./artifact_manager";
import { nextWord, roundLocToType, stor_decodeValue } from "./decoding";
-import { MapKeys } from "./tracers";
+import { getMapKeys, getStorage, KeccakPreimageMap, MapKeys } from "./tracers";
import { DataLocationKind, Storage, StorageLocation } from "./types";
export interface ContractSolidityState {
@@ -20,6 +23,42 @@ function isTypeStringStatic32Bytes(t: string): boolean {
return t.endsWith("[]") || t.includes("mapping(");
}
+export async function decodeContractStates(
+ artifactManager: IArtifactManager,
+ contracts: Iterable
,
+ state: EVMStateManagerInterface,
+ preimages: KeccakPreimageMap
+): Promise {
+ const res: ContractStates = {};
+ const mapKeys = getMapKeys(preimages);
+
+ for (const addr of contracts) {
+ const code = await state.getContractCode(addr);
+ const info = artifactManager.getContractFromDeployedBytecode(code);
+
+ if (!info || !info.ast) {
+ continue;
+ }
+
+ const infer = artifactManager.infer(info.artifact.compilerVersion);
+ const storage = await getStorage(state, addr);
+
+ const contractState = decodeContractState(
+ artifactManager,
+ infer,
+ info.ast,
+ storage,
+ mapKeys
+ );
+
+ if (contractState) {
+ res[addr.toString()] = contractState;
+ }
+ }
+
+ return res;
+}
+
export function decodeContractState(
artifactManager: IArtifactManager,
infer: InferType,
diff --git a/src/debug/tracers/base_tracer.ts b/src/debug/tracers/base_tracer.ts
index 296b38b..d612dc5 100644
--- a/src/debug/tracers/base_tracer.ts
+++ b/src/debug/tracers/base_tracer.ts
@@ -31,7 +31,16 @@ export interface FoundryTxResult extends RunTxResult {
*/
const vmToEVMMap = new Map();
-export abstract class BaseSolTxTracer {
+/**
+ * Base class for all trace processors. You can think of trace processing as a combination
+ * of a map operation from `InterpreterStep` -> `TraceT`, along with a reduce operation
+ * from `(TraceT, CtxT) -> CtxT`. All the map functions are stored in `transformers/` to allow
+ * for reusability between different tracers.
+ *
+ * There is yet no formal place for reducers to go to. Check out `storage_decode_tracer.ts` for an example
+ * of a reducer that accumulates live contracts and keccak preimages at each step.
+ */
+export abstract class BaseSolTxTracer {
artifactManager!: IArtifactManager;
protected readonly strict: boolean;
protected readonly foundryCheatcodes: boolean;
@@ -131,26 +140,37 @@ export abstract class BaseSolTxTracer {
abstract processRawTraceStep(
vm: VM,
step: InterpreterStep,
- trace: State[],
- tx: TypedTransaction
- ): Promise;
+ trace: TraceT[],
+ tx: TypedTransaction,
+ ctx: CtxT
+ ): Promise<[TraceT, CtxT]>;
+ /**
+ * Run a TX with the specified "transformers" returning a quadruple including:
+ *
+ * 1. An enriched trace
+ * 2. The TX result (with added info for Foundry TX)
+ * 3. The StateManager at the end of the TX
+ * 4. The final (reduced) context `CtxT`
+ */
async debugTx(
tx: TypedTransaction,
block: Block | undefined, // TODO: Make block required and add to processRawTraceStep
- stateBefore: EVMStateManagerInterface
- ): Promise<[State[], FoundryTxResult, EVMStateManagerInterface]> {
+ stateBefore: EVMStateManagerInterface,
+ ctx: CtxT
+ ): Promise<[TraceT[], FoundryTxResult, EVMStateManagerInterface, CtxT]> {
const vm = await BaseSolTxTracer.createVm(
stateBefore.shallowCopy(true),
this.foundryCheatcodes
);
- const trace: State[] = [];
+ const trace: TraceT[] = [];
assert(vm.evm.events !== undefined, "Unable to access EVM events at this point");
vm.evm.events.on("step", async (step: InterpreterStep, next: any) => {
- const curStep = await this.processRawTraceStep(vm, step, trace, tx);
+ const [curStep, newCtx] = await this.processRawTraceStep(vm, step, trace, tx, ctx);
+ ctx = newCtx;
trace.push(curStep);
@@ -177,7 +197,18 @@ export abstract class BaseSolTxTracer {
...txRes,
failCalled: foundryFailCalled
},
- stateAfter
+ stateAfter,
+ ctx
];
}
}
+
+export abstract class MapOnlyTracer extends BaseSolTxTracer {
+ async debugTx(
+ tx: TypedTransaction,
+ block: Block | undefined,
+ stateBefore: EVMStateManagerInterface
+ ): Promise<[TraceT[], FoundryTxResult, EVMStateManagerInterface, null]> {
+ return super.debugTx(tx, block, stateBefore, null);
+ }
+}
diff --git a/src/debug/tracers/sol_debugger.ts b/src/debug/tracers/sol_debugger.ts
index efaba54..f559536 100644
--- a/src/debug/tracers/sol_debugger.ts
+++ b/src/debug/tracers/sol_debugger.ts
@@ -2,7 +2,7 @@ import { InterpreterStep } from "@ethereumjs/evm";
import { TypedTransaction } from "@ethereumjs/tx";
import { VM } from "@ethereumjs/vm";
import { StepState } from "../types";
-import { BaseSolTxTracer } from "./base_tracer";
+import { MapOnlyTracer } from "./base_tracer";
import {
addBasicInfo,
addContractLifetimeInfo,
@@ -14,13 +14,13 @@ import { addExternalFrame } from "./transformers/ext_stack";
import { addInternalFrame } from "./transformers/int_stack";
import { addSource } from "./transformers/source";
-export class SolTxDebugger extends BaseSolTxTracer {
+export class SolTxDebugger extends MapOnlyTracer {
async processRawTraceStep(
vm: VM,
step: InterpreterStep,
trace: StepState[],
tx: TypedTransaction
- ): Promise {
+ ): Promise<[StepState, null]> {
const opInfo = addOpInfo(vm, step, {});
const basicInfo = await addBasicInfo(vm, step, opInfo, trace);
const extFrameInfo = await addExternalFrame(
@@ -47,6 +47,6 @@ export class SolTxDebugger extends BaseSolTxTracer {
const keccakPreimages = await addKeccakInvertInfo(vm, step, contractLifetime, trace);
- return keccakPreimages;
+ return [keccakPreimages, null];
}
}
diff --git a/src/debug/tracers/storage_decode_tracer.ts b/src/debug/tracers/storage_decode_tracer.ts
new file mode 100644
index 0000000..ab78983
--- /dev/null
+++ b/src/debug/tracers/storage_decode_tracer.ts
@@ -0,0 +1,104 @@
+import { InterpreterStep } from "@ethereumjs/evm";
+import { TypedTransaction } from "@ethereumjs/tx";
+import { Address } from "@ethereumjs/util";
+import { VM } from "@ethereumjs/vm";
+import { ContractStates } from "../../utils";
+import { decodeContractStates } from "../layout";
+import { BaseSolTxTracer } from "./base_tracer";
+import {
+ addBasicInfo,
+ addContractLifetimeInfo,
+ addExternalFrame,
+ addKeccakInvertInfo,
+ addOpInfo,
+ BasicStepInfo,
+ ContractLifeTimeInfo,
+ ExternalFrameInfo,
+ Keccak256InvertInfo,
+ KeccakPreimageMap
+} from "./transformers";
+
+export interface DecodedStorageInfo {
+ decodedStorage?: ContractStates;
+}
+
+export type StorageDecodeTracerInfo = BasicStepInfo &
+ ExternalFrameInfo &
+ ContractLifeTimeInfo &
+ Keccak256InvertInfo &
+ DecodedStorageInfo;
+
+export interface StorageDecodeTracerCtx {
+ liveContracts: Set;
+ preimages: KeccakPreimageMap;
+ targetSteps: Set;
+}
+
+function reducer(
+ state: ContractLifeTimeInfo & Keccak256InvertInfo,
+ ctx: StorageDecodeTracerCtx
+): void {
+ if (state.contractCreated) {
+ ctx.liveContracts.add(state.contractCreated.toString());
+ }
+
+ if (state.contractKilled) {
+ ctx.liveContracts.delete(state.contractKilled.toString());
+ }
+
+ if (state.keccak) {
+ ctx.preimages.set(state.keccak.to, state.keccak.from);
+ }
+}
+/**
+ * This tracer computes contract lifetime information and keccak256 pre-images for a TX.
+ * The information it collects supports the debugging for the main SolTxDebugger tracer.
+ * It is more-light weight and is ran by the TestRunner for all TXs, even if we are not going to debug them.
+ */
+export class StorageDecodeTracer extends BaseSolTxTracer<
+ StorageDecodeTracerInfo,
+ StorageDecodeTracerCtx
+> {
+ async processRawTraceStep(
+ vm: VM,
+ step: InterpreterStep,
+ trace: StorageDecodeTracerInfo[],
+ tx: TypedTransaction,
+ ctx: StorageDecodeTracerCtx
+ ): Promise<[StorageDecodeTracerInfo, StorageDecodeTracerCtx]> {
+ const opInfo = addOpInfo(vm, step, {});
+ const basicInfo = await addBasicInfo(vm, step, opInfo, trace);
+ const extFrameInfo = await addExternalFrame(
+ vm,
+ step,
+ basicInfo,
+ trace,
+ this.artifactManager,
+ tx
+ );
+ const contracLifetimeInfo = addContractLifetimeInfo(vm, step, extFrameInfo, trace);
+ const keccakInfo = addKeccakInvertInfo(vm, step, contracLifetimeInfo, trace);
+
+ reducer(keccakInfo, ctx);
+
+ if (!ctx.targetSteps.has(trace.length)) {
+ return [keccakInfo, ctx];
+ }
+
+ const state = vm.stateManager;
+ const decodedStorage: ContractStates = await decodeContractStates(
+ this.artifactManager,
+ [...ctx.liveContracts].map(Address.fromString),
+ state,
+ ctx.preimages
+ );
+
+ return [
+ {
+ ...keccakInfo,
+ decodedStorage
+ },
+ ctx
+ ];
+ }
+}
diff --git a/src/debug/tracers/support_tracer.ts b/src/debug/tracers/support_tracer.ts
index 971e203..9726f5b 100644
--- a/src/debug/tracers/support_tracer.ts
+++ b/src/debug/tracers/support_tracer.ts
@@ -1,7 +1,7 @@
import { InterpreterStep } from "@ethereumjs/evm";
import { TypedTransaction } from "@ethereumjs/tx";
import { VM } from "@ethereumjs/vm";
-import { BaseSolTxTracer } from "./base_tracer";
+import { MapOnlyTracer } from "./base_tracer";
import {
addBasicInfo,
addContractLifetimeInfo,
@@ -23,13 +23,13 @@ export type SupportTracerStepInfo = BasicStepInfo &
* The information it collects supports the debugging for the main SolTxDebugger tracer.
* It is more-light weight and is ran by the TestRunner for all TXs, even if we are not going to debug them.
*/
-export class SupportTracer extends BaseSolTxTracer {
+export class SupportTracer extends MapOnlyTracer {
async processRawTraceStep(
vm: VM,
step: InterpreterStep,
trace: SupportTracerStepInfo[],
tx: TypedTransaction
- ): Promise {
+ ): Promise<[SupportTracerStepInfo, null]> {
const opInfo = addOpInfo(vm, step, {});
const basicInfo = await addBasicInfo(vm, step, opInfo, trace);
const extFrameInfo = await addExternalFrame(
@@ -43,6 +43,6 @@ export class SupportTracer extends BaseSolTxTracer {
const contracLifetimeInfo = addContractLifetimeInfo(vm, step, extFrameInfo, trace);
const keccakInfo = addKeccakInvertInfo(vm, step, contracLifetimeInfo, trace);
- return keccakInfo;
+ return [keccakInfo, null];
}
}
diff --git a/src/utils/test_runner.ts b/src/utils/test_runner.ts
index 9727634..1c9e0fa 100644
--- a/src/utils/test_runner.ts
+++ b/src/utils/test_runner.ts
@@ -9,16 +9,16 @@ import { HexString } from "../artifacts";
import {
BaseSolTxTracer,
ContractSolidityState,
+ decodeContractStates,
FoundryTxResult,
- getContractGenKillSet,
getKeccakPreimages,
IArtifactManager,
KeccakPreimageMap,
SupportTracer
} from "../debug";
+import { StorageDecodeTracer } from "../debug/tracers/storage_decode_tracer";
import { map_add } from "./map";
import { hexStrToBuf32, makeFakeTransaction, ZERO_ADDRESS_STRING } from "./misc";
-import { set_add, set_subtract } from "./set";
export interface BaseTestStep {
address: HexString;
@@ -84,6 +84,8 @@ interface ResultFoundryFail {
kind: ResultKind.FoundryFail;
}
+// @todo: Test-relevant parts of this should be separated from BaseTestStep and moved under test/
+// BaseTestStep should be renamed to something more generic - e.g. TxDesc
export interface TestStep extends BaseTestStep {
// Expected result of the transaction
result:
@@ -98,13 +100,16 @@ export interface TestStep extends BaseTestStep {
errorString?: string;
// Optional prefix to append to file path to find the files
errorPathPrefix?: string;
- layoutBefore?: ContractSolidityState;
+ layoutBefore?: ContractStates;
+ layoutAtFailure?: ContractStates;
}
export interface TestCase extends BaseTestCase {
steps: TestStep[];
}
+export type ContractStates = { [addres: string]: ContractSolidityState };
+
/**
* Helper class to run a set of TX and record info to allow debuggin any of the TXs independently. This includes:
*
@@ -179,16 +184,14 @@ export class VMTestRunner {
await (stateManager as DefaultStateManager).flush();
- // Update the set of live contracts
- const [gen, kill] = getContractGenKillSet(trace, res);
- set_add(contractsBefore, gen);
- set_subtract(contractsBefore, kill);
+ if (res.createdAddress) {
+ contractsBefore.add(res.createdAddress.toString());
+ }
+ // Update the keccak map
const txKeccakPreimages = getKeccakPreimages(trace);
map_add(keccakPreimages, txKeccakPreimages);
- // Update the keccak map
-
// Add results
this._results.push(res);
@@ -321,4 +324,41 @@ export class VMTestRunner {
return res;
}
+
+ async getDecodedContractStatesBeforeTx(
+ tx: TypedTransaction,
+ contracts?: Iterable
+ ): Promise {
+ const state = this.getStateBeforeTx(tx);
+ const preimages = this.getKeccakPreimagesBefore(tx);
+
+ if (contracts === undefined) {
+ contracts = [...this.getContractsBefore(tx)].map(Address.fromString);
+ }
+
+ return await decodeContractStates(this.artifactManager, contracts, state, preimages);
+ }
+
+ async getDecodedContractStatesOnTxStep(
+ tx: TypedTransaction,
+ stepNum: number
+ ): Promise {
+ const tracer = new StorageDecodeTracer(this.artifactManager);
+
+ const liveContracts = new Set(this.getContractsBefore(tx));
+ const preimages = new Map(this.getKeccakPreimagesBefore(tx));
+ const [trace, ,] = await tracer.debugTx(tx, this.getBlock(tx), this.getStateBeforeTx(tx), {
+ liveContracts,
+ preimages,
+ targetSteps: new Set([stepNum])
+ });
+
+ if (trace.length < stepNum) {
+ return undefined;
+ }
+
+ assert(trace[stepNum].decodedStorage !== undefined, ``);
+
+ return trace[stepNum].decodedStorage;
+ }
}
diff --git a/test/samples/local/layout_maps_fail/artifacts/main.json b/test/samples/local/layout_maps_fail/artifacts/main.json
new file mode 100644
index 0000000..36153a8
--- /dev/null
+++ b/test/samples/local/layout_maps_fail/artifacts/main.json
@@ -0,0 +1,14686 @@
+{
+ "contracts": {
+ "contracts/layout_maps.sol": {
+ "Layout_map": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "ping",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "devdoc": {
+ "kind": "dev",
+ "methods": {},
+ "version": 1
+ },
+ "evm": {
+ "assembly": " /* \"contracts/layout_maps.sol\":166:630 contract Layout_map {... */\n mstore(0x40, 0x80)\n /* \"contracts/layout_maps.sol\":285:454 constructor() public {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"contracts/layout_maps.sol\":320:321 1 */\n 0x01\n /* \"contracts/layout_maps.sol\":316:317 a */\n 0x00\n dup1\n /* \"contracts/layout_maps.sol\":316:321 a = 1 */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/layout_maps.sol\":335:336 2 */\n 0x02\n /* \"contracts/layout_maps.sol\":331:332 b */\n dup1\n 0x00\n /* \"contracts/layout_maps.sol\":331:336 b = 2 */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/layout_maps.sol\":354:356 42 */\n 0x2a\n /* \"contracts/layout_maps.sol\":346:348 m1 */\n 0x01\n /* \"contracts/layout_maps.sol\":346:351 m1[1] */\n 0x00\n /* \"contracts/layout_maps.sol\":349:350 1 */\n 0x01\n /* \"contracts/layout_maps.sol\":346:351 m1[1] */\n dup1\n signextend\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/layout_maps.sol\":346:356 m1[1] = 42 */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/layout_maps.sol\":381:414 Foo(-1, 1000, \"dy\", new int[](1)) */\n mload(0x40)\n dup1\n 0x80\n add\n 0x40\n mstore\n dup1\n /* \"contracts/layout_maps.sol\":385:387 -1 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"contracts/layout_maps.sol\":381:414 Foo(-1, 1000, \"dy\", new int[](1)) */\n 0x00\n signextend\n dup2\n mstore\n 0x20\n add\n /* \"contracts/layout_maps.sol\":389:393 1000 */\n 0x03e8\n /* \"contracts/layout_maps.sol\":381:414 Foo(-1, 1000, \"dy\", new int[](1)) */\n 0x01\n signextend\n dup2\n mstore\n 0x20\n add\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x02\n dup2\n mstore\n 0x20\n add\n 0x6479000000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n pop\n dup2\n mstore\n 0x20\n add\n /* \"contracts/layout_maps.sol\":411:412 1 */\n 0x01\n /* \"contracts/layout_maps.sol\":401:413 new int[](1) */\n 0xffffffffffffffff\n dup2\n gt\n iszero\n tag_4\n jumpi\n tag_5\n tag_6\n jump\t// in\ntag_5:\ntag_4:\n mload(0x40)\n swap1\n dup1\n dup3\n mstore\n dup1\n 0x20\n mul\n 0x20\n add\n dup3\n add\n 0x40\n mstore\n dup1\n iszero\n tag_7\n jumpi\n dup2\n 0x20\n add\n 0x20\n dup3\n mul\n dup1\n calldatasize\n dup4\n calldatacopy\n dup1\n dup3\n add\n swap2\n pop\n pop\n swap1\n pop\ntag_7:\n pop\n /* \"contracts/layout_maps.sol\":381:414 Foo(-1, 1000, \"dy\", new int[](1)) */\n dup2\n mstore\n pop\n /* \"contracts/layout_maps.sol\":367:371 fMap */\n 0x03\n /* \"contracts/layout_maps.sol\":367:378 fMap[\"goo\"] */\n mload(0x40)\n tag_8\n swap1\n tag_9\n jump\t// in\ntag_8:\n swap1\n dup2\n mstore\n 0x20\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n keccak256\n /* \"contracts/layout_maps.sol\":367:414 fMap[\"goo\"] = Foo(-1, 1000, \"dy\", new int[](1)) */\n 0x00\n dup3\n add\n mload\n dup2\n 0x00\n add\n exp(0x0100, 0x00)\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0x00\n signextend\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n 0x20\n dup3\n add\n mload\n dup2\n 0x00\n add\n exp(0x0100, 0x01)\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0x01\n signextend\n 0xffff\n and\n mul\n or\n swap1\n sstore\n pop\n 0x40\n dup3\n add\n mload\n dup2\n 0x01\n add\n swap1\n dup2\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\ntag_10:\n pop\n 0x60\n dup3\n add\n mload\n dup2\n 0x02\n add\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_12\n swap3\n swap2\n swap1\n tag_13\n jump\t// in\ntag_12:\n pop\n swap1\n pop\n pop\n /* \"contracts/layout_maps.sol\":444:447 100 */\n 0x64\n /* \"contracts/layout_maps.sol\":424:428 fMap */\n 0x03\n /* \"contracts/layout_maps.sol\":424:435 fMap[\"goo\"] */\n mload(0x40)\n tag_14\n swap1\n tag_9\n jump\t// in\ntag_14:\n swap1\n dup2\n mstore\n 0x20\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n keccak256\n /* \"contracts/layout_maps.sol\":424:438 fMap[\"goo\"].fd */\n 0x02\n add\n /* \"contracts/layout_maps.sol\":439:440 0 */\n 0x00\n /* \"contracts/layout_maps.sol\":424:441 fMap[\"goo\"].fd[0] */\n dup2\n sload\n dup2\n lt\n tag_15\n jumpi\n tag_16\n tag_17\n jump\t// in\ntag_16:\ntag_15:\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n add\n /* \"contracts/layout_maps.sol\":424:447 fMap[\"goo\"].fd[0] = 100 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/layout_maps.sol\":166:630 contract Layout_map {... */\n jump(tag_19)\ntag_13:\n dup3\n dup1\n sload\n dup3\n dup3\n sstore\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n dup2\n add\n swap3\n dup3\n iszero\n tag_20\n jumpi\n swap2\n 0x20\n mul\n dup3\n add\ntag_21:\n dup3\n dup2\n gt\n iszero\n tag_22\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_21)\ntag_22:\ntag_20:\n pop\n swap1\n pop\n tag_23\n swap2\n swap1\n tag_24\n jump\t// in\ntag_23:\n pop\n swap1\n jump\t// out\ntag_24:\ntag_25:\n dup1\n dup3\n gt\n iszero\n tag_26\n jumpi\n 0x00\n dup2\n 0x00\n swap1\n sstore\n pop\n 0x01\n add\n jump(tag_25)\ntag_26:\n pop\n swap1\n jump\t// out\n /* \"#utility.yul\":7:187 */\ntag_6:\n /* \"#utility.yul\":55:132 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":52:53 */\n 0x00\n /* \"#utility.yul\":45:133 */\n mstore\n /* \"#utility.yul\":152:156 */\n 0x41\n /* \"#utility.yul\":149:150 */\n 0x04\n /* \"#utility.yul\":142:157 */\n mstore\n /* \"#utility.yul\":176:180 */\n 0x24\n /* \"#utility.yul\":173:174 */\n 0x00\n /* \"#utility.yul\":166:181 */\n revert\n /* \"#utility.yul\":193:341 */\ntag_27:\n /* \"#utility.yul\":295:306 */\n 0x00\n /* \"#utility.yul\":332:335 */\n dup2\n /* \"#utility.yul\":317:335 */\n swap1\n pop\n /* \"#utility.yul\":193:341 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":347:500 */\ntag_28:\n /* \"#utility.yul\":487:492 */\n 0x676f6f0000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":483:484 */\n 0x00\n /* \"#utility.yul\":475:481 */\n dup3\n /* \"#utility.yul\":471:485 */\n add\n /* \"#utility.yul\":464:493 */\n mstore\n /* \"#utility.yul\":347:500 */\n pop\n jump\t// out\n /* \"#utility.yul\":506:906 */\ntag_29:\n /* \"#utility.yul\":666:669 */\n 0x00\n /* \"#utility.yul\":687:771 */\n tag_54\n /* \"#utility.yul\":769:770 */\n 0x03\n /* \"#utility.yul\":764:767 */\n dup4\n /* \"#utility.yul\":687:771 */\n tag_27\n jump\t// in\ntag_54:\n /* \"#utility.yul\":680:771 */\n swap2\n pop\n /* \"#utility.yul\":780:873 */\n tag_55\n /* \"#utility.yul\":869:872 */\n dup3\n /* \"#utility.yul\":780:873 */\n tag_28\n jump\t// in\ntag_55:\n /* \"#utility.yul\":898:899 */\n 0x03\n /* \"#utility.yul\":893:896 */\n dup3\n /* \"#utility.yul\":889:900 */\n add\n /* \"#utility.yul\":882:900 */\n swap1\n pop\n /* \"#utility.yul\":506:906 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":912:1293 */\ntag_9:\n /* \"#utility.yul\":1097:1100 */\n 0x00\n /* \"#utility.yul\":1119:1267 */\n tag_57\n /* \"#utility.yul\":1263:1266 */\n dup3\n /* \"#utility.yul\":1119:1267 */\n tag_29\n jump\t// in\ntag_57:\n /* \"#utility.yul\":1112:1267 */\n swap2\n pop\n /* \"#utility.yul\":1284:1287 */\n dup2\n /* \"#utility.yul\":1277:1287 */\n swap1\n pop\n /* \"#utility.yul\":912:1293 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1299:1398 */\ntag_30:\n /* \"#utility.yul\":1351:1357 */\n 0x00\n /* \"#utility.yul\":1385:1390 */\n dup2\n /* \"#utility.yul\":1379:1391 */\n mload\n /* \"#utility.yul\":1369:1391 */\n swap1\n pop\n /* \"#utility.yul\":1299:1398 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1404:1584 */\ntag_31:\n /* \"#utility.yul\":1452:1529 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1449:1450 */\n 0x00\n /* \"#utility.yul\":1442:1530 */\n mstore\n /* \"#utility.yul\":1549:1553 */\n 0x22\n /* \"#utility.yul\":1546:1547 */\n 0x04\n /* \"#utility.yul\":1539:1554 */\n mstore\n /* \"#utility.yul\":1573:1577 */\n 0x24\n /* \"#utility.yul\":1570:1571 */\n 0x00\n /* \"#utility.yul\":1563:1578 */\n revert\n /* \"#utility.yul\":1590:1910 */\ntag_32:\n /* \"#utility.yul\":1634:1640 */\n 0x00\n /* \"#utility.yul\":1671:1672 */\n 0x02\n /* \"#utility.yul\":1665:1669 */\n dup3\n /* \"#utility.yul\":1661:1673 */\n div\n /* \"#utility.yul\":1651:1673 */\n swap1\n pop\n /* \"#utility.yul\":1718:1719 */\n 0x01\n /* \"#utility.yul\":1712:1716 */\n dup3\n /* \"#utility.yul\":1708:1720 */\n and\n /* \"#utility.yul\":1739:1757 */\n dup1\n /* \"#utility.yul\":1729:1810 */\n tag_61\n jumpi\n /* \"#utility.yul\":1795:1799 */\n 0x7f\n /* \"#utility.yul\":1787:1793 */\n dup3\n /* \"#utility.yul\":1783:1800 */\n and\n /* \"#utility.yul\":1773:1800 */\n swap2\n pop\n /* \"#utility.yul\":1729:1810 */\ntag_61:\n /* \"#utility.yul\":1857:1859 */\n 0x20\n /* \"#utility.yul\":1849:1855 */\n dup3\n /* \"#utility.yul\":1846:1860 */\n lt\n /* \"#utility.yul\":1826:1844 */\n dup2\n /* \"#utility.yul\":1823:1861 */\n sub\n /* \"#utility.yul\":1820:1904 */\n tag_62\n jumpi\n /* \"#utility.yul\":1876:1894 */\n tag_63\n tag_31\n jump\t// in\ntag_63:\n /* \"#utility.yul\":1820:1904 */\ntag_62:\n /* \"#utility.yul\":1641:1910 */\n pop\n /* \"#utility.yul\":1590:1910 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1916:2057 */\ntag_33:\n /* \"#utility.yul\":1965:1969 */\n 0x00\n /* \"#utility.yul\":1988:1991 */\n dup2\n /* \"#utility.yul\":1980:1991 */\n swap1\n pop\n /* \"#utility.yul\":2011:2014 */\n dup2\n /* \"#utility.yul\":2008:2009 */\n 0x00\n /* \"#utility.yul\":2001:2015 */\n mstore\n /* \"#utility.yul\":2045:2049 */\n 0x20\n /* \"#utility.yul\":2042:2043 */\n 0x00\n /* \"#utility.yul\":2032:2050 */\n keccak256\n /* \"#utility.yul\":2024:2050 */\n swap1\n pop\n /* \"#utility.yul\":1916:2057 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2063:2156 */\ntag_34:\n /* \"#utility.yul\":2100:2106 */\n 0x00\n /* \"#utility.yul\":2147:2149 */\n 0x20\n /* \"#utility.yul\":2142:2144 */\n 0x1f\n /* \"#utility.yul\":2135:2140 */\n dup4\n /* \"#utility.yul\":2131:2145 */\n add\n /* \"#utility.yul\":2127:2150 */\n div\n /* \"#utility.yul\":2117:2150 */\n swap1\n pop\n /* \"#utility.yul\":2063:2156 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2162:2269 */\ntag_35:\n /* \"#utility.yul\":2206:2214 */\n 0x00\n /* \"#utility.yul\":2256:2261 */\n dup3\n /* \"#utility.yul\":2250:2254 */\n dup3\n /* \"#utility.yul\":2246:2262 */\n shl\n /* \"#utility.yul\":2225:2262 */\n swap1\n pop\n /* \"#utility.yul\":2162:2269 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2275:2668 */\ntag_36:\n /* \"#utility.yul\":2344:2350 */\n 0x00\n /* \"#utility.yul\":2394:2395 */\n 0x08\n /* \"#utility.yul\":2382:2392 */\n dup4\n /* \"#utility.yul\":2378:2396 */\n mul\n /* \"#utility.yul\":2417:2514 */\n tag_68\n /* \"#utility.yul\":2447:2513 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2436:2445 */\n dup3\n /* \"#utility.yul\":2417:2514 */\n tag_35\n jump\t// in\ntag_68:\n /* \"#utility.yul\":2535:2574 */\n tag_69\n /* \"#utility.yul\":2565:2573 */\n dup7\n /* \"#utility.yul\":2554:2563 */\n dup4\n /* \"#utility.yul\":2535:2574 */\n tag_35\n jump\t// in\ntag_69:\n /* \"#utility.yul\":2523:2574 */\n swap6\n pop\n /* \"#utility.yul\":2607:2611 */\n dup1\n /* \"#utility.yul\":2603:2612 */\n not\n /* \"#utility.yul\":2596:2601 */\n dup5\n /* \"#utility.yul\":2592:2613 */\n and\n /* \"#utility.yul\":2583:2613 */\n swap4\n pop\n /* \"#utility.yul\":2656:2660 */\n dup1\n /* \"#utility.yul\":2646:2654 */\n dup7\n /* \"#utility.yul\":2642:2661 */\n and\n /* \"#utility.yul\":2635:2640 */\n dup5\n /* \"#utility.yul\":2632:2662 */\n or\n /* \"#utility.yul\":2622:2662 */\n swap3\n pop\n /* \"#utility.yul\":2351:2668 */\n pop\n pop\n /* \"#utility.yul\":2275:2668 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2674:2751 */\ntag_37:\n /* \"#utility.yul\":2711:2718 */\n 0x00\n /* \"#utility.yul\":2740:2745 */\n dup2\n /* \"#utility.yul\":2729:2745 */\n swap1\n pop\n /* \"#utility.yul\":2674:2751 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2757:2817 */\ntag_38:\n /* \"#utility.yul\":2785:2788 */\n 0x00\n /* \"#utility.yul\":2806:2811 */\n dup2\n /* \"#utility.yul\":2799:2811 */\n swap1\n pop\n /* \"#utility.yul\":2757:2817 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2823:2965 */\ntag_39:\n /* \"#utility.yul\":2873:2882 */\n 0x00\n /* \"#utility.yul\":2906:2959 */\n tag_73\n /* \"#utility.yul\":2924:2958 */\n tag_74\n /* \"#utility.yul\":2933:2957 */\n tag_75\n /* \"#utility.yul\":2951:2956 */\n dup5\n /* \"#utility.yul\":2933:2957 */\n tag_37\n jump\t// in\ntag_75:\n /* \"#utility.yul\":2924:2958 */\n tag_38\n jump\t// in\ntag_74:\n /* \"#utility.yul\":2906:2959 */\n tag_37\n jump\t// in\ntag_73:\n /* \"#utility.yul\":2893:2959 */\n swap1\n pop\n /* \"#utility.yul\":2823:2965 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2971:3046 */\ntag_40:\n /* \"#utility.yul\":3014:3017 */\n 0x00\n /* \"#utility.yul\":3035:3040 */\n dup2\n /* \"#utility.yul\":3028:3040 */\n swap1\n pop\n /* \"#utility.yul\":2971:3046 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3052:3321 */\ntag_41:\n /* \"#utility.yul\":3162:3201 */\n tag_78\n /* \"#utility.yul\":3193:3200 */\n dup4\n /* \"#utility.yul\":3162:3201 */\n tag_39\n jump\t// in\ntag_78:\n /* \"#utility.yul\":3223:3314 */\n tag_79\n /* \"#utility.yul\":3272:3313 */\n tag_80\n /* \"#utility.yul\":3296:3312 */\n dup3\n /* \"#utility.yul\":3272:3313 */\n tag_40\n jump\t// in\ntag_80:\n /* \"#utility.yul\":3264:3270 */\n dup5\n /* \"#utility.yul\":3257:3261 */\n dup5\n /* \"#utility.yul\":3251:3262 */\n sload\n /* \"#utility.yul\":3223:3314 */\n tag_36\n jump\t// in\ntag_79:\n /* \"#utility.yul\":3217:3221 */\n dup3\n /* \"#utility.yul\":3210:3315 */\n sstore\n /* \"#utility.yul\":3128:3321 */\n pop\n /* \"#utility.yul\":3052:3321 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3327:3400 */\ntag_42:\n /* \"#utility.yul\":3372:3375 */\n 0x00\n /* \"#utility.yul\":3327:3400 */\n swap1\n jump\t// out\n /* \"#utility.yul\":3406:3595 */\ntag_43:\n /* \"#utility.yul\":3483:3515 */\n tag_83\n tag_42\n jump\t// in\ntag_83:\n /* \"#utility.yul\":3524:3589 */\n tag_84\n /* \"#utility.yul\":3582:3588 */\n dup2\n /* \"#utility.yul\":3574:3580 */\n dup5\n /* \"#utility.yul\":3568:3572 */\n dup5\n /* \"#utility.yul\":3524:3589 */\n tag_41\n jump\t// in\ntag_84:\n /* \"#utility.yul\":3459:3595 */\n pop\n /* \"#utility.yul\":3406:3595 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3601:3787 */\ntag_44:\n /* \"#utility.yul\":3661:3781 */\ntag_86:\n /* \"#utility.yul\":3678:3681 */\n dup2\n /* \"#utility.yul\":3671:3676 */\n dup2\n /* \"#utility.yul\":3668:3682 */\n lt\n /* \"#utility.yul\":3661:3781 */\n iszero\n tag_88\n jumpi\n /* \"#utility.yul\":3732:3771 */\n tag_89\n /* \"#utility.yul\":3769:3770 */\n 0x00\n /* \"#utility.yul\":3762:3767 */\n dup3\n /* \"#utility.yul\":3732:3771 */\n tag_43\n jump\t// in\ntag_89:\n /* \"#utility.yul\":3705:3706 */\n 0x01\n /* \"#utility.yul\":3698:3703 */\n dup2\n /* \"#utility.yul\":3694:3707 */\n add\n /* \"#utility.yul\":3685:3707 */\n swap1\n pop\n /* \"#utility.yul\":3661:3781 */\n jump(tag_86)\ntag_88:\n /* \"#utility.yul\":3601:3787 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3793:4336 */\ntag_45:\n /* \"#utility.yul\":3894:3896 */\n 0x1f\n /* \"#utility.yul\":3889:3892 */\n dup3\n /* \"#utility.yul\":3886:3897 */\n gt\n /* \"#utility.yul\":3883:4329 */\n iszero\n tag_91\n jumpi\n /* \"#utility.yul\":3928:3966 */\n tag_92\n /* \"#utility.yul\":3960:3965 */\n dup2\n /* \"#utility.yul\":3928:3966 */\n tag_33\n jump\t// in\ntag_92:\n /* \"#utility.yul\":4012:4041 */\n tag_93\n /* \"#utility.yul\":4030:4040 */\n dup5\n /* \"#utility.yul\":4012:4041 */\n tag_34\n jump\t// in\ntag_93:\n /* \"#utility.yul\":4002:4010 */\n dup2\n /* \"#utility.yul\":3998:4042 */\n add\n /* \"#utility.yul\":4195:4197 */\n 0x20\n /* \"#utility.yul\":4183:4193 */\n dup6\n /* \"#utility.yul\":4180:4198 */\n lt\n /* \"#utility.yul\":4177:4226 */\n iszero\n tag_94\n jumpi\n /* \"#utility.yul\":4216:4224 */\n dup2\n /* \"#utility.yul\":4201:4224 */\n swap1\n pop\n /* \"#utility.yul\":4177:4226 */\ntag_94:\n /* \"#utility.yul\":4239:4319 */\n tag_95\n /* \"#utility.yul\":4295:4317 */\n tag_96\n /* \"#utility.yul\":4313:4316 */\n dup6\n /* \"#utility.yul\":4295:4317 */\n tag_34\n jump\t// in\ntag_96:\n /* \"#utility.yul\":4285:4293 */\n dup4\n /* \"#utility.yul\":4281:4318 */\n add\n /* \"#utility.yul\":4268:4279 */\n dup3\n /* \"#utility.yul\":4239:4319 */\n tag_44\n jump\t// in\ntag_95:\n /* \"#utility.yul\":3898:4329 */\n pop\n pop\n /* \"#utility.yul\":3883:4329 */\ntag_91:\n /* \"#utility.yul\":3793:4336 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4342:4459 */\ntag_46:\n /* \"#utility.yul\":4396:4404 */\n 0x00\n /* \"#utility.yul\":4446:4451 */\n dup3\n /* \"#utility.yul\":4440:4444 */\n dup3\n /* \"#utility.yul\":4436:4452 */\n shr\n /* \"#utility.yul\":4415:4452 */\n swap1\n pop\n /* \"#utility.yul\":4342:4459 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4465:4634 */\ntag_47:\n /* \"#utility.yul\":4509:4515 */\n 0x00\n /* \"#utility.yul\":4542:4593 */\n tag_99\n /* \"#utility.yul\":4590:4591 */\n 0x00\n /* \"#utility.yul\":4586:4592 */\n not\n /* \"#utility.yul\":4578:4583 */\n dup5\n /* \"#utility.yul\":4575:4576 */\n 0x08\n /* \"#utility.yul\":4571:4584 */\n mul\n /* \"#utility.yul\":4542:4593 */\n tag_46\n jump\t// in\ntag_99:\n /* \"#utility.yul\":4538:4594 */\n not\n /* \"#utility.yul\":4623:4627 */\n dup1\n /* \"#utility.yul\":4617:4621 */\n dup4\n /* \"#utility.yul\":4613:4628 */\n and\n /* \"#utility.yul\":4603:4628 */\n swap2\n pop\n /* \"#utility.yul\":4516:4634 */\n pop\n /* \"#utility.yul\":4465:4634 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4639:4934 */\ntag_48:\n /* \"#utility.yul\":4715:4719 */\n 0x00\n /* \"#utility.yul\":4861:4890 */\n tag_101\n /* \"#utility.yul\":4886:4889 */\n dup4\n /* \"#utility.yul\":4880:4884 */\n dup4\n /* \"#utility.yul\":4861:4890 */\n tag_47\n jump\t// in\ntag_101:\n /* \"#utility.yul\":4853:4890 */\n swap2\n pop\n /* \"#utility.yul\":4923:4926 */\n dup3\n /* \"#utility.yul\":4920:4921 */\n 0x02\n /* \"#utility.yul\":4916:4927 */\n mul\n /* \"#utility.yul\":4910:4914 */\n dup3\n /* \"#utility.yul\":4907:4928 */\n or\n /* \"#utility.yul\":4899:4928 */\n swap1\n pop\n /* \"#utility.yul\":4639:4934 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4939:6334 */\ntag_11:\n /* \"#utility.yul\":5056:5093 */\n tag_103\n /* \"#utility.yul\":5089:5092 */\n dup3\n /* \"#utility.yul\":5056:5093 */\n tag_30\n jump\t// in\ntag_103:\n /* \"#utility.yul\":5158:5176 */\n 0xffffffffffffffff\n /* \"#utility.yul\":5150:5156 */\n dup2\n /* \"#utility.yul\":5147:5177 */\n gt\n /* \"#utility.yul\":5144:5200 */\n iszero\n tag_104\n jumpi\n /* \"#utility.yul\":5180:5198 */\n tag_105\n tag_6\n jump\t// in\ntag_105:\n /* \"#utility.yul\":5144:5200 */\ntag_104:\n /* \"#utility.yul\":5224:5262 */\n tag_106\n /* \"#utility.yul\":5256:5260 */\n dup3\n /* \"#utility.yul\":5250:5261 */\n sload\n /* \"#utility.yul\":5224:5262 */\n tag_32\n jump\t// in\ntag_106:\n /* \"#utility.yul\":5309:5376 */\n tag_107\n /* \"#utility.yul\":5369:5375 */\n dup3\n /* \"#utility.yul\":5361:5367 */\n dup3\n /* \"#utility.yul\":5355:5359 */\n dup6\n /* \"#utility.yul\":5309:5376 */\n tag_45\n jump\t// in\ntag_107:\n /* \"#utility.yul\":5403:5404 */\n 0x00\n /* \"#utility.yul\":5427:5431 */\n 0x20\n /* \"#utility.yul\":5414:5431 */\n swap1\n pop\n /* \"#utility.yul\":5459:5461 */\n 0x1f\n /* \"#utility.yul\":5451:5457 */\n dup4\n /* \"#utility.yul\":5448:5462 */\n gt\n /* \"#utility.yul\":5476:5477 */\n 0x01\n /* \"#utility.yul\":5471:6089 */\n dup2\n eq\n tag_109\n jumpi\n /* \"#utility.yul\":6133:6134 */\n 0x00\n /* \"#utility.yul\":6150:6156 */\n dup5\n /* \"#utility.yul\":6147:6224 */\n iszero\n tag_110\n jumpi\n /* \"#utility.yul\":6199:6208 */\n dup3\n /* \"#utility.yul\":6194:6197 */\n dup8\n /* \"#utility.yul\":6190:6209 */\n add\n /* \"#utility.yul\":6184:6210 */\n mload\n /* \"#utility.yul\":6175:6210 */\n swap1\n pop\n /* \"#utility.yul\":6147:6224 */\ntag_110:\n /* \"#utility.yul\":6250:6317 */\n tag_111\n /* \"#utility.yul\":6310:6316 */\n dup6\n /* \"#utility.yul\":6303:6308 */\n dup3\n /* \"#utility.yul\":6250:6317 */\n tag_48\n jump\t// in\ntag_111:\n /* \"#utility.yul\":6244:6248 */\n dup7\n /* \"#utility.yul\":6237:6318 */\n sstore\n /* \"#utility.yul\":6106:6328 */\n pop\n /* \"#utility.yul\":5441:6328 */\n jump(tag_108)\n /* \"#utility.yul\":5471:6089 */\ntag_109:\n /* \"#utility.yul\":5523:5527 */\n 0x1f\n /* \"#utility.yul\":5519:5528 */\n not\n /* \"#utility.yul\":5511:5517 */\n dup5\n /* \"#utility.yul\":5507:5529 */\n and\n /* \"#utility.yul\":5557:5594 */\n tag_112\n /* \"#utility.yul\":5589:5593 */\n dup7\n /* \"#utility.yul\":5557:5594 */\n tag_33\n jump\t// in\ntag_112:\n /* \"#utility.yul\":5616:5617 */\n 0x00\n /* \"#utility.yul\":5630:5838 */\ntag_113:\n /* \"#utility.yul\":5644:5651 */\n dup3\n /* \"#utility.yul\":5641:5642 */\n dup2\n /* \"#utility.yul\":5638:5652 */\n lt\n /* \"#utility.yul\":5630:5838 */\n iszero\n tag_115\n jumpi\n /* \"#utility.yul\":5723:5732 */\n dup5\n /* \"#utility.yul\":5718:5721 */\n dup10\n /* \"#utility.yul\":5714:5733 */\n add\n /* \"#utility.yul\":5708:5734 */\n mload\n /* \"#utility.yul\":5700:5706 */\n dup3\n /* \"#utility.yul\":5693:5735 */\n sstore\n /* \"#utility.yul\":5774:5775 */\n 0x01\n /* \"#utility.yul\":5766:5772 */\n dup3\n /* \"#utility.yul\":5762:5776 */\n add\n /* \"#utility.yul\":5752:5776 */\n swap2\n pop\n /* \"#utility.yul\":5821:5823 */\n 0x20\n /* \"#utility.yul\":5810:5819 */\n dup6\n /* \"#utility.yul\":5806:5824 */\n add\n /* \"#utility.yul\":5793:5824 */\n swap5\n pop\n /* \"#utility.yul\":5667:5671 */\n 0x20\n /* \"#utility.yul\":5664:5665 */\n dup2\n /* \"#utility.yul\":5660:5672 */\n add\n /* \"#utility.yul\":5655:5672 */\n swap1\n pop\n /* \"#utility.yul\":5630:5838 */\n jump(tag_113)\ntag_115:\n /* \"#utility.yul\":5866:5872 */\n dup7\n /* \"#utility.yul\":5857:5864 */\n dup4\n /* \"#utility.yul\":5854:5873 */\n lt\n /* \"#utility.yul\":5851:6030 */\n iszero\n tag_116\n jumpi\n /* \"#utility.yul\":5924:5933 */\n dup5\n /* \"#utility.yul\":5919:5922 */\n dup10\n /* \"#utility.yul\":5915:5934 */\n add\n /* \"#utility.yul\":5909:5935 */\n mload\n /* \"#utility.yul\":5967:6015 */\n tag_117\n /* \"#utility.yul\":6009:6013 */\n 0x1f\n /* \"#utility.yul\":6001:6007 */\n dup10\n /* \"#utility.yul\":5997:6014 */\n and\n /* \"#utility.yul\":5986:5995 */\n dup3\n /* \"#utility.yul\":5967:6015 */\n tag_47\n jump\t// in\ntag_117:\n /* \"#utility.yul\":5959:5965 */\n dup4\n /* \"#utility.yul\":5952:6016 */\n sstore\n /* \"#utility.yul\":5874:6030 */\n pop\n /* \"#utility.yul\":5851:6030 */\ntag_116:\n /* \"#utility.yul\":6076:6077 */\n 0x01\n /* \"#utility.yul\":6072:6073 */\n 0x02\n /* \"#utility.yul\":6064:6070 */\n dup9\n /* \"#utility.yul\":6060:6074 */\n mul\n /* \"#utility.yul\":6056:6078 */\n add\n /* \"#utility.yul\":6050:6054 */\n dup9\n /* \"#utility.yul\":6043:6079 */\n sstore\n /* \"#utility.yul\":5478:6089 */\n pop\n pop\n pop\n /* \"#utility.yul\":5441:6328 */\ntag_108:\n pop\n /* \"#utility.yul\":5031:6334 */\n pop\n pop\n pop\n /* \"#utility.yul\":4939:6334 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6340:6520 */\ntag_17:\n /* \"#utility.yul\":6388:6465 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":6385:6386 */\n 0x00\n /* \"#utility.yul\":6378:6466 */\n mstore\n /* \"#utility.yul\":6485:6489 */\n 0x32\n /* \"#utility.yul\":6482:6483 */\n 0x04\n /* \"#utility.yul\":6475:6490 */\n mstore\n /* \"#utility.yul\":6509:6513 */\n 0x24\n /* \"#utility.yul\":6506:6507 */\n 0x00\n /* \"#utility.yul\":6499:6514 */\n revert\n /* \"contracts/layout_maps.sol\":166:630 contract Layout_map {... */\ntag_19:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/layout_maps.sol\":166:630 contract Layout_map {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x5c36b186\n eq\n tag_3\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/layout_maps.sol\":460:628 function ping() public {... */\n tag_3:\n tag_4\n tag_5\n jump\t// in\n tag_4:\n stop\n tag_5:\n /* \"contracts/layout_maps.sol\":497:500 101 */\n 0x65\n /* \"contracts/layout_maps.sol\":493:494 a */\n 0x00\n dup1\n /* \"contracts/layout_maps.sol\":493:500 a = 101 */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/layout_maps.sol\":518:520 43 */\n 0x2b\n /* \"contracts/layout_maps.sol\":510:512 m1 */\n 0x01\n /* \"contracts/layout_maps.sol\":510:515 m1[2] */\n 0x00\n /* \"contracts/layout_maps.sol\":513:514 2 */\n 0x02\n /* \"contracts/layout_maps.sol\":510:515 m1[2] */\n 0x01\n signextend\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/layout_maps.sol\":510:520 m1[2] = 43 */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/layout_maps.sol\":547:552 -1002 */\n 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc16\n /* \"contracts/layout_maps.sol\":530:534 fMap */\n 0x03\n /* \"contracts/layout_maps.sol\":530:541 fMap[\"goo\"] */\n mload(0x40)\n tag_7\n swap1\n tag_8\n jump\t// in\n tag_7:\n swap1\n dup2\n mstore\n 0x20\n add\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n keccak256\n /* \"contracts/layout_maps.sol\":530:544 fMap[\"goo\"].fb */\n 0x00\n add\n 0x01\n /* \"contracts/layout_maps.sol\":530:552 fMap[\"goo\"].fb = -1002 */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffff\n mul\n not\n and\n swap1\n dup4\n 0x01\n signextend\n 0xffff\n and\n mul\n or\n swap1\n sstore\n /* \"contracts/layout_maps.sol\":563:571 revert() */\n 0x00\n dup1\n revert\n /* \"#utility.yul\":7:155 */\n tag_10:\n /* \"#utility.yul\":109:120 */\n 0x00\n /* \"#utility.yul\":146:149 */\n dup2\n /* \"#utility.yul\":131:149 */\n swap1\n pop\n /* \"#utility.yul\":7:155 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":161:314 */\n tag_11:\n /* \"#utility.yul\":301:306 */\n 0x676f6f0000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":297:298 */\n 0x00\n /* \"#utility.yul\":289:295 */\n dup3\n /* \"#utility.yul\":285:299 */\n add\n /* \"#utility.yul\":278:307 */\n mstore\n /* \"#utility.yul\":161:314 */\n pop\n jump\t// out\n /* \"#utility.yul\":320:720 */\n tag_12:\n /* \"#utility.yul\":480:483 */\n 0x00\n /* \"#utility.yul\":501:585 */\n tag_17\n /* \"#utility.yul\":583:584 */\n 0x03\n /* \"#utility.yul\":578:581 */\n dup4\n /* \"#utility.yul\":501:585 */\n tag_10\n jump\t// in\n tag_17:\n /* \"#utility.yul\":494:585 */\n swap2\n pop\n /* \"#utility.yul\":594:687 */\n tag_18\n /* \"#utility.yul\":683:686 */\n dup3\n /* \"#utility.yul\":594:687 */\n tag_11\n jump\t// in\n tag_18:\n /* \"#utility.yul\":712:713 */\n 0x03\n /* \"#utility.yul\":707:710 */\n dup3\n /* \"#utility.yul\":703:714 */\n add\n /* \"#utility.yul\":696:714 */\n swap1\n pop\n /* \"#utility.yul\":320:720 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":726:1107 */\n tag_8:\n /* \"#utility.yul\":911:914 */\n 0x00\n /* \"#utility.yul\":933:1081 */\n tag_20\n /* \"#utility.yul\":1077:1080 */\n dup3\n /* \"#utility.yul\":933:1081 */\n tag_12\n jump\t// in\n tag_20:\n /* \"#utility.yul\":926:1081 */\n swap2\n pop\n /* \"#utility.yul\":1098:1101 */\n dup2\n /* \"#utility.yul\":1091:1101 */\n swap1\n pop\n /* \"#utility.yul\":726:1107 */\n swap2\n swap1\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212209afc85b0006e5ba9fd94d0aa763eec28613e731ddcd180afdcb3bb6b9a10903364736f6c63430008150033\n}\n",
+ "bytecode": {
+ "functionDebugData": {
+ "@_74": {
+ "entryPoint": null,
+ "id": 74,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack": {
+ "entryPoint": 733,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_packed_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
+ "entryPoint": 767,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 890,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 787,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": {
+ "entryPoint": 683,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 1175,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 1016,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 1141,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 1034,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 1312,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 908,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 842,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 1285,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 1025,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 1257,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 797,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x32": {
+ "entryPoint": 1519,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 638,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 1067,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 923,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 1245,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 1117,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d": {
+ "entryPoint": 693,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 935,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 1076,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 1113,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nativeSrc": "0:6523:1",
+ "nodeType": "YulBlock",
+ "src": "0:6523:1",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "35:152:1",
+ "nodeType": "YulBlock",
+ "src": "35:152:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "52:1:1",
+ "nodeType": "YulLiteral",
+ "src": "52:1:1",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "55:77:1",
+ "nodeType": "YulLiteral",
+ "src": "55:77:1",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "45:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "45:6:1"
+ },
+ "nativeSrc": "45:88:1",
+ "nodeType": "YulFunctionCall",
+ "src": "45:88:1"
+ },
+ "nativeSrc": "45:88:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "45:88:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "149:1:1",
+ "nodeType": "YulLiteral",
+ "src": "149:1:1",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "152:4:1",
+ "nodeType": "YulLiteral",
+ "src": "152:4:1",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "142:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "142:6:1"
+ },
+ "nativeSrc": "142:15:1",
+ "nodeType": "YulFunctionCall",
+ "src": "142:15:1"
+ },
+ "nativeSrc": "142:15:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "142:15:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "173:1:1",
+ "nodeType": "YulLiteral",
+ "src": "173:1:1",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "176:4:1",
+ "nodeType": "YulLiteral",
+ "src": "176:4:1",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "166:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "166:6:1"
+ },
+ "nativeSrc": "166:15:1",
+ "nodeType": "YulFunctionCall",
+ "src": "166:15:1"
+ },
+ "nativeSrc": "166:15:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "166:15:1"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nativeSrc": "7:180:1",
+ "nodeType": "YulFunctionDefinition",
+ "src": "7:180:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "307:34:1",
+ "nodeType": "YulBlock",
+ "src": "307:34:1",
+ "statements": [
+ {
+ "nativeSrc": "317:18:1",
+ "nodeType": "YulAssignment",
+ "src": "317:18:1",
+ "value": {
+ "name": "pos",
+ "nativeSrc": "332:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "332:3:1"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nativeSrc": "317:11:1",
+ "nodeType": "YulIdentifier",
+ "src": "317:11:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
+ "nativeSrc": "193:148:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nativeSrc": "279:3:1",
+ "nodeType": "YulTypedName",
+ "src": "279:3:1",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nativeSrc": "284:6:1",
+ "nodeType": "YulTypedName",
+ "src": "284:6:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nativeSrc": "295:11:1",
+ "nodeType": "YulTypedName",
+ "src": "295:11:1",
+ "type": ""
+ }
+ ],
+ "src": "193:148:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "453:47:1",
+ "nodeType": "YulBlock",
+ "src": "453:47:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "475:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "475:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "483:1:1",
+ "nodeType": "YulLiteral",
+ "src": "483:1:1",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "471:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "471:3:1"
+ },
+ "nativeSrc": "471:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "471:14:1"
+ },
+ {
+ "hexValue": "676f6f",
+ "kind": "string",
+ "nativeSrc": "487:5:1",
+ "nodeType": "YulLiteral",
+ "src": "487:5:1",
+ "type": "",
+ "value": "goo"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "464:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "464:6:1"
+ },
+ "nativeSrc": "464:29:1",
+ "nodeType": "YulFunctionCall",
+ "src": "464:29:1"
+ },
+ "nativeSrc": "464:29:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "464:29:1"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d",
+ "nativeSrc": "347:153:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "445:6:1",
+ "nodeType": "YulTypedName",
+ "src": "445:6:1",
+ "type": ""
+ }
+ ],
+ "src": "347:153:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "670:236:1",
+ "nodeType": "YulBlock",
+ "src": "670:236:1",
+ "statements": [
+ {
+ "nativeSrc": "680:91:1",
+ "nodeType": "YulAssignment",
+ "src": "680:91:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "764:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "764:3:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "769:1:1",
+ "nodeType": "YulLiteral",
+ "src": "769:1:1",
+ "type": "",
+ "value": "3"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
+ "nativeSrc": "687:76:1",
+ "nodeType": "YulIdentifier",
+ "src": "687:76:1"
+ },
+ "nativeSrc": "687:84:1",
+ "nodeType": "YulFunctionCall",
+ "src": "687:84:1"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nativeSrc": "680:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "680:3:1"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "869:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "869:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d",
+ "nativeSrc": "780:88:1",
+ "nodeType": "YulIdentifier",
+ "src": "780:88:1"
+ },
+ "nativeSrc": "780:93:1",
+ "nodeType": "YulFunctionCall",
+ "src": "780:93:1"
+ },
+ "nativeSrc": "780:93:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "780:93:1"
+ },
+ {
+ "nativeSrc": "882:18:1",
+ "nodeType": "YulAssignment",
+ "src": "882:18:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "893:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "893:3:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "898:1:1",
+ "nodeType": "YulLiteral",
+ "src": "898:1:1",
+ "type": "",
+ "value": "3"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "889:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "889:3:1"
+ },
+ "nativeSrc": "889:11:1",
+ "nodeType": "YulFunctionCall",
+ "src": "889:11:1"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nativeSrc": "882:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
+ "nativeSrc": "506:400:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nativeSrc": "658:3:1",
+ "nodeType": "YulTypedName",
+ "src": "658:3:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nativeSrc": "666:3:1",
+ "nodeType": "YulTypedName",
+ "src": "666:3:1",
+ "type": ""
+ }
+ ],
+ "src": "506:400:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "1101:192:1",
+ "nodeType": "YulBlock",
+ "src": "1101:192:1",
+ "statements": [
+ {
+ "nativeSrc": "1112:155:1",
+ "nodeType": "YulAssignment",
+ "src": "1112:155:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "1263:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1263:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
+ "nativeSrc": "1119:142:1",
+ "nodeType": "YulIdentifier",
+ "src": "1119:142:1"
+ },
+ "nativeSrc": "1119:148:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1119:148:1"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nativeSrc": "1112:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1112:3:1"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "1277:10:1",
+ "nodeType": "YulAssignment",
+ "src": "1277:10:1",
+ "value": {
+ "name": "pos",
+ "nativeSrc": "1284:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1284:3:1"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nativeSrc": "1277:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1277:3:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_packed_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
+ "nativeSrc": "912:381:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nativeSrc": "1088:3:1",
+ "nodeType": "YulTypedName",
+ "src": "1088:3:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nativeSrc": "1097:3:1",
+ "nodeType": "YulTypedName",
+ "src": "1097:3:1",
+ "type": ""
+ }
+ ],
+ "src": "912:381:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "1358:40:1",
+ "nodeType": "YulBlock",
+ "src": "1358:40:1",
+ "statements": [
+ {
+ "nativeSrc": "1369:22:1",
+ "nodeType": "YulAssignment",
+ "src": "1369:22:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "1385:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "1385:5:1"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "1379:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "1379:5:1"
+ },
+ "nativeSrc": "1379:12:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1379:12:1"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nativeSrc": "1369:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1369:6:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nativeSrc": "1299:99:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "1341:5:1",
+ "nodeType": "YulTypedName",
+ "src": "1341:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nativeSrc": "1351:6:1",
+ "nodeType": "YulTypedName",
+ "src": "1351:6:1",
+ "type": ""
+ }
+ ],
+ "src": "1299:99:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "1432:152:1",
+ "nodeType": "YulBlock",
+ "src": "1432:152:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1449:1:1",
+ "nodeType": "YulLiteral",
+ "src": "1449:1:1",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1452:77:1",
+ "nodeType": "YulLiteral",
+ "src": "1452:77:1",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1442:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1442:6:1"
+ },
+ "nativeSrc": "1442:88:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1442:88:1"
+ },
+ "nativeSrc": "1442:88:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "1442:88:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1546:1:1",
+ "nodeType": "YulLiteral",
+ "src": "1546:1:1",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1549:4:1",
+ "nodeType": "YulLiteral",
+ "src": "1549:4:1",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "1539:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1539:6:1"
+ },
+ "nativeSrc": "1539:15:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1539:15:1"
+ },
+ "nativeSrc": "1539:15:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "1539:15:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "1570:1:1",
+ "nodeType": "YulLiteral",
+ "src": "1570:1:1",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1573:4:1",
+ "nodeType": "YulLiteral",
+ "src": "1573:4:1",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "1563:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1563:6:1"
+ },
+ "nativeSrc": "1563:15:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1563:15:1"
+ },
+ "nativeSrc": "1563:15:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "1563:15:1"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nativeSrc": "1404:180:1",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1404:180:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "1641:269:1",
+ "nodeType": "YulBlock",
+ "src": "1641:269:1",
+ "statements": [
+ {
+ "nativeSrc": "1651:22:1",
+ "nodeType": "YulAssignment",
+ "src": "1651:22:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nativeSrc": "1665:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "1665:4:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1671:1:1",
+ "nodeType": "YulLiteral",
+ "src": "1671:1:1",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "1661:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1661:3:1"
+ },
+ "nativeSrc": "1661:12:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1661:12:1"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nativeSrc": "1651:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1651:6:1"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "1682:38:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "1682:38:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nativeSrc": "1712:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "1712:4:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1718:1:1",
+ "nodeType": "YulLiteral",
+ "src": "1718:1:1",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "1708:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1708:3:1"
+ },
+ "nativeSrc": "1708:12:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1708:12:1"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nativeSrc": "1686:18:1",
+ "nodeType": "YulTypedName",
+ "src": "1686:18:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "1759:51:1",
+ "nodeType": "YulBlock",
+ "src": "1759:51:1",
+ "statements": [
+ {
+ "nativeSrc": "1773:27:1",
+ "nodeType": "YulAssignment",
+ "src": "1773:27:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nativeSrc": "1787:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1787:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1795:4:1",
+ "nodeType": "YulLiteral",
+ "src": "1795:4:1",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "1783:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1783:3:1"
+ },
+ "nativeSrc": "1783:17:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1783:17:1"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nativeSrc": "1773:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1773:6:1"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nativeSrc": "1739:18:1",
+ "nodeType": "YulIdentifier",
+ "src": "1739:18:1"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nativeSrc": "1732:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1732:6:1"
+ },
+ "nativeSrc": "1732:26:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1732:26:1"
+ },
+ "nativeSrc": "1729:81:1",
+ "nodeType": "YulIf",
+ "src": "1729:81:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "1862:42:1",
+ "nodeType": "YulBlock",
+ "src": "1862:42:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nativeSrc": "1876:16:1",
+ "nodeType": "YulIdentifier",
+ "src": "1876:16:1"
+ },
+ "nativeSrc": "1876:18:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1876:18:1"
+ },
+ "nativeSrc": "1876:18:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "1876:18:1"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nativeSrc": "1826:18:1",
+ "nodeType": "YulIdentifier",
+ "src": "1826:18:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nativeSrc": "1849:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "1849:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "1857:2:1",
+ "nodeType": "YulLiteral",
+ "src": "1857:2:1",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "1846:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "1846:2:1"
+ },
+ "nativeSrc": "1846:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1846:14:1"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nativeSrc": "1823:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "1823:2:1"
+ },
+ "nativeSrc": "1823:38:1",
+ "nodeType": "YulFunctionCall",
+ "src": "1823:38:1"
+ },
+ "nativeSrc": "1820:84:1",
+ "nodeType": "YulIf",
+ "src": "1820:84:1"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nativeSrc": "1590:320:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nativeSrc": "1625:4:1",
+ "nodeType": "YulTypedName",
+ "src": "1625:4:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nativeSrc": "1634:6:1",
+ "nodeType": "YulTypedName",
+ "src": "1634:6:1",
+ "type": ""
+ }
+ ],
+ "src": "1590:320:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "1970:87:1",
+ "nodeType": "YulBlock",
+ "src": "1970:87:1",
+ "statements": [
+ {
+ "nativeSrc": "1980:11:1",
+ "nodeType": "YulAssignment",
+ "src": "1980:11:1",
+ "value": {
+ "name": "ptr",
+ "nativeSrc": "1988:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1988:3:1"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nativeSrc": "1980:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "1980:4:1"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2008:1:1",
+ "nodeType": "YulLiteral",
+ "src": "2008:1:1",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nativeSrc": "2011:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2011:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "2001:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "2001:6:1"
+ },
+ "nativeSrc": "2001:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2001:14:1"
+ },
+ "nativeSrc": "2001:14:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "2001:14:1"
+ },
+ {
+ "nativeSrc": "2024:26:1",
+ "nodeType": "YulAssignment",
+ "src": "2024:26:1",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "2042:1:1",
+ "nodeType": "YulLiteral",
+ "src": "2042:1:1",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2045:4:1",
+ "nodeType": "YulLiteral",
+ "src": "2045:4:1",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nativeSrc": "2032:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "2032:9:1"
+ },
+ "nativeSrc": "2032:18:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2032:18:1"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nativeSrc": "2024:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "2024:4:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nativeSrc": "1916:141:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nativeSrc": "1957:3:1",
+ "nodeType": "YulTypedName",
+ "src": "1957:3:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nativeSrc": "1965:4:1",
+ "nodeType": "YulTypedName",
+ "src": "1965:4:1",
+ "type": ""
+ }
+ ],
+ "src": "1916:141:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "2107:49:1",
+ "nodeType": "YulBlock",
+ "src": "2107:49:1",
+ "statements": [
+ {
+ "nativeSrc": "2117:33:1",
+ "nodeType": "YulAssignment",
+ "src": "2117:33:1",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "2135:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "2135:5:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2142:2:1",
+ "nodeType": "YulLiteral",
+ "src": "2142:2:1",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "2131:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2131:3:1"
+ },
+ "nativeSrc": "2131:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2131:14:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2147:2:1",
+ "nodeType": "YulLiteral",
+ "src": "2147:2:1",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nativeSrc": "2127:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2127:3:1"
+ },
+ "nativeSrc": "2127:23:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2127:23:1"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "2117:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "2117:6:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nativeSrc": "2063:93:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "2090:5:1",
+ "nodeType": "YulTypedName",
+ "src": "2090:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nativeSrc": "2100:6:1",
+ "nodeType": "YulTypedName",
+ "src": "2100:6:1",
+ "type": ""
+ }
+ ],
+ "src": "2063:93:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "2215:54:1",
+ "nodeType": "YulBlock",
+ "src": "2215:54:1",
+ "statements": [
+ {
+ "nativeSrc": "2225:37:1",
+ "nodeType": "YulAssignment",
+ "src": "2225:37:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nativeSrc": "2250:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "2250:4:1"
+ },
+ {
+ "name": "value",
+ "nativeSrc": "2256:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "2256:5:1"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nativeSrc": "2246:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2246:3:1"
+ },
+ "nativeSrc": "2246:16:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2246:16:1"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nativeSrc": "2225:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "2225:8:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nativeSrc": "2162:107:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nativeSrc": "2190:4:1",
+ "nodeType": "YulTypedName",
+ "src": "2190:4:1",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nativeSrc": "2196:5:1",
+ "nodeType": "YulTypedName",
+ "src": "2196:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nativeSrc": "2206:8:1",
+ "nodeType": "YulTypedName",
+ "src": "2206:8:1",
+ "type": ""
+ }
+ ],
+ "src": "2162:107:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "2351:317:1",
+ "nodeType": "YulBlock",
+ "src": "2351:317:1",
+ "statements": [
+ {
+ "nativeSrc": "2361:35:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "2361:35:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nativeSrc": "2382:10:1",
+ "nodeType": "YulIdentifier",
+ "src": "2382:10:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2394:1:1",
+ "nodeType": "YulLiteral",
+ "src": "2394:1:1",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "2378:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2378:3:1"
+ },
+ "nativeSrc": "2378:18:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2378:18:1"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nativeSrc": "2365:9:1",
+ "nodeType": "YulTypedName",
+ "src": "2365:9:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2405:109:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "2405:109:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nativeSrc": "2436:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "2436:9:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "2447:66:1",
+ "nodeType": "YulLiteral",
+ "src": "2447:66:1",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nativeSrc": "2417:18:1",
+ "nodeType": "YulIdentifier",
+ "src": "2417:18:1"
+ },
+ "nativeSrc": "2417:97:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2417:97:1"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nativeSrc": "2409:4:1",
+ "nodeType": "YulTypedName",
+ "src": "2409:4:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2523:51:1",
+ "nodeType": "YulAssignment",
+ "src": "2523:51:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nativeSrc": "2554:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "2554:9:1"
+ },
+ {
+ "name": "toInsert",
+ "nativeSrc": "2565:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "2565:8:1"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nativeSrc": "2535:18:1",
+ "nodeType": "YulIdentifier",
+ "src": "2535:18:1"
+ },
+ "nativeSrc": "2535:39:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2535:39:1"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nativeSrc": "2523:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "2523:8:1"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2583:30:1",
+ "nodeType": "YulAssignment",
+ "src": "2583:30:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "2596:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "2596:5:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nativeSrc": "2607:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "2607:4:1"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "2603:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2603:3:1"
+ },
+ "nativeSrc": "2603:9:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2603:9:1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "2592:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2592:3:1"
+ },
+ "nativeSrc": "2592:21:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2592:21:1"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "2583:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "2583:5:1"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "2622:40:1",
+ "nodeType": "YulAssignment",
+ "src": "2622:40:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "2635:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "2635:5:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nativeSrc": "2646:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "2646:8:1"
+ },
+ {
+ "name": "mask",
+ "nativeSrc": "2656:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "2656:4:1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "2642:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2642:3:1"
+ },
+ "nativeSrc": "2642:19:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2642:19:1"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nativeSrc": "2632:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "2632:2:1"
+ },
+ "nativeSrc": "2632:30:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2632:30:1"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "2622:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "2622:6:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nativeSrc": "2275:393:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "2312:5:1",
+ "nodeType": "YulTypedName",
+ "src": "2312:5:1",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nativeSrc": "2319:10:1",
+ "nodeType": "YulTypedName",
+ "src": "2319:10:1",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nativeSrc": "2331:8:1",
+ "nodeType": "YulTypedName",
+ "src": "2331:8:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nativeSrc": "2344:6:1",
+ "nodeType": "YulTypedName",
+ "src": "2344:6:1",
+ "type": ""
+ }
+ ],
+ "src": "2275:393:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "2719:32:1",
+ "nodeType": "YulBlock",
+ "src": "2719:32:1",
+ "statements": [
+ {
+ "nativeSrc": "2729:16:1",
+ "nodeType": "YulAssignment",
+ "src": "2729:16:1",
+ "value": {
+ "name": "value",
+ "nativeSrc": "2740:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "2740:5:1"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nativeSrc": "2729:7:1",
+ "nodeType": "YulIdentifier",
+ "src": "2729:7:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nativeSrc": "2674:77:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "2701:5:1",
+ "nodeType": "YulTypedName",
+ "src": "2701:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nativeSrc": "2711:7:1",
+ "nodeType": "YulTypedName",
+ "src": "2711:7:1",
+ "type": ""
+ }
+ ],
+ "src": "2674:77:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "2789:28:1",
+ "nodeType": "YulBlock",
+ "src": "2789:28:1",
+ "statements": [
+ {
+ "nativeSrc": "2799:12:1",
+ "nodeType": "YulAssignment",
+ "src": "2799:12:1",
+ "value": {
+ "name": "value",
+ "nativeSrc": "2806:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "2806:5:1"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nativeSrc": "2799:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "2799:3:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nativeSrc": "2757:60:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "2775:5:1",
+ "nodeType": "YulTypedName",
+ "src": "2775:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nativeSrc": "2785:3:1",
+ "nodeType": "YulTypedName",
+ "src": "2785:3:1",
+ "type": ""
+ }
+ ],
+ "src": "2757:60:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "2883:82:1",
+ "nodeType": "YulBlock",
+ "src": "2883:82:1",
+ "statements": [
+ {
+ "nativeSrc": "2893:66:1",
+ "nodeType": "YulAssignment",
+ "src": "2893:66:1",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "2951:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "2951:5:1"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nativeSrc": "2933:17:1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:17:1"
+ },
+ "nativeSrc": "2933:24:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2933:24:1"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nativeSrc": "2924:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "2924:8:1"
+ },
+ "nativeSrc": "2924:34:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2924:34:1"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nativeSrc": "2906:17:1",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:1"
+ },
+ "nativeSrc": "2906:53:1",
+ "nodeType": "YulFunctionCall",
+ "src": "2906:53:1"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nativeSrc": "2893:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "2893:9:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nativeSrc": "2823:142:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "2863:5:1",
+ "nodeType": "YulTypedName",
+ "src": "2863:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nativeSrc": "2873:9:1",
+ "nodeType": "YulTypedName",
+ "src": "2873:9:1",
+ "type": ""
+ }
+ ],
+ "src": "2823:142:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "3018:28:1",
+ "nodeType": "YulBlock",
+ "src": "3018:28:1",
+ "statements": [
+ {
+ "nativeSrc": "3028:12:1",
+ "nodeType": "YulAssignment",
+ "src": "3028:12:1",
+ "value": {
+ "name": "value",
+ "nativeSrc": "3035:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "3035:5:1"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nativeSrc": "3028:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "3028:3:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nativeSrc": "2971:75:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nativeSrc": "3004:5:1",
+ "nodeType": "YulTypedName",
+ "src": "3004:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nativeSrc": "3014:3:1",
+ "nodeType": "YulTypedName",
+ "src": "3014:3:1",
+ "type": ""
+ }
+ ],
+ "src": "2971:75:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "3128:193:1",
+ "nodeType": "YulBlock",
+ "src": "3128:193:1",
+ "statements": [
+ {
+ "nativeSrc": "3138:63:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "3138:63:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nativeSrc": "3193:7:1",
+ "nodeType": "YulIdentifier",
+ "src": "3193:7:1"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nativeSrc": "3162:30:1",
+ "nodeType": "YulIdentifier",
+ "src": "3162:30:1"
+ },
+ "nativeSrc": "3162:39:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3162:39:1"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nativeSrc": "3142:16:1",
+ "nodeType": "YulTypedName",
+ "src": "3142:16:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nativeSrc": "3217:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "3217:4:1"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nativeSrc": "3257:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "3257:4:1"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nativeSrc": "3251:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "3251:5:1"
+ },
+ "nativeSrc": "3251:11:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3251:11:1"
+ },
+ {
+ "name": "offset",
+ "nativeSrc": "3264:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "3264:6:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nativeSrc": "3296:16:1",
+ "nodeType": "YulIdentifier",
+ "src": "3296:16:1"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nativeSrc": "3272:23:1",
+ "nodeType": "YulIdentifier",
+ "src": "3272:23:1"
+ },
+ "nativeSrc": "3272:41:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3272:41:1"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nativeSrc": "3223:27:1",
+ "nodeType": "YulIdentifier",
+ "src": "3223:27:1"
+ },
+ "nativeSrc": "3223:91:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3223:91:1"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "3210:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "3210:6:1"
+ },
+ "nativeSrc": "3210:105:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3210:105:1"
+ },
+ "nativeSrc": "3210:105:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "3210:105:1"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nativeSrc": "3052:269:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nativeSrc": "3105:4:1",
+ "nodeType": "YulTypedName",
+ "src": "3105:4:1",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nativeSrc": "3111:6:1",
+ "nodeType": "YulTypedName",
+ "src": "3111:6:1",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nativeSrc": "3119:7:1",
+ "nodeType": "YulTypedName",
+ "src": "3119:7:1",
+ "type": ""
+ }
+ ],
+ "src": "3052:269:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "3376:24:1",
+ "nodeType": "YulBlock",
+ "src": "3376:24:1",
+ "statements": [
+ {
+ "nativeSrc": "3386:8:1",
+ "nodeType": "YulAssignment",
+ "src": "3386:8:1",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "3393:1:1",
+ "nodeType": "YulLiteral",
+ "src": "3393:1:1",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nativeSrc": "3386:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "3386:3:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nativeSrc": "3327:73:1",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nativeSrc": "3372:3:1",
+ "nodeType": "YulTypedName",
+ "src": "3372:3:1",
+ "type": ""
+ }
+ ],
+ "src": "3327:73:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "3459:136:1",
+ "nodeType": "YulBlock",
+ "src": "3459:136:1",
+ "statements": [
+ {
+ "nativeSrc": "3469:46:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "3469:46:1",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nativeSrc": "3483:30:1",
+ "nodeType": "YulIdentifier",
+ "src": "3483:30:1"
+ },
+ "nativeSrc": "3483:32:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3483:32:1"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nativeSrc": "3473:6:1",
+ "nodeType": "YulTypedName",
+ "src": "3473:6:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nativeSrc": "3568:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "3568:4:1"
+ },
+ {
+ "name": "offset",
+ "nativeSrc": "3574:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "3574:6:1"
+ },
+ {
+ "name": "zero_0",
+ "nativeSrc": "3582:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "3582:6:1"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nativeSrc": "3524:43:1",
+ "nodeType": "YulIdentifier",
+ "src": "3524:43:1"
+ },
+ "nativeSrc": "3524:65:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3524:65:1"
+ },
+ "nativeSrc": "3524:65:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "3524:65:1"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nativeSrc": "3406:189:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nativeSrc": "3445:4:1",
+ "nodeType": "YulTypedName",
+ "src": "3445:4:1",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nativeSrc": "3451:6:1",
+ "nodeType": "YulTypedName",
+ "src": "3451:6:1",
+ "type": ""
+ }
+ ],
+ "src": "3406:189:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "3651:136:1",
+ "nodeType": "YulBlock",
+ "src": "3651:136:1",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "3718:63:1",
+ "nodeType": "YulBlock",
+ "src": "3718:63:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nativeSrc": "3762:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "3762:5:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3769:1:1",
+ "nodeType": "YulLiteral",
+ "src": "3769:1:1",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nativeSrc": "3732:29:1",
+ "nodeType": "YulIdentifier",
+ "src": "3732:29:1"
+ },
+ "nativeSrc": "3732:39:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3732:39:1"
+ },
+ "nativeSrc": "3732:39:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "3732:39:1"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nativeSrc": "3671:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "3671:5:1"
+ },
+ {
+ "name": "end",
+ "nativeSrc": "3678:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "3678:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "3668:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "3668:2:1"
+ },
+ "nativeSrc": "3668:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3668:14:1"
+ },
+ "nativeSrc": "3661:120:1",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "3683:26:1",
+ "nodeType": "YulBlock",
+ "src": "3683:26:1",
+ "statements": [
+ {
+ "nativeSrc": "3685:22:1",
+ "nodeType": "YulAssignment",
+ "src": "3685:22:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nativeSrc": "3698:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "3698:5:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3705:1:1",
+ "nodeType": "YulLiteral",
+ "src": "3705:1:1",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3694:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "3694:3:1"
+ },
+ "nativeSrc": "3694:13:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3694:13:1"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nativeSrc": "3685:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "3685:5:1"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "3665:2:1",
+ "nodeType": "YulBlock",
+ "src": "3665:2:1",
+ "statements": []
+ },
+ "src": "3661:120:1"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nativeSrc": "3601:186:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nativeSrc": "3639:5:1",
+ "nodeType": "YulTypedName",
+ "src": "3639:5:1",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nativeSrc": "3646:3:1",
+ "nodeType": "YulTypedName",
+ "src": "3646:3:1",
+ "type": ""
+ }
+ ],
+ "src": "3601:186:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "3872:464:1",
+ "nodeType": "YulBlock",
+ "src": "3872:464:1",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "3898:431:1",
+ "nodeType": "YulBlock",
+ "src": "3898:431:1",
+ "statements": [
+ {
+ "nativeSrc": "3912:54:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "3912:54:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nativeSrc": "3960:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "3960:5:1"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nativeSrc": "3928:31:1",
+ "nodeType": "YulIdentifier",
+ "src": "3928:31:1"
+ },
+ "nativeSrc": "3928:38:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3928:38:1"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nativeSrc": "3916:8:1",
+ "nodeType": "YulTypedName",
+ "src": "3916:8:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "3979:63:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "3979:63:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nativeSrc": "4002:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "4002:8:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nativeSrc": "4030:10:1",
+ "nodeType": "YulIdentifier",
+ "src": "4030:10:1"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nativeSrc": "4012:17:1",
+ "nodeType": "YulIdentifier",
+ "src": "4012:17:1"
+ },
+ "nativeSrc": "4012:29:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4012:29:1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "3998:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "3998:3:1"
+ },
+ "nativeSrc": "3998:44:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3998:44:1"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nativeSrc": "3983:11:1",
+ "nodeType": "YulTypedName",
+ "src": "3983:11:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "4199:27:1",
+ "nodeType": "YulBlock",
+ "src": "4199:27:1",
+ "statements": [
+ {
+ "nativeSrc": "4201:23:1",
+ "nodeType": "YulAssignment",
+ "src": "4201:23:1",
+ "value": {
+ "name": "dataArea",
+ "nativeSrc": "4216:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "4216:8:1"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nativeSrc": "4201:11:1",
+ "nodeType": "YulIdentifier",
+ "src": "4201:11:1"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nativeSrc": "4183:10:1",
+ "nodeType": "YulIdentifier",
+ "src": "4183:10:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "4195:2:1",
+ "nodeType": "YulLiteral",
+ "src": "4195:2:1",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "4180:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "4180:2:1"
+ },
+ "nativeSrc": "4180:18:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4180:18:1"
+ },
+ "nativeSrc": "4177:49:1",
+ "nodeType": "YulIf",
+ "src": "4177:49:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nativeSrc": "4268:11:1",
+ "nodeType": "YulIdentifier",
+ "src": "4268:11:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nativeSrc": "4285:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "4285:8:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nativeSrc": "4313:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4313:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nativeSrc": "4295:17:1",
+ "nodeType": "YulIdentifier",
+ "src": "4295:17:1"
+ },
+ "nativeSrc": "4295:22:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4295:22:1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "4281:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4281:3:1"
+ },
+ "nativeSrc": "4281:37:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4281:37:1"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nativeSrc": "4239:28:1",
+ "nodeType": "YulIdentifier",
+ "src": "4239:28:1"
+ },
+ "nativeSrc": "4239:80:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4239:80:1"
+ },
+ "nativeSrc": "4239:80:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "4239:80:1"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nativeSrc": "3889:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "3889:3:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "3894:2:1",
+ "nodeType": "YulLiteral",
+ "src": "3894:2:1",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "3886:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "3886:2:1"
+ },
+ "nativeSrc": "3886:11:1",
+ "nodeType": "YulFunctionCall",
+ "src": "3886:11:1"
+ },
+ "nativeSrc": "3883:446:1",
+ "nodeType": "YulIf",
+ "src": "3883:446:1"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nativeSrc": "3793:543:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nativeSrc": "3848:5:1",
+ "nodeType": "YulTypedName",
+ "src": "3848:5:1",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nativeSrc": "3855:3:1",
+ "nodeType": "YulTypedName",
+ "src": "3855:3:1",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nativeSrc": "3860:10:1",
+ "nodeType": "YulTypedName",
+ "src": "3860:10:1",
+ "type": ""
+ }
+ ],
+ "src": "3793:543:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "4405:54:1",
+ "nodeType": "YulBlock",
+ "src": "4405:54:1",
+ "statements": [
+ {
+ "nativeSrc": "4415:37:1",
+ "nodeType": "YulAssignment",
+ "src": "4415:37:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nativeSrc": "4440:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "4440:4:1"
+ },
+ {
+ "name": "value",
+ "nativeSrc": "4446:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "4446:5:1"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nativeSrc": "4436:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4436:3:1"
+ },
+ "nativeSrc": "4436:16:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4436:16:1"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nativeSrc": "4415:8:1",
+ "nodeType": "YulIdentifier",
+ "src": "4415:8:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nativeSrc": "4342:117:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nativeSrc": "4380:4:1",
+ "nodeType": "YulTypedName",
+ "src": "4380:4:1",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nativeSrc": "4386:5:1",
+ "nodeType": "YulTypedName",
+ "src": "4386:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nativeSrc": "4396:8:1",
+ "nodeType": "YulTypedName",
+ "src": "4396:8:1",
+ "type": ""
+ }
+ ],
+ "src": "4342:117:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "4516:118:1",
+ "nodeType": "YulBlock",
+ "src": "4516:118:1",
+ "statements": [
+ {
+ "nativeSrc": "4526:68:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "4526:68:1",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4575:1:1",
+ "nodeType": "YulLiteral",
+ "src": "4575:1:1",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nativeSrc": "4578:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "4578:5:1"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "4571:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4571:3:1"
+ },
+ "nativeSrc": "4571:13:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4571:13:1"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4590:1:1",
+ "nodeType": "YulLiteral",
+ "src": "4590:1:1",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "4586:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4586:3:1"
+ },
+ "nativeSrc": "4586:6:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4586:6:1"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nativeSrc": "4542:28:1",
+ "nodeType": "YulIdentifier",
+ "src": "4542:28:1"
+ },
+ "nativeSrc": "4542:51:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4542:51:1"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "4538:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4538:3:1"
+ },
+ "nativeSrc": "4538:56:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4538:56:1"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nativeSrc": "4530:4:1",
+ "nodeType": "YulTypedName",
+ "src": "4530:4:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4603:25:1",
+ "nodeType": "YulAssignment",
+ "src": "4603:25:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nativeSrc": "4617:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "4617:4:1"
+ },
+ {
+ "name": "mask",
+ "nativeSrc": "4623:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "4623:4:1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "4613:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4613:3:1"
+ },
+ "nativeSrc": "4613:15:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4613:15:1"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nativeSrc": "4603:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "4603:6:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nativeSrc": "4465:169:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nativeSrc": "4493:4:1",
+ "nodeType": "YulTypedName",
+ "src": "4493:4:1",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nativeSrc": "4499:5:1",
+ "nodeType": "YulTypedName",
+ "src": "4499:5:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nativeSrc": "4509:6:1",
+ "nodeType": "YulTypedName",
+ "src": "4509:6:1",
+ "type": ""
+ }
+ ],
+ "src": "4465:169:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "4720:214:1",
+ "nodeType": "YulBlock",
+ "src": "4720:214:1",
+ "statements": [
+ {
+ "nativeSrc": "4853:37:1",
+ "nodeType": "YulAssignment",
+ "src": "4853:37:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nativeSrc": "4880:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "4880:4:1"
+ },
+ {
+ "name": "len",
+ "nativeSrc": "4886:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4886:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nativeSrc": "4861:18:1",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:1"
+ },
+ "nativeSrc": "4861:29:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4861:29:1"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nativeSrc": "4853:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "4853:4:1"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "4899:29:1",
+ "nodeType": "YulAssignment",
+ "src": "4899:29:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nativeSrc": "4910:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "4910:4:1"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "4920:1:1",
+ "nodeType": "YulLiteral",
+ "src": "4920:1:1",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nativeSrc": "4923:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4923:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "4916:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "4916:3:1"
+ },
+ "nativeSrc": "4916:11:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4916:11:1"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nativeSrc": "4907:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "4907:2:1"
+ },
+ "nativeSrc": "4907:21:1",
+ "nodeType": "YulFunctionCall",
+ "src": "4907:21:1"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nativeSrc": "4899:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "4899:4:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nativeSrc": "4639:295:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nativeSrc": "4701:4:1",
+ "nodeType": "YulTypedName",
+ "src": "4701:4:1",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nativeSrc": "4707:3:1",
+ "nodeType": "YulTypedName",
+ "src": "4707:3:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nativeSrc": "4715:4:1",
+ "nodeType": "YulTypedName",
+ "src": "4715:4:1",
+ "type": ""
+ }
+ ],
+ "src": "4639:295:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "5031:1303:1",
+ "nodeType": "YulBlock",
+ "src": "5031:1303:1",
+ "statements": [
+ {
+ "nativeSrc": "5042:51:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5042:51:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nativeSrc": "5089:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5089:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nativeSrc": "5056:32:1",
+ "nodeType": "YulIdentifier",
+ "src": "5056:32:1"
+ },
+ "nativeSrc": "5056:37:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5056:37:1"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nativeSrc": "5046:6:1",
+ "nodeType": "YulTypedName",
+ "src": "5046:6:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5178:22:1",
+ "nodeType": "YulBlock",
+ "src": "5178:22:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nativeSrc": "5180:16:1",
+ "nodeType": "YulIdentifier",
+ "src": "5180:16:1"
+ },
+ "nativeSrc": "5180:18:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5180:18:1"
+ },
+ "nativeSrc": "5180:18:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "5180:18:1"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nativeSrc": "5150:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5150:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5158:18:1",
+ "nodeType": "YulLiteral",
+ "src": "5158:18:1",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "5147:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "5147:2:1"
+ },
+ "nativeSrc": "5147:30:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5147:30:1"
+ },
+ "nativeSrc": "5144:56:1",
+ "nodeType": "YulIf",
+ "src": "5144:56:1"
+ },
+ {
+ "nativeSrc": "5210:52:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5210:52:1",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nativeSrc": "5256:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "5256:4:1"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nativeSrc": "5250:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "5250:5:1"
+ },
+ "nativeSrc": "5250:11:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5250:11:1"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nativeSrc": "5224:25:1",
+ "nodeType": "YulIdentifier",
+ "src": "5224:25:1"
+ },
+ "nativeSrc": "5224:38:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5224:38:1"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nativeSrc": "5214:6:1",
+ "nodeType": "YulTypedName",
+ "src": "5214:6:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nativeSrc": "5355:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "5355:4:1"
+ },
+ {
+ "name": "oldLen",
+ "nativeSrc": "5361:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5361:6:1"
+ },
+ {
+ "name": "newLen",
+ "nativeSrc": "5369:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5369:6:1"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nativeSrc": "5309:45:1",
+ "nodeType": "YulIdentifier",
+ "src": "5309:45:1"
+ },
+ "nativeSrc": "5309:67:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5309:67:1"
+ },
+ "nativeSrc": "5309:67:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "5309:67:1"
+ },
+ {
+ "nativeSrc": "5386:18:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5386:18:1",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "5403:1:1",
+ "nodeType": "YulLiteral",
+ "src": "5403:1:1",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nativeSrc": "5390:9:1",
+ "nodeType": "YulTypedName",
+ "src": "5390:9:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5414:17:1",
+ "nodeType": "YulAssignment",
+ "src": "5414:17:1",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "5427:4:1",
+ "nodeType": "YulLiteral",
+ "src": "5427:4:1",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nativeSrc": "5414:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "5414:9:1"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nativeSrc": "5478:611:1",
+ "nodeType": "YulBlock",
+ "src": "5478:611:1",
+ "statements": [
+ {
+ "nativeSrc": "5492:37:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5492:37:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nativeSrc": "5511:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5511:6:1"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "5523:4:1",
+ "nodeType": "YulLiteral",
+ "src": "5523:4:1",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nativeSrc": "5519:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5519:3:1"
+ },
+ "nativeSrc": "5519:9:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5519:9:1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "5507:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5507:3:1"
+ },
+ "nativeSrc": "5507:22:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5507:22:1"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nativeSrc": "5496:7:1",
+ "nodeType": "YulTypedName",
+ "src": "5496:7:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5543:51:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5543:51:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nativeSrc": "5589:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "5589:4:1"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nativeSrc": "5557:31:1",
+ "nodeType": "YulIdentifier",
+ "src": "5557:31:1"
+ },
+ "nativeSrc": "5557:37:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5557:37:1"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nativeSrc": "5547:6:1",
+ "nodeType": "YulTypedName",
+ "src": "5547:6:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5607:10:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5607:10:1",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "5616:1:1",
+ "nodeType": "YulLiteral",
+ "src": "5616:1:1",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nativeSrc": "5611:1:1",
+ "nodeType": "YulTypedName",
+ "src": "5611:1:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "5675:163:1",
+ "nodeType": "YulBlock",
+ "src": "5675:163:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nativeSrc": "5700:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5700:6:1"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nativeSrc": "5718:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5718:3:1"
+ },
+ {
+ "name": "srcOffset",
+ "nativeSrc": "5723:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "5723:9:1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5714:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5714:3:1"
+ },
+ "nativeSrc": "5714:19:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5714:19:1"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5708:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "5708:5:1"
+ },
+ "nativeSrc": "5708:26:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5708:26:1"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "5693:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5693:6:1"
+ },
+ "nativeSrc": "5693:42:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5693:42:1"
+ },
+ "nativeSrc": "5693:42:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "5693:42:1"
+ },
+ {
+ "nativeSrc": "5752:24:1",
+ "nodeType": "YulAssignment",
+ "src": "5752:24:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nativeSrc": "5766:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5766:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5774:1:1",
+ "nodeType": "YulLiteral",
+ "src": "5774:1:1",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5762:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5762:3:1"
+ },
+ "nativeSrc": "5762:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5762:14:1"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nativeSrc": "5752:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5752:6:1"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "5793:31:1",
+ "nodeType": "YulAssignment",
+ "src": "5793:31:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nativeSrc": "5810:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "5810:9:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5821:2:1",
+ "nodeType": "YulLiteral",
+ "src": "5821:2:1",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5806:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5806:3:1"
+ },
+ "nativeSrc": "5806:18:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5806:18:1"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nativeSrc": "5793:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "5793:9:1"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nativeSrc": "5641:1:1",
+ "nodeType": "YulIdentifier",
+ "src": "5641:1:1"
+ },
+ {
+ "name": "loopEnd",
+ "nativeSrc": "5644:7:1",
+ "nodeType": "YulIdentifier",
+ "src": "5644:7:1"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "5638:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "5638:2:1"
+ },
+ "nativeSrc": "5638:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5638:14:1"
+ },
+ "nativeSrc": "5630:208:1",
+ "nodeType": "YulForLoop",
+ "post": {
+ "nativeSrc": "5653:21:1",
+ "nodeType": "YulBlock",
+ "src": "5653:21:1",
+ "statements": [
+ {
+ "nativeSrc": "5655:17:1",
+ "nodeType": "YulAssignment",
+ "src": "5655:17:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nativeSrc": "5664:1:1",
+ "nodeType": "YulIdentifier",
+ "src": "5664:1:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5667:4:1",
+ "nodeType": "YulLiteral",
+ "src": "5667:4:1",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5660:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5660:3:1"
+ },
+ "nativeSrc": "5660:12:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5660:12:1"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nativeSrc": "5655:1:1",
+ "nodeType": "YulIdentifier",
+ "src": "5655:1:1"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nativeSrc": "5634:3:1",
+ "nodeType": "YulBlock",
+ "src": "5634:3:1",
+ "statements": []
+ },
+ "src": "5630:208:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "5874:156:1",
+ "nodeType": "YulBlock",
+ "src": "5874:156:1",
+ "statements": [
+ {
+ "nativeSrc": "5892:43:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "5892:43:1",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nativeSrc": "5919:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5919:3:1"
+ },
+ {
+ "name": "srcOffset",
+ "nativeSrc": "5924:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "5924:9:1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "5915:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5915:3:1"
+ },
+ "nativeSrc": "5915:19:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5915:19:1"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "5909:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "5909:5:1"
+ },
+ "nativeSrc": "5909:26:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5909:26:1"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nativeSrc": "5896:9:1",
+ "nodeType": "YulTypedName",
+ "src": "5896:9:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nativeSrc": "5959:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5959:6:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nativeSrc": "5986:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "5986:9:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nativeSrc": "6001:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6001:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6009:4:1",
+ "nodeType": "YulLiteral",
+ "src": "6009:4:1",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nativeSrc": "5997:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "5997:3:1"
+ },
+ "nativeSrc": "5997:17:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5997:17:1"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nativeSrc": "5967:18:1",
+ "nodeType": "YulIdentifier",
+ "src": "5967:18:1"
+ },
+ "nativeSrc": "5967:48:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5967:48:1"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "5952:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5952:6:1"
+ },
+ "nativeSrc": "5952:64:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5952:64:1"
+ },
+ "nativeSrc": "5952:64:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "5952:64:1"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nativeSrc": "5857:7:1",
+ "nodeType": "YulIdentifier",
+ "src": "5857:7:1"
+ },
+ {
+ "name": "newLen",
+ "nativeSrc": "5866:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5866:6:1"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nativeSrc": "5854:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "5854:2:1"
+ },
+ "nativeSrc": "5854:19:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5854:19:1"
+ },
+ "nativeSrc": "5851:179:1",
+ "nodeType": "YulIf",
+ "src": "5851:179:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nativeSrc": "6050:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "6050:4:1"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nativeSrc": "6064:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6064:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6072:1:1",
+ "nodeType": "YulLiteral",
+ "src": "6072:1:1",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nativeSrc": "6060:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "6060:3:1"
+ },
+ "nativeSrc": "6060:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6060:14:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6076:1:1",
+ "nodeType": "YulLiteral",
+ "src": "6076:1:1",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6056:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "6056:3:1"
+ },
+ "nativeSrc": "6056:22:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6056:22:1"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "6043:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6043:6:1"
+ },
+ "nativeSrc": "6043:36:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6043:36:1"
+ },
+ "nativeSrc": "6043:36:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "6043:36:1"
+ }
+ ]
+ },
+ "nativeSrc": "5471:618:1",
+ "nodeType": "YulCase",
+ "src": "5471:618:1",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "5476:1:1",
+ "nodeType": "YulLiteral",
+ "src": "5476:1:1",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nativeSrc": "6106:222:1",
+ "nodeType": "YulBlock",
+ "src": "6106:222:1",
+ "statements": [
+ {
+ "nativeSrc": "6120:14:1",
+ "nodeType": "YulVariableDeclaration",
+ "src": "6120:14:1",
+ "value": {
+ "kind": "number",
+ "nativeSrc": "6133:1:1",
+ "nodeType": "YulLiteral",
+ "src": "6133:1:1",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nativeSrc": "6124:5:1",
+ "nodeType": "YulTypedName",
+ "src": "6124:5:1",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nativeSrc": "6157:67:1",
+ "nodeType": "YulBlock",
+ "src": "6157:67:1",
+ "statements": [
+ {
+ "nativeSrc": "6175:35:1",
+ "nodeType": "YulAssignment",
+ "src": "6175:35:1",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nativeSrc": "6194:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "6194:3:1"
+ },
+ {
+ "name": "srcOffset",
+ "nativeSrc": "6199:9:1",
+ "nodeType": "YulIdentifier",
+ "src": "6199:9:1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "6190:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "6190:3:1"
+ },
+ "nativeSrc": "6190:19:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6190:19:1"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nativeSrc": "6184:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "6184:5:1"
+ },
+ "nativeSrc": "6184:26:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6184:26:1"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nativeSrc": "6175:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "6175:5:1"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nativeSrc": "6150:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6150:6:1"
+ },
+ "nativeSrc": "6147:77:1",
+ "nodeType": "YulIf",
+ "src": "6147:77:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nativeSrc": "6244:4:1",
+ "nodeType": "YulIdentifier",
+ "src": "6244:4:1"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nativeSrc": "6303:5:1",
+ "nodeType": "YulIdentifier",
+ "src": "6303:5:1"
+ },
+ {
+ "name": "newLen",
+ "nativeSrc": "6310:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6310:6:1"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nativeSrc": "6250:52:1",
+ "nodeType": "YulIdentifier",
+ "src": "6250:52:1"
+ },
+ "nativeSrc": "6250:67:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6250:67:1"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nativeSrc": "6237:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6237:6:1"
+ },
+ "nativeSrc": "6237:81:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6237:81:1"
+ },
+ "nativeSrc": "6237:81:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "6237:81:1"
+ }
+ ]
+ },
+ "nativeSrc": "6098:230:1",
+ "nodeType": "YulCase",
+ "src": "6098:230:1",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nativeSrc": "5451:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "5451:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "5459:2:1",
+ "nodeType": "YulLiteral",
+ "src": "5459:2:1",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nativeSrc": "5448:2:1",
+ "nodeType": "YulIdentifier",
+ "src": "5448:2:1"
+ },
+ "nativeSrc": "5448:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "5448:14:1"
+ },
+ "nativeSrc": "5441:887:1",
+ "nodeType": "YulSwitch",
+ "src": "5441:887:1"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nativeSrc": "4939:1395:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nativeSrc": "5020:4:1",
+ "nodeType": "YulTypedName",
+ "src": "5020:4:1",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nativeSrc": "5026:3:1",
+ "nodeType": "YulTypedName",
+ "src": "5026:3:1",
+ "type": ""
+ }
+ ],
+ "src": "4939:1395:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "6368:152:1",
+ "nodeType": "YulBlock",
+ "src": "6368:152:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6385:1:1",
+ "nodeType": "YulLiteral",
+ "src": "6385:1:1",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6388:77:1",
+ "nodeType": "YulLiteral",
+ "src": "6388:77:1",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6378:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6378:6:1"
+ },
+ "nativeSrc": "6378:88:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6378:88:1"
+ },
+ "nativeSrc": "6378:88:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "6378:88:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6482:1:1",
+ "nodeType": "YulLiteral",
+ "src": "6482:1:1",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6485:4:1",
+ "nodeType": "YulLiteral",
+ "src": "6485:4:1",
+ "type": "",
+ "value": "0x32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "6475:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6475:6:1"
+ },
+ "nativeSrc": "6475:15:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6475:15:1"
+ },
+ "nativeSrc": "6475:15:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "6475:15:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nativeSrc": "6506:1:1",
+ "nodeType": "YulLiteral",
+ "src": "6506:1:1",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "6509:4:1",
+ "nodeType": "YulLiteral",
+ "src": "6509:4:1",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nativeSrc": "6499:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "6499:6:1"
+ },
+ "nativeSrc": "6499:15:1",
+ "nodeType": "YulFunctionCall",
+ "src": "6499:15:1"
+ },
+ "nativeSrc": "6499:15:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "6499:15:1"
+ }
+ ]
+ },
+ "name": "panic_error_0x32",
+ "nativeSrc": "6340:180:1",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6340:180:1"
+ }
+ ]
+ },
+ "contents": "{\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d(memPtr) {\n\n mstore(add(memPtr, 0), \"goo\")\n\n }\n\n function abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 3)\n store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d(pos)\n end := add(pos, 3)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n}\n",
+ "id": 1,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "608060405234801561000f575f80fd5b5060015f806101000a81548160ff021916908360ff1602179055506002805f6101000a81548160ff021916908360ff160217905550602a60015f6001800b81526020019081526020015f205f6101000a81548163ffffffff021916908363ffffffff16021790555060405180608001604052807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f0b81526020016103e860010b81526020016040518060400160405280600281526020017f64790000000000000000000000000000000000000000000000000000000000008152508152602001600167ffffffffffffffff81111561010b5761010a61027e565b5b6040519080825280602002602001820160405280156101395781602001602082028036833780820191505090505b50815250600360405161014b906102ff565b90815260200160405180910390205f820151815f015f6101000a81548160ff02191690835f0b60ff1602179055506020820151815f0160016101000a81548161ffff021916908360010b61ffff16021790555060408201518160010190816101b39190610520565b5060608201518160020190805190602001906101d0929190610218565b50905050606460036040516101e4906102ff565b90815260200160405180910390206002015f81548110610207576102066105ef565b5b905f5260205f20018190555061061c565b828054828255905f5260205f20908101928215610252579160200282015b82811115610251578251825591602001919060010190610236565b5b50905061025f9190610263565b5090565b5b8082111561027a575f815f905550600101610264565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81905092915050565b7f676f6f00000000000000000000000000000000000000000000000000000000005f82015250565b5f6102e96003836102ab565b91506102f4826102b5565b600382019050919050565b5f610309826102dd565b9150819050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061036157607f821691505b6020821081036103745761037361031d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261039b565b6103e0868361039b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61042461041f61041a846103f8565b610401565b6103f8565b9050919050565b5f819050919050565b61043d8361040a565b6104516104498261042b565b8484546103a7565b825550505050565b5f90565b610465610459565b610470818484610434565b505050565b5b81811015610493576104885f8261045d565b600181019050610476565b5050565b601f8211156104d8576104a98161037a565b6104b28461038c565b810160208510156104c1578190505b6104d56104cd8561038c565b830182610475565b50505b505050565b5f82821c905092915050565b5f6104f85f19846008026104dd565b1980831691505092915050565b5f61051083836104e9565b9150826002028217905092915050565b61052982610313565b67ffffffffffffffff8111156105425761054161027e565b5b61054c825461034a565b610557828285610497565b5f60209050601f831160018114610588575f8415610576578287015190505b6105808582610505565b8655506105e7565b601f1984166105968661037a565b5f5b828110156105bd57848901518255600182019150602085019450602081019050610598565b868310156105da57848901516105d6601f8916826104e9565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610182806106295f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635c36b1861461002d575b5f80fd5b610035610037565b005b60655f806101000a81548160ff021916908360ff160217905550602b60015f600260010b81526020019081526020015f205f6101000a81548163ffffffff021916908363ffffffff1602179055507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1660036040516100b490610138565b90815260200160405180910390205f0160016101000a81548161ffff021916908360010b61ffff16021790555f80fd5b5f81905092915050565b7f676f6f00000000000000000000000000000000000000000000000000000000005f82015250565b5f6101226003836100e4565b915061012d826100ee565b600382019050919050565b5f61014282610116565b915081905091905056fea26469706673582212209afc85b0006e5ba9fd94d0aa763eec28613e731ddcd180afdcb3bb6b9a10903364736f6c63430008150033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x2 DUP1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x2A PUSH1 0x1 PUSH0 PUSH1 0x1 DUP1 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH0 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3E8 PUSH1 0x1 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6479000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10B JUMPI PUSH2 0x10A PUSH2 0x27E JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x139 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP DUP2 MSTORE POP PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x14B SWAP1 PUSH2 0x2FF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH0 SIGNEXTEND PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 SIGNEXTEND PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x1B3 SWAP2 SWAP1 PUSH2 0x520 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1D0 SWAP3 SWAP2 SWAP1 PUSH2 0x218 JUMP JUMPDEST POP SWAP1 POP POP PUSH1 0x64 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0x1E4 SWAP1 PUSH2 0x2FF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD PUSH0 DUP2 SLOAD DUP2 LT PUSH2 0x207 JUMPI PUSH2 0x206 PUSH2 0x5EF JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x61C JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x252 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x251 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x236 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27A JUMPI PUSH0 DUP2 PUSH0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x264 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x676F6F0000000000000000000000000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x2E9 PUSH1 0x3 DUP4 PUSH2 0x2AB JUMP JUMPDEST SWAP2 POP PUSH2 0x2F4 DUP3 PUSH2 0x2B5 JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x309 DUP3 PUSH2 0x2DD JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x361 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x374 JUMPI PUSH2 0x373 PUSH2 0x31D JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x3D6 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x39B JUMP JUMPDEST PUSH2 0x3E0 DUP7 DUP4 PUSH2 0x39B JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x424 PUSH2 0x41F PUSH2 0x41A DUP5 PUSH2 0x3F8 JUMP JUMPDEST PUSH2 0x401 JUMP JUMPDEST PUSH2 0x3F8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x43D DUP4 PUSH2 0x40A JUMP JUMPDEST PUSH2 0x451 PUSH2 0x449 DUP3 PUSH2 0x42B JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x3A7 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x465 PUSH2 0x459 JUMP JUMPDEST PUSH2 0x470 DUP2 DUP5 DUP5 PUSH2 0x434 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x493 JUMPI PUSH2 0x488 PUSH0 DUP3 PUSH2 0x45D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x476 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x4D8 JUMPI PUSH2 0x4A9 DUP2 PUSH2 0x37A JUMP JUMPDEST PUSH2 0x4B2 DUP5 PUSH2 0x38C JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x4C1 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x4D5 PUSH2 0x4CD DUP6 PUSH2 0x38C JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x475 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4F8 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x4DD JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x510 DUP4 DUP4 PUSH2 0x4E9 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x529 DUP3 PUSH2 0x313 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x542 JUMPI PUSH2 0x541 PUSH2 0x27E JUMP JUMPDEST JUMPDEST PUSH2 0x54C DUP3 SLOAD PUSH2 0x34A JUMP JUMPDEST PUSH2 0x557 DUP3 DUP3 DUP6 PUSH2 0x497 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x588 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x576 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x580 DUP6 DUP3 PUSH2 0x505 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x5E7 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x596 DUP7 PUSH2 0x37A JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5BD JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x598 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x5DA JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x5D6 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x4E9 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x182 DUP1 PUSH2 0x629 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C36B186 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x35 PUSH2 0x37 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x65 PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x2B PUSH1 0x1 PUSH0 PUSH1 0x2 PUSH1 0x1 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC16 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0xB4 SWAP1 PUSH2 0x138 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 SIGNEXTEND PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x676F6F0000000000000000000000000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x122 PUSH1 0x3 DUP4 PUSH2 0xE4 JUMP JUMPDEST SWAP2 POP PUSH2 0x12D DUP3 PUSH2 0xEE JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x142 DUP3 PUSH2 0x116 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 0xFC DUP6 0xB0 STOP PUSH15 0x5BA9FD94D0AA763EEC28613E731DDC 0xD1 DUP1 0xAF 0xDC 0xB3 0xBB PUSH12 0x9A10903364736F6C63430008 ISZERO STOP CALLER ",
+ "sourceMap": "166:464:0:-:0;;;285:169;;;;;;;;;;320:1;316;;:5;;;;;;;;;;;;;;;;;;335:1;331;;:5;;;;;;;;;;;;;;;;;;354:2;346;:5;349:1;346:5;;;;;;;;;;;;;;:10;;;;;;;;;;;;;;;;;;381:33;;;;;;;;385:2;381:33;;;;;;389:4;381:33;;;;;;;;;;;;;;;;;;;;;;;;;;;411:1;401:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;381:33;;;367:4;:11;;;;;:::i;:::-;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;444:3;424:4;:11;;;;;:::i;:::-;;;;;;;;;;;;;:14;;439:1;424:17;;;;;;;;:::i;:::-;;;;;;;;;:23;;;;166:464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:148;295:11;332:3;317:18;;193:148;;;;:::o;347:153::-;487:5;483:1;475:6;471:14;464:29;347:153;:::o;506:400::-;666:3;687:84;769:1;764:3;687:84;:::i;:::-;680:91;;780:93;869:3;780:93;:::i;:::-;898:1;893:3;889:11;882:18;;506:400;;;:::o;912:381::-;1097:3;1119:148;1263:3;1119:148;:::i;:::-;1112:155;;1284:3;1277:10;;912:381;;;:::o;1299:99::-;1351:6;1385:5;1379:12;1369:22;;1299:99;;;:::o;1404:180::-;1452:77;1449:1;1442:88;1549:4;1546:1;1539:15;1573:4;1570:1;1563:15;1590:320;1634:6;1671:1;1665:4;1661:12;1651:22;;1718:1;1712:4;1708:12;1739:18;1729:81;;1795:4;1787:6;1783:17;1773:27;;1729:81;1857:2;1849:6;1846:14;1826:18;1823:38;1820:84;;1876:18;;:::i;:::-;1820:84;1641:269;1590:320;;;:::o;1916:141::-;1965:4;1988:3;1980:11;;2011:3;2008:1;2001:14;2045:4;2042:1;2032:18;2024:26;;1916:141;;;:::o;2063:93::-;2100:6;2147:2;2142;2135:5;2131:14;2127:23;2117:33;;2063:93;;;:::o;2162:107::-;2206:8;2256:5;2250:4;2246:16;2225:37;;2162:107;;;;:::o;2275:393::-;2344:6;2394:1;2382:10;2378:18;2417:97;2447:66;2436:9;2417:97;:::i;:::-;2535:39;2565:8;2554:9;2535:39;:::i;:::-;2523:51;;2607:4;2603:9;2596:5;2592:21;2583:30;;2656:4;2646:8;2642:19;2635:5;2632:30;2622:40;;2351:317;;2275:393;;;;;:::o;2674:77::-;2711:7;2740:5;2729:16;;2674:77;;;:::o;2757:60::-;2785:3;2806:5;2799:12;;2757:60;;;:::o;2823:142::-;2873:9;2906:53;2924:34;2933:24;2951:5;2933:24;:::i;:::-;2924:34;:::i;:::-;2906:53;:::i;:::-;2893:66;;2823:142;;;:::o;2971:75::-;3014:3;3035:5;3028:12;;2971:75;;;:::o;3052:269::-;3162:39;3193:7;3162:39;:::i;:::-;3223:91;3272:41;3296:16;3272:41;:::i;:::-;3264:6;3257:4;3251:11;3223:91;:::i;:::-;3217:4;3210:105;3128:193;3052:269;;;:::o;3327:73::-;3372:3;3327:73;:::o;3406:189::-;3483:32;;:::i;:::-;3524:65;3582:6;3574;3568:4;3524:65;:::i;:::-;3459:136;3406:189;;:::o;3601:186::-;3661:120;3678:3;3671:5;3668:14;3661:120;;;3732:39;3769:1;3762:5;3732:39;:::i;:::-;3705:1;3698:5;3694:13;3685:22;;3661:120;;;3601:186;;:::o;3793:543::-;3894:2;3889:3;3886:11;3883:446;;;3928:38;3960:5;3928:38;:::i;:::-;4012:29;4030:10;4012:29;:::i;:::-;4002:8;3998:44;4195:2;4183:10;4180:18;4177:49;;;4216:8;4201:23;;4177:49;4239:80;4295:22;4313:3;4295:22;:::i;:::-;4285:8;4281:37;4268:11;4239:80;:::i;:::-;3898:431;;3883:446;3793:543;;;:::o;4342:117::-;4396:8;4446:5;4440:4;4436:16;4415:37;;4342:117;;;;:::o;4465:169::-;4509:6;4542:51;4590:1;4586:6;4578:5;4575:1;4571:13;4542:51;:::i;:::-;4538:56;4623:4;4617;4613:15;4603:25;;4516:118;4465:169;;;;:::o;4639:295::-;4715:4;4861:29;4886:3;4880:4;4861:29;:::i;:::-;4853:37;;4923:3;4920:1;4916:11;4910:4;4907:21;4899:29;;4639:295;;;;:::o;4939:1395::-;5056:37;5089:3;5056:37;:::i;:::-;5158:18;5150:6;5147:30;5144:56;;;5180:18;;:::i;:::-;5144:56;5224:38;5256:4;5250:11;5224:38;:::i;:::-;5309:67;5369:6;5361;5355:4;5309:67;:::i;:::-;5403:1;5427:4;5414:17;;5459:2;5451:6;5448:14;5476:1;5471:618;;;;6133:1;6150:6;6147:77;;;6199:9;6194:3;6190:19;6184:26;6175:35;;6147:77;6250:67;6310:6;6303:5;6250:67;:::i;:::-;6244:4;6237:81;6106:222;5441:887;;5471:618;5523:4;5519:9;5511:6;5507:22;5557:37;5589:4;5557:37;:::i;:::-;5616:1;5630:208;5644:7;5641:1;5638:14;5630:208;;;5723:9;5718:3;5714:19;5708:26;5700:6;5693:42;5774:1;5766:6;5762:14;5752:24;;5821:2;5810:9;5806:18;5793:31;;5667:4;5664:1;5660:12;5655:17;;5630:208;;;5866:6;5857:7;5854:19;5851:179;;;5924:9;5919:3;5915:19;5909:26;5967:48;6009:4;6001:6;5997:17;5986:9;5967:48;:::i;:::-;5959:6;5952:64;5874:156;5851:179;6076:1;6072;6064:6;6060:14;6056:22;6050:4;6043:36;5478:611;;;5441:887;;5031:1303;;;4939:1395;;:::o;6340:180::-;6388:77;6385:1;6378:88;6485:4;6482:1;6475:15;6509:4;6506:1;6499:15;166:464:0;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@ping_112": {
+ "entryPoint": 55,
+ "id": 112,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack": {
+ "entryPoint": 278,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_packed_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": {
+ "entryPoint": 312,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": {
+ "entryPoint": 228,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d": {
+ "entryPoint": 238,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nativeSrc": "0:1110:1",
+ "nodeType": "YulBlock",
+ "src": "0:1110:1",
+ "statements": [
+ {
+ "body": {
+ "nativeSrc": "121:34:1",
+ "nodeType": "YulBlock",
+ "src": "121:34:1",
+ "statements": [
+ {
+ "nativeSrc": "131:18:1",
+ "nodeType": "YulAssignment",
+ "src": "131:18:1",
+ "value": {
+ "name": "pos",
+ "nativeSrc": "146:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "146:3:1"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nativeSrc": "131:11:1",
+ "nodeType": "YulIdentifier",
+ "src": "131:11:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
+ "nativeSrc": "7:148:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nativeSrc": "93:3:1",
+ "nodeType": "YulTypedName",
+ "src": "93:3:1",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nativeSrc": "98:6:1",
+ "nodeType": "YulTypedName",
+ "src": "98:6:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nativeSrc": "109:11:1",
+ "nodeType": "YulTypedName",
+ "src": "109:11:1",
+ "type": ""
+ }
+ ],
+ "src": "7:148:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "267:47:1",
+ "nodeType": "YulBlock",
+ "src": "267:47:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "289:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "289:6:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "297:1:1",
+ "nodeType": "YulLiteral",
+ "src": "297:1:1",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "285:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "285:3:1"
+ },
+ "nativeSrc": "285:14:1",
+ "nodeType": "YulFunctionCall",
+ "src": "285:14:1"
+ },
+ {
+ "hexValue": "676f6f",
+ "kind": "string",
+ "nativeSrc": "301:5:1",
+ "nodeType": "YulLiteral",
+ "src": "301:5:1",
+ "type": "",
+ "value": "goo"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nativeSrc": "278:6:1",
+ "nodeType": "YulIdentifier",
+ "src": "278:6:1"
+ },
+ "nativeSrc": "278:29:1",
+ "nodeType": "YulFunctionCall",
+ "src": "278:29:1"
+ },
+ "nativeSrc": "278:29:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "278:29:1"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d",
+ "nativeSrc": "161:153:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nativeSrc": "259:6:1",
+ "nodeType": "YulTypedName",
+ "src": "259:6:1",
+ "type": ""
+ }
+ ],
+ "src": "161:153:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "484:236:1",
+ "nodeType": "YulBlock",
+ "src": "484:236:1",
+ "statements": [
+ {
+ "nativeSrc": "494:91:1",
+ "nodeType": "YulAssignment",
+ "src": "494:91:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "578:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "578:3:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "583:1:1",
+ "nodeType": "YulLiteral",
+ "src": "583:1:1",
+ "type": "",
+ "value": "3"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack",
+ "nativeSrc": "501:76:1",
+ "nodeType": "YulIdentifier",
+ "src": "501:76:1"
+ },
+ "nativeSrc": "501:84:1",
+ "nodeType": "YulFunctionCall",
+ "src": "501:84:1"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nativeSrc": "494:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "494:3:1"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "683:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "683:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d",
+ "nativeSrc": "594:88:1",
+ "nodeType": "YulIdentifier",
+ "src": "594:88:1"
+ },
+ "nativeSrc": "594:93:1",
+ "nodeType": "YulFunctionCall",
+ "src": "594:93:1"
+ },
+ "nativeSrc": "594:93:1",
+ "nodeType": "YulExpressionStatement",
+ "src": "594:93:1"
+ },
+ {
+ "nativeSrc": "696:18:1",
+ "nodeType": "YulAssignment",
+ "src": "696:18:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "707:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "707:3:1"
+ },
+ {
+ "kind": "number",
+ "nativeSrc": "712:1:1",
+ "nodeType": "YulLiteral",
+ "src": "712:1:1",
+ "type": "",
+ "value": "3"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nativeSrc": "703:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "703:3:1"
+ },
+ "nativeSrc": "703:11:1",
+ "nodeType": "YulFunctionCall",
+ "src": "703:11:1"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nativeSrc": "696:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "696:3:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
+ "nativeSrc": "320:400:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nativeSrc": "472:3:1",
+ "nodeType": "YulTypedName",
+ "src": "472:3:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nativeSrc": "480:3:1",
+ "nodeType": "YulTypedName",
+ "src": "480:3:1",
+ "type": ""
+ }
+ ],
+ "src": "320:400:1"
+ },
+ {
+ "body": {
+ "nativeSrc": "915:192:1",
+ "nodeType": "YulBlock",
+ "src": "915:192:1",
+ "statements": [
+ {
+ "nativeSrc": "926:155:1",
+ "nodeType": "YulAssignment",
+ "src": "926:155:1",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nativeSrc": "1077:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1077:3:1"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack",
+ "nativeSrc": "933:142:1",
+ "nodeType": "YulIdentifier",
+ "src": "933:142:1"
+ },
+ "nativeSrc": "933:148:1",
+ "nodeType": "YulFunctionCall",
+ "src": "933:148:1"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nativeSrc": "926:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "926:3:1"
+ }
+ ]
+ },
+ {
+ "nativeSrc": "1091:10:1",
+ "nodeType": "YulAssignment",
+ "src": "1091:10:1",
+ "value": {
+ "name": "pos",
+ "nativeSrc": "1098:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1098:3:1"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nativeSrc": "1091:3:1",
+ "nodeType": "YulIdentifier",
+ "src": "1091:3:1"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_packed_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
+ "nativeSrc": "726:381:1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nativeSrc": "902:3:1",
+ "nodeType": "YulTypedName",
+ "src": "902:3:1",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nativeSrc": "911:3:1",
+ "nodeType": "YulTypedName",
+ "src": "911:3:1",
+ "type": ""
+ }
+ ],
+ "src": "726:381:1"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d(memPtr) {\n\n mstore(add(memPtr, 0), \"goo\")\n\n }\n\n function abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 3)\n store_literal_in_memory_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d(pos)\n end := add(pos, 3)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n}\n",
+ "id": 1,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635c36b1861461002d575b5f80fd5b610035610037565b005b60655f806101000a81548160ff021916908360ff160217905550602b60015f600260010b81526020019081526020015f205f6101000a81548163ffffffff021916908363ffffffff1602179055507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1660036040516100b490610138565b90815260200160405180910390205f0160016101000a81548161ffff021916908360010b61ffff16021790555f80fd5b5f81905092915050565b7f676f6f00000000000000000000000000000000000000000000000000000000005f82015250565b5f6101226003836100e4565b915061012d826100ee565b600382019050919050565b5f61014282610116565b915081905091905056fea26469706673582212209afc85b0006e5ba9fd94d0aa763eec28613e731ddcd180afdcb3bb6b9a10903364736f6c63430008150033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C36B186 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x35 PUSH2 0x37 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x65 PUSH0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x2B PUSH1 0x1 PUSH0 PUSH1 0x2 PUSH1 0x1 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC16 PUSH1 0x3 PUSH1 0x40 MLOAD PUSH2 0xB4 SWAP1 PUSH2 0x138 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 SIGNEXTEND PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x676F6F0000000000000000000000000000000000000000000000000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x122 PUSH1 0x3 DUP4 PUSH2 0xE4 JUMP JUMPDEST SWAP2 POP PUSH2 0x12D DUP3 PUSH2 0xEE JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x142 DUP3 PUSH2 0x116 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 0xFC DUP6 0xB0 STOP PUSH15 0x5BA9FD94D0AA763EEC28613E731DDC 0xD1 DUP1 0xAF 0xDC 0xB3 0xBB PUSH12 0x9A10903364736F6C63430008 ISZERO STOP CALLER ",
+ "sourceMap": "166:464:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:168;;;:::i;:::-;;;497:3;493:1;;:7;;;;;;;;;;;;;;;;;;518:2;510;:5;513:1;510:5;;;;;;;;;;;;;;:10;;;;;;;;;;;;;;;;;;547:5;530:4;:11;;;;;:::i;:::-;;;;;;;;;;;;;:14;;;:22;;;;;;;;;;;;;;;;;;;563:8;;;7:148:1;109:11;146:3;131:18;;7:148;;;;:::o;161:153::-;301:5;297:1;289:6;285:14;278:29;161:153;:::o;320:400::-;480:3;501:84;583:1;578:3;501:84;:::i;:::-;494:91;;594:93;683:3;594:93;:::i;:::-;712:1;707:3;703:11;696:18;;320:400;;;:::o;726:381::-;911:3;933:148;1077:3;933:148;:::i;:::-;926:155;;1098:3;1091:10;;726:381;;;:::o"
+ },
+ "gasEstimates": {
+ "creation": {
+ "codeDepositCost": "77200",
+ "executionCost": "infinite",
+ "totalCost": "infinite"
+ },
+ "external": {
+ "ping()": "73350"
+ }
+ },
+ "legacyAssembly": {
+ ".code": [
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "80"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "CALLVALUE",
+ "source": 0
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "ISZERO",
+ "source": 0
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "REVERT",
+ "source": 0
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "tag",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 285,
+ "end": 454,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 320,
+ "end": 321,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 316,
+ "end": 317,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 316,
+ "end": 317,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "PUSH",
+ "source": 0,
+ "value": "100"
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "EXP",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FF"
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "NOT",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FF"
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "OR",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 316,
+ "end": 321,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 335,
+ "end": 336,
+ "name": "PUSH",
+ "source": 0,
+ "value": "2"
+ },
+ {
+ "begin": 331,
+ "end": 332,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 332,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "PUSH",
+ "source": 0,
+ "value": "100"
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "EXP",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FF"
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "NOT",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FF"
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "OR",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 331,
+ "end": 336,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 354,
+ "end": 356,
+ "name": "PUSH",
+ "source": 0,
+ "value": "2A"
+ },
+ {
+ "begin": 346,
+ "end": 348,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 349,
+ "end": 350,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "SIGNEXTEND",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "KECCAK256",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 351,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "PUSH",
+ "source": 0,
+ "value": "100"
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "EXP",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFFFFFF"
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "NOT",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFFFFFF"
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "OR",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 346,
+ "end": 356,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "80"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 385,
+ "end": 387,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "SIGNEXTEND",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 389,
+ "end": 393,
+ "name": "PUSH",
+ "source": 0,
+ "value": "3E8"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "SIGNEXTEND",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "2"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "6479000000000000000000000000000000000000000000000000000000000000"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 411,
+ "end": 412,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFFFFFFFFFFFFFF"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "GT",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "ISZERO",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "4"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "5"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "6"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "tag",
+ "source": 0,
+ "value": "5"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "tag",
+ "source": 0,
+ "value": "4"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "ISZERO",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "7"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "CALLDATASIZE",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "CALLDATACOPY",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "tag",
+ "source": 0,
+ "value": "7"
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 401,
+ "end": 413,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 381,
+ "end": 414,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 371,
+ "name": "PUSH",
+ "source": 0,
+ "value": "3"
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "8"
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "9"
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "tag",
+ "source": 0,
+ "value": "8"
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "SUB",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 378,
+ "name": "KECCAK256",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "100"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "EXP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FF"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "NOT",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SIGNEXTEND",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FF"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "OR",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "100"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "EXP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFF"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "NOT",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SIGNEXTEND",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFF"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "OR",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "10"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "11"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "tag",
+ "source": 0,
+ "value": "10"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "60"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "2"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "12"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP3",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "13"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "tag",
+ "source": 0,
+ "value": "12"
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 367,
+ "end": 414,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 444,
+ "end": 447,
+ "name": "PUSH",
+ "source": 0,
+ "value": "64"
+ },
+ {
+ "begin": 424,
+ "end": 428,
+ "name": "PUSH",
+ "source": 0,
+ "value": "3"
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "14"
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "9"
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "tag",
+ "source": 0,
+ "value": "14"
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "SUB",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 435,
+ "name": "KECCAK256",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 438,
+ "name": "PUSH",
+ "source": 0,
+ "value": "2"
+ },
+ {
+ "begin": 424,
+ "end": 438,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 439,
+ "end": 440,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "LT",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "15"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "16"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "17"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "tag",
+ "source": 0,
+ "value": "16"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "tag",
+ "source": 0,
+ "value": "15"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "KECCAK256",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 441,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 447,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 447,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 447,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 424,
+ "end": 447,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "19"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "13"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "KECCAK256",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ISZERO",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "21"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "GT",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ISZERO",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "22"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "21"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "22"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "23"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "24"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "23"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "24"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "25"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP3",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "GT",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ISZERO",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "26"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "25"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "26"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 7,
+ "end": 187,
+ "name": "tag",
+ "source": 1,
+ "value": "6"
+ },
+ {
+ "begin": 7,
+ "end": 187,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 55,
+ "end": 132,
+ "name": "PUSH",
+ "source": 1,
+ "value": "4E487B7100000000000000000000000000000000000000000000000000000000"
+ },
+ {
+ "begin": 52,
+ "end": 53,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 45,
+ "end": 133,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 152,
+ "end": 156,
+ "name": "PUSH",
+ "source": 1,
+ "value": "41"
+ },
+ {
+ "begin": 149,
+ "end": 150,
+ "name": "PUSH",
+ "source": 1,
+ "value": "4"
+ },
+ {
+ "begin": 142,
+ "end": 157,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 176,
+ "end": 180,
+ "name": "PUSH",
+ "source": 1,
+ "value": "24"
+ },
+ {
+ "begin": 173,
+ "end": 174,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 181,
+ "name": "REVERT",
+ "source": 1
+ },
+ {
+ "begin": 193,
+ "end": 341,
+ "name": "tag",
+ "source": 1,
+ "value": "27"
+ },
+ {
+ "begin": 193,
+ "end": 341,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 295,
+ "end": 306,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 332,
+ "end": 335,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 317,
+ "end": 335,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 317,
+ "end": 335,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 193,
+ "end": 341,
+ "name": "SWAP3",
+ "source": 1
+ },
+ {
+ "begin": 193,
+ "end": 341,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 193,
+ "end": 341,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 193,
+ "end": 341,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 193,
+ "end": 341,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 347,
+ "end": 500,
+ "name": "tag",
+ "source": 1,
+ "value": "28"
+ },
+ {
+ "begin": 347,
+ "end": 500,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 487,
+ "end": 492,
+ "name": "PUSH",
+ "source": 1,
+ "value": "676F6F0000000000000000000000000000000000000000000000000000000000"
+ },
+ {
+ "begin": 483,
+ "end": 484,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 475,
+ "end": 481,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 471,
+ "end": 485,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 464,
+ "end": 493,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 347,
+ "end": 500,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 347,
+ "end": 500,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 506,
+ "end": 906,
+ "name": "tag",
+ "source": 1,
+ "value": "29"
+ },
+ {
+ "begin": 506,
+ "end": 906,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 666,
+ "end": 669,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 687,
+ "end": 771,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "54"
+ },
+ {
+ "begin": 769,
+ "end": 770,
+ "name": "PUSH",
+ "source": 1,
+ "value": "3"
+ },
+ {
+ "begin": 764,
+ "end": 767,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 687,
+ "end": 771,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "27"
+ },
+ {
+ "begin": 687,
+ "end": 771,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 687,
+ "end": 771,
+ "name": "tag",
+ "source": 1,
+ "value": "54"
+ },
+ {
+ "begin": 687,
+ "end": 771,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 680,
+ "end": 771,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 680,
+ "end": 771,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 780,
+ "end": 873,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "55"
+ },
+ {
+ "begin": 869,
+ "end": 872,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 780,
+ "end": 873,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "28"
+ },
+ {
+ "begin": 780,
+ "end": 873,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 780,
+ "end": 873,
+ "name": "tag",
+ "source": 1,
+ "value": "55"
+ },
+ {
+ "begin": 780,
+ "end": 873,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 898,
+ "end": 899,
+ "name": "PUSH",
+ "source": 1,
+ "value": "3"
+ },
+ {
+ "begin": 893,
+ "end": 896,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 889,
+ "end": 900,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 882,
+ "end": 900,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 882,
+ "end": 900,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 506,
+ "end": 906,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 506,
+ "end": 906,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 506,
+ "end": 906,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 506,
+ "end": 906,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 912,
+ "end": 1293,
+ "name": "tag",
+ "source": 1,
+ "value": "9"
+ },
+ {
+ "begin": 912,
+ "end": 1293,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1097,
+ "end": 1100,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 1119,
+ "end": 1267,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "57"
+ },
+ {
+ "begin": 1263,
+ "end": 1266,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 1119,
+ "end": 1267,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "29"
+ },
+ {
+ "begin": 1119,
+ "end": 1267,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 1119,
+ "end": 1267,
+ "name": "tag",
+ "source": 1,
+ "value": "57"
+ },
+ {
+ "begin": 1119,
+ "end": 1267,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1112,
+ "end": 1267,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 1112,
+ "end": 1267,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1284,
+ "end": 1287,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 1277,
+ "end": 1287,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 1277,
+ "end": 1287,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 912,
+ "end": 1293,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 912,
+ "end": 1293,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 912,
+ "end": 1293,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 912,
+ "end": 1293,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 1299,
+ "end": 1398,
+ "name": "tag",
+ "source": 1,
+ "value": "30"
+ },
+ {
+ "begin": 1299,
+ "end": 1398,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1351,
+ "end": 1357,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 1385,
+ "end": 1390,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 1379,
+ "end": 1391,
+ "name": "MLOAD",
+ "source": 1
+ },
+ {
+ "begin": 1369,
+ "end": 1391,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 1369,
+ "end": 1391,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1299,
+ "end": 1398,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 1299,
+ "end": 1398,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 1299,
+ "end": 1398,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1299,
+ "end": 1398,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 1404,
+ "end": 1584,
+ "name": "tag",
+ "source": 1,
+ "value": "31"
+ },
+ {
+ "begin": 1404,
+ "end": 1584,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1452,
+ "end": 1529,
+ "name": "PUSH",
+ "source": 1,
+ "value": "4E487B7100000000000000000000000000000000000000000000000000000000"
+ },
+ {
+ "begin": 1449,
+ "end": 1450,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 1442,
+ "end": 1530,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 1549,
+ "end": 1553,
+ "name": "PUSH",
+ "source": 1,
+ "value": "22"
+ },
+ {
+ "begin": 1546,
+ "end": 1547,
+ "name": "PUSH",
+ "source": 1,
+ "value": "4"
+ },
+ {
+ "begin": 1539,
+ "end": 1554,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 1573,
+ "end": 1577,
+ "name": "PUSH",
+ "source": 1,
+ "value": "24"
+ },
+ {
+ "begin": 1570,
+ "end": 1571,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 1563,
+ "end": 1578,
+ "name": "REVERT",
+ "source": 1
+ },
+ {
+ "begin": 1590,
+ "end": 1910,
+ "name": "tag",
+ "source": 1,
+ "value": "32"
+ },
+ {
+ "begin": 1590,
+ "end": 1910,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1634,
+ "end": 1640,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 1671,
+ "end": 1672,
+ "name": "PUSH",
+ "source": 1,
+ "value": "2"
+ },
+ {
+ "begin": 1665,
+ "end": 1669,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 1661,
+ "end": 1673,
+ "name": "DIV",
+ "source": 1
+ },
+ {
+ "begin": 1651,
+ "end": 1673,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 1651,
+ "end": 1673,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1718,
+ "end": 1719,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1"
+ },
+ {
+ "begin": 1712,
+ "end": 1716,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 1708,
+ "end": 1720,
+ "name": "AND",
+ "source": 1
+ },
+ {
+ "begin": 1739,
+ "end": 1757,
+ "name": "DUP1",
+ "source": 1
+ },
+ {
+ "begin": 1729,
+ "end": 1810,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "61"
+ },
+ {
+ "begin": 1729,
+ "end": 1810,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 1795,
+ "end": 1799,
+ "name": "PUSH",
+ "source": 1,
+ "value": "7F"
+ },
+ {
+ "begin": 1787,
+ "end": 1793,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 1783,
+ "end": 1800,
+ "name": "AND",
+ "source": 1
+ },
+ {
+ "begin": 1773,
+ "end": 1800,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 1773,
+ "end": 1800,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1729,
+ "end": 1810,
+ "name": "tag",
+ "source": 1,
+ "value": "61"
+ },
+ {
+ "begin": 1729,
+ "end": 1810,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1857,
+ "end": 1859,
+ "name": "PUSH",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 1849,
+ "end": 1855,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 1846,
+ "end": 1860,
+ "name": "LT",
+ "source": 1
+ },
+ {
+ "begin": 1826,
+ "end": 1844,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 1823,
+ "end": 1861,
+ "name": "SUB",
+ "source": 1
+ },
+ {
+ "begin": 1820,
+ "end": 1904,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "62"
+ },
+ {
+ "begin": 1820,
+ "end": 1904,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 1876,
+ "end": 1894,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "63"
+ },
+ {
+ "begin": 1876,
+ "end": 1894,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "31"
+ },
+ {
+ "begin": 1876,
+ "end": 1894,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 1876,
+ "end": 1894,
+ "name": "tag",
+ "source": 1,
+ "value": "63"
+ },
+ {
+ "begin": 1876,
+ "end": 1894,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1820,
+ "end": 1904,
+ "name": "tag",
+ "source": 1,
+ "value": "62"
+ },
+ {
+ "begin": 1820,
+ "end": 1904,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1641,
+ "end": 1910,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1590,
+ "end": 1910,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 1590,
+ "end": 1910,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 1590,
+ "end": 1910,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1590,
+ "end": 1910,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 1916,
+ "end": 2057,
+ "name": "tag",
+ "source": 1,
+ "value": "33"
+ },
+ {
+ "begin": 1916,
+ "end": 2057,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 1965,
+ "end": 1969,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 1988,
+ "end": 1991,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 1980,
+ "end": 1991,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 1980,
+ "end": 1991,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2011,
+ "end": 2014,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 2008,
+ "end": 2009,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 2001,
+ "end": 2015,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 2045,
+ "end": 2049,
+ "name": "PUSH",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 2042,
+ "end": 2043,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 2032,
+ "end": 2050,
+ "name": "KECCAK256",
+ "source": 1
+ },
+ {
+ "begin": 2024,
+ "end": 2050,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2024,
+ "end": 2050,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1916,
+ "end": 2057,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 1916,
+ "end": 2057,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 1916,
+ "end": 2057,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1916,
+ "end": 2057,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2063,
+ "end": 2156,
+ "name": "tag",
+ "source": 1,
+ "value": "34"
+ },
+ {
+ "begin": 2063,
+ "end": 2156,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2100,
+ "end": 2106,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 2147,
+ "end": 2149,
+ "name": "PUSH",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 2142,
+ "end": 2144,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1F"
+ },
+ {
+ "begin": 2135,
+ "end": 2140,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 2131,
+ "end": 2145,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 2127,
+ "end": 2150,
+ "name": "DIV",
+ "source": 1
+ },
+ {
+ "begin": 2117,
+ "end": 2150,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2117,
+ "end": 2150,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2063,
+ "end": 2156,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 2063,
+ "end": 2156,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2063,
+ "end": 2156,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2063,
+ "end": 2156,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2162,
+ "end": 2269,
+ "name": "tag",
+ "source": 1,
+ "value": "35"
+ },
+ {
+ "begin": 2162,
+ "end": 2269,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2206,
+ "end": 2214,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 2256,
+ "end": 2261,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 2250,
+ "end": 2254,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 2246,
+ "end": 2262,
+ "name": "SHL",
+ "source": 1
+ },
+ {
+ "begin": 2225,
+ "end": 2262,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2225,
+ "end": 2262,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2162,
+ "end": 2269,
+ "name": "SWAP3",
+ "source": 1
+ },
+ {
+ "begin": 2162,
+ "end": 2269,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 2162,
+ "end": 2269,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2162,
+ "end": 2269,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2162,
+ "end": 2269,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2275,
+ "end": 2668,
+ "name": "tag",
+ "source": 1,
+ "value": "36"
+ },
+ {
+ "begin": 2275,
+ "end": 2668,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2344,
+ "end": 2350,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 2394,
+ "end": 2395,
+ "name": "PUSH",
+ "source": 1,
+ "value": "8"
+ },
+ {
+ "begin": 2382,
+ "end": 2392,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 2378,
+ "end": 2396,
+ "name": "MUL",
+ "source": 1
+ },
+ {
+ "begin": 2417,
+ "end": 2514,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "68"
+ },
+ {
+ "begin": 2447,
+ "end": 2513,
+ "name": "PUSH",
+ "source": 1,
+ "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+ },
+ {
+ "begin": 2436,
+ "end": 2445,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 2417,
+ "end": 2514,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "35"
+ },
+ {
+ "begin": 2417,
+ "end": 2514,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2417,
+ "end": 2514,
+ "name": "tag",
+ "source": 1,
+ "value": "68"
+ },
+ {
+ "begin": 2417,
+ "end": 2514,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2535,
+ "end": 2574,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "69"
+ },
+ {
+ "begin": 2565,
+ "end": 2573,
+ "name": "DUP7",
+ "source": 1
+ },
+ {
+ "begin": 2554,
+ "end": 2563,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 2535,
+ "end": 2574,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "35"
+ },
+ {
+ "begin": 2535,
+ "end": 2574,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2535,
+ "end": 2574,
+ "name": "tag",
+ "source": 1,
+ "value": "69"
+ },
+ {
+ "begin": 2535,
+ "end": 2574,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2523,
+ "end": 2574,
+ "name": "SWAP6",
+ "source": 1
+ },
+ {
+ "begin": 2523,
+ "end": 2574,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2607,
+ "end": 2611,
+ "name": "DUP1",
+ "source": 1
+ },
+ {
+ "begin": 2603,
+ "end": 2612,
+ "name": "NOT",
+ "source": 1
+ },
+ {
+ "begin": 2596,
+ "end": 2601,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 2592,
+ "end": 2613,
+ "name": "AND",
+ "source": 1
+ },
+ {
+ "begin": 2583,
+ "end": 2613,
+ "name": "SWAP4",
+ "source": 1
+ },
+ {
+ "begin": 2583,
+ "end": 2613,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2656,
+ "end": 2660,
+ "name": "DUP1",
+ "source": 1
+ },
+ {
+ "begin": 2646,
+ "end": 2654,
+ "name": "DUP7",
+ "source": 1
+ },
+ {
+ "begin": 2642,
+ "end": 2661,
+ "name": "AND",
+ "source": 1
+ },
+ {
+ "begin": 2635,
+ "end": 2640,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 2632,
+ "end": 2662,
+ "name": "OR",
+ "source": 1
+ },
+ {
+ "begin": 2622,
+ "end": 2662,
+ "name": "SWAP3",
+ "source": 1
+ },
+ {
+ "begin": 2622,
+ "end": 2662,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2351,
+ "end": 2668,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2351,
+ "end": 2668,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2275,
+ "end": 2668,
+ "name": "SWAP4",
+ "source": 1
+ },
+ {
+ "begin": 2275,
+ "end": 2668,
+ "name": "SWAP3",
+ "source": 1
+ },
+ {
+ "begin": 2275,
+ "end": 2668,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2275,
+ "end": 2668,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2275,
+ "end": 2668,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2275,
+ "end": 2668,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2674,
+ "end": 2751,
+ "name": "tag",
+ "source": 1,
+ "value": "37"
+ },
+ {
+ "begin": 2674,
+ "end": 2751,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2711,
+ "end": 2718,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 2740,
+ "end": 2745,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 2729,
+ "end": 2745,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2729,
+ "end": 2745,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2674,
+ "end": 2751,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 2674,
+ "end": 2751,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2674,
+ "end": 2751,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2674,
+ "end": 2751,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2757,
+ "end": 2817,
+ "name": "tag",
+ "source": 1,
+ "value": "38"
+ },
+ {
+ "begin": 2757,
+ "end": 2817,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2785,
+ "end": 2788,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 2806,
+ "end": 2811,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 2799,
+ "end": 2811,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2799,
+ "end": 2811,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2757,
+ "end": 2817,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 2757,
+ "end": 2817,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2757,
+ "end": 2817,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2757,
+ "end": 2817,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2823,
+ "end": 2965,
+ "name": "tag",
+ "source": 1,
+ "value": "39"
+ },
+ {
+ "begin": 2823,
+ "end": 2965,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2873,
+ "end": 2882,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 2906,
+ "end": 2959,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "73"
+ },
+ {
+ "begin": 2924,
+ "end": 2958,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "74"
+ },
+ {
+ "begin": 2933,
+ "end": 2957,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "75"
+ },
+ {
+ "begin": 2951,
+ "end": 2956,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 2933,
+ "end": 2957,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "37"
+ },
+ {
+ "begin": 2933,
+ "end": 2957,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2933,
+ "end": 2957,
+ "name": "tag",
+ "source": 1,
+ "value": "75"
+ },
+ {
+ "begin": 2933,
+ "end": 2957,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2924,
+ "end": 2958,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "38"
+ },
+ {
+ "begin": 2924,
+ "end": 2958,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2924,
+ "end": 2958,
+ "name": "tag",
+ "source": 1,
+ "value": "74"
+ },
+ {
+ "begin": 2924,
+ "end": 2958,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2906,
+ "end": 2959,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "37"
+ },
+ {
+ "begin": 2906,
+ "end": 2959,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2906,
+ "end": 2959,
+ "name": "tag",
+ "source": 1,
+ "value": "73"
+ },
+ {
+ "begin": 2906,
+ "end": 2959,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 2893,
+ "end": 2959,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2893,
+ "end": 2959,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2823,
+ "end": 2965,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 2823,
+ "end": 2965,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2823,
+ "end": 2965,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2823,
+ "end": 2965,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 2971,
+ "end": 3046,
+ "name": "tag",
+ "source": 1,
+ "value": "40"
+ },
+ {
+ "begin": 2971,
+ "end": 3046,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3014,
+ "end": 3017,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 3035,
+ "end": 3040,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 3028,
+ "end": 3040,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 3028,
+ "end": 3040,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2971,
+ "end": 3046,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 2971,
+ "end": 3046,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 2971,
+ "end": 3046,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 2971,
+ "end": 3046,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3052,
+ "end": 3321,
+ "name": "tag",
+ "source": 1,
+ "value": "41"
+ },
+ {
+ "begin": 3052,
+ "end": 3321,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3162,
+ "end": 3201,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "78"
+ },
+ {
+ "begin": 3193,
+ "end": 3200,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 3162,
+ "end": 3201,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "39"
+ },
+ {
+ "begin": 3162,
+ "end": 3201,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3162,
+ "end": 3201,
+ "name": "tag",
+ "source": 1,
+ "value": "78"
+ },
+ {
+ "begin": 3162,
+ "end": 3201,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3223,
+ "end": 3314,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "79"
+ },
+ {
+ "begin": 3272,
+ "end": 3313,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "80"
+ },
+ {
+ "begin": 3296,
+ "end": 3312,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 3272,
+ "end": 3313,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "40"
+ },
+ {
+ "begin": 3272,
+ "end": 3313,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3272,
+ "end": 3313,
+ "name": "tag",
+ "source": 1,
+ "value": "80"
+ },
+ {
+ "begin": 3272,
+ "end": 3313,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3264,
+ "end": 3270,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 3257,
+ "end": 3261,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 3251,
+ "end": 3262,
+ "name": "SLOAD",
+ "source": 1
+ },
+ {
+ "begin": 3223,
+ "end": 3314,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "36"
+ },
+ {
+ "begin": 3223,
+ "end": 3314,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3223,
+ "end": 3314,
+ "name": "tag",
+ "source": 1,
+ "value": "79"
+ },
+ {
+ "begin": 3223,
+ "end": 3314,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3217,
+ "end": 3221,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 3210,
+ "end": 3315,
+ "name": "SSTORE",
+ "source": 1
+ },
+ {
+ "begin": 3128,
+ "end": 3321,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3052,
+ "end": 3321,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3052,
+ "end": 3321,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3052,
+ "end": 3321,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3052,
+ "end": 3321,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3327,
+ "end": 3400,
+ "name": "tag",
+ "source": 1,
+ "value": "42"
+ },
+ {
+ "begin": 3327,
+ "end": 3400,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3372,
+ "end": 3375,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 3327,
+ "end": 3400,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 3327,
+ "end": 3400,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3406,
+ "end": 3595,
+ "name": "tag",
+ "source": 1,
+ "value": "43"
+ },
+ {
+ "begin": 3406,
+ "end": 3595,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3483,
+ "end": 3515,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "83"
+ },
+ {
+ "begin": 3483,
+ "end": 3515,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "42"
+ },
+ {
+ "begin": 3483,
+ "end": 3515,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3483,
+ "end": 3515,
+ "name": "tag",
+ "source": 1,
+ "value": "83"
+ },
+ {
+ "begin": 3483,
+ "end": 3515,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3524,
+ "end": 3589,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "84"
+ },
+ {
+ "begin": 3582,
+ "end": 3588,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 3574,
+ "end": 3580,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 3568,
+ "end": 3572,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 3524,
+ "end": 3589,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "41"
+ },
+ {
+ "begin": 3524,
+ "end": 3589,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3524,
+ "end": 3589,
+ "name": "tag",
+ "source": 1,
+ "value": "84"
+ },
+ {
+ "begin": 3524,
+ "end": 3589,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3459,
+ "end": 3595,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3406,
+ "end": 3595,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3406,
+ "end": 3595,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3406,
+ "end": 3595,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3601,
+ "end": 3787,
+ "name": "tag",
+ "source": 1,
+ "value": "44"
+ },
+ {
+ "begin": 3601,
+ "end": 3787,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "tag",
+ "source": 1,
+ "value": "86"
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3678,
+ "end": 3681,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 3671,
+ "end": 3676,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 3668,
+ "end": 3682,
+ "name": "LT",
+ "source": 1
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "ISZERO",
+ "source": 1
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "88"
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 3732,
+ "end": 3771,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "89"
+ },
+ {
+ "begin": 3769,
+ "end": 3770,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 3762,
+ "end": 3767,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 3732,
+ "end": 3771,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "43"
+ },
+ {
+ "begin": 3732,
+ "end": 3771,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3732,
+ "end": 3771,
+ "name": "tag",
+ "source": 1,
+ "value": "89"
+ },
+ {
+ "begin": 3732,
+ "end": 3771,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3705,
+ "end": 3706,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1"
+ },
+ {
+ "begin": 3698,
+ "end": 3703,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 3694,
+ "end": 3707,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 3685,
+ "end": 3707,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 3685,
+ "end": 3707,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "86"
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "tag",
+ "source": 1,
+ "value": "88"
+ },
+ {
+ "begin": 3661,
+ "end": 3781,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3601,
+ "end": 3787,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3601,
+ "end": 3787,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3601,
+ "end": 3787,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3793,
+ "end": 4336,
+ "name": "tag",
+ "source": 1,
+ "value": "45"
+ },
+ {
+ "begin": 3793,
+ "end": 4336,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3894,
+ "end": 3896,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1F"
+ },
+ {
+ "begin": 3889,
+ "end": 3892,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 3886,
+ "end": 3897,
+ "name": "GT",
+ "source": 1
+ },
+ {
+ "begin": 3883,
+ "end": 4329,
+ "name": "ISZERO",
+ "source": 1
+ },
+ {
+ "begin": 3883,
+ "end": 4329,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "91"
+ },
+ {
+ "begin": 3883,
+ "end": 4329,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 3928,
+ "end": 3966,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "92"
+ },
+ {
+ "begin": 3960,
+ "end": 3965,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 3928,
+ "end": 3966,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "33"
+ },
+ {
+ "begin": 3928,
+ "end": 3966,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 3928,
+ "end": 3966,
+ "name": "tag",
+ "source": 1,
+ "value": "92"
+ },
+ {
+ "begin": 3928,
+ "end": 3966,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4012,
+ "end": 4041,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "93"
+ },
+ {
+ "begin": 4030,
+ "end": 4040,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 4012,
+ "end": 4041,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "34"
+ },
+ {
+ "begin": 4012,
+ "end": 4041,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4012,
+ "end": 4041,
+ "name": "tag",
+ "source": 1,
+ "value": "93"
+ },
+ {
+ "begin": 4012,
+ "end": 4041,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4002,
+ "end": 4010,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 3998,
+ "end": 4042,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 4195,
+ "end": 4197,
+ "name": "PUSH",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 4183,
+ "end": 4193,
+ "name": "DUP6",
+ "source": 1
+ },
+ {
+ "begin": 4180,
+ "end": 4198,
+ "name": "LT",
+ "source": 1
+ },
+ {
+ "begin": 4177,
+ "end": 4226,
+ "name": "ISZERO",
+ "source": 1
+ },
+ {
+ "begin": 4177,
+ "end": 4226,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "94"
+ },
+ {
+ "begin": 4177,
+ "end": 4226,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 4216,
+ "end": 4224,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 4201,
+ "end": 4224,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 4201,
+ "end": 4224,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4177,
+ "end": 4226,
+ "name": "tag",
+ "source": 1,
+ "value": "94"
+ },
+ {
+ "begin": 4177,
+ "end": 4226,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4239,
+ "end": 4319,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "95"
+ },
+ {
+ "begin": 4295,
+ "end": 4317,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "96"
+ },
+ {
+ "begin": 4313,
+ "end": 4316,
+ "name": "DUP6",
+ "source": 1
+ },
+ {
+ "begin": 4295,
+ "end": 4317,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "34"
+ },
+ {
+ "begin": 4295,
+ "end": 4317,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4295,
+ "end": 4317,
+ "name": "tag",
+ "source": 1,
+ "value": "96"
+ },
+ {
+ "begin": 4295,
+ "end": 4317,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4285,
+ "end": 4293,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 4281,
+ "end": 4318,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 4268,
+ "end": 4279,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 4239,
+ "end": 4319,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "44"
+ },
+ {
+ "begin": 4239,
+ "end": 4319,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4239,
+ "end": 4319,
+ "name": "tag",
+ "source": 1,
+ "value": "95"
+ },
+ {
+ "begin": 4239,
+ "end": 4319,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3898,
+ "end": 4329,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3898,
+ "end": 4329,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3883,
+ "end": 4329,
+ "name": "tag",
+ "source": 1,
+ "value": "91"
+ },
+ {
+ "begin": 3883,
+ "end": 4329,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 3793,
+ "end": 4336,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3793,
+ "end": 4336,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3793,
+ "end": 4336,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 3793,
+ "end": 4336,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4342,
+ "end": 4459,
+ "name": "tag",
+ "source": 1,
+ "value": "46"
+ },
+ {
+ "begin": 4342,
+ "end": 4459,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4396,
+ "end": 4404,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 4446,
+ "end": 4451,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 4440,
+ "end": 4444,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 4436,
+ "end": 4452,
+ "name": "SHR",
+ "source": 1
+ },
+ {
+ "begin": 4415,
+ "end": 4452,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 4415,
+ "end": 4452,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4342,
+ "end": 4459,
+ "name": "SWAP3",
+ "source": 1
+ },
+ {
+ "begin": 4342,
+ "end": 4459,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 4342,
+ "end": 4459,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4342,
+ "end": 4459,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4342,
+ "end": 4459,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4465,
+ "end": 4634,
+ "name": "tag",
+ "source": 1,
+ "value": "47"
+ },
+ {
+ "begin": 4465,
+ "end": 4634,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4509,
+ "end": 4515,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 4542,
+ "end": 4593,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "99"
+ },
+ {
+ "begin": 4590,
+ "end": 4591,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 4586,
+ "end": 4592,
+ "name": "NOT",
+ "source": 1
+ },
+ {
+ "begin": 4578,
+ "end": 4583,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 4575,
+ "end": 4576,
+ "name": "PUSH",
+ "source": 1,
+ "value": "8"
+ },
+ {
+ "begin": 4571,
+ "end": 4584,
+ "name": "MUL",
+ "source": 1
+ },
+ {
+ "begin": 4542,
+ "end": 4593,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "46"
+ },
+ {
+ "begin": 4542,
+ "end": 4593,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4542,
+ "end": 4593,
+ "name": "tag",
+ "source": 1,
+ "value": "99"
+ },
+ {
+ "begin": 4542,
+ "end": 4593,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4538,
+ "end": 4594,
+ "name": "NOT",
+ "source": 1
+ },
+ {
+ "begin": 4623,
+ "end": 4627,
+ "name": "DUP1",
+ "source": 1
+ },
+ {
+ "begin": 4617,
+ "end": 4621,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 4613,
+ "end": 4628,
+ "name": "AND",
+ "source": 1
+ },
+ {
+ "begin": 4603,
+ "end": 4628,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 4603,
+ "end": 4628,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4516,
+ "end": 4634,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4465,
+ "end": 4634,
+ "name": "SWAP3",
+ "source": 1
+ },
+ {
+ "begin": 4465,
+ "end": 4634,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 4465,
+ "end": 4634,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4465,
+ "end": 4634,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4465,
+ "end": 4634,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4639,
+ "end": 4934,
+ "name": "tag",
+ "source": 1,
+ "value": "48"
+ },
+ {
+ "begin": 4639,
+ "end": 4934,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4715,
+ "end": 4719,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 4861,
+ "end": 4890,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "101"
+ },
+ {
+ "begin": 4886,
+ "end": 4889,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 4880,
+ "end": 4884,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 4861,
+ "end": 4890,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "47"
+ },
+ {
+ "begin": 4861,
+ "end": 4890,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4861,
+ "end": 4890,
+ "name": "tag",
+ "source": 1,
+ "value": "101"
+ },
+ {
+ "begin": 4861,
+ "end": 4890,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 4853,
+ "end": 4890,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 4853,
+ "end": 4890,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4923,
+ "end": 4926,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 4920,
+ "end": 4921,
+ "name": "PUSH",
+ "source": 1,
+ "value": "2"
+ },
+ {
+ "begin": 4916,
+ "end": 4927,
+ "name": "MUL",
+ "source": 1
+ },
+ {
+ "begin": 4910,
+ "end": 4914,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 4907,
+ "end": 4928,
+ "name": "OR",
+ "source": 1
+ },
+ {
+ "begin": 4899,
+ "end": 4928,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 4899,
+ "end": 4928,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4639,
+ "end": 4934,
+ "name": "SWAP3",
+ "source": 1
+ },
+ {
+ "begin": 4639,
+ "end": 4934,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 4639,
+ "end": 4934,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4639,
+ "end": 4934,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4639,
+ "end": 4934,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 4939,
+ "end": 6334,
+ "name": "tag",
+ "source": 1,
+ "value": "11"
+ },
+ {
+ "begin": 4939,
+ "end": 6334,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5056,
+ "end": 5093,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "103"
+ },
+ {
+ "begin": 5089,
+ "end": 5092,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 5056,
+ "end": 5093,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "30"
+ },
+ {
+ "begin": 5056,
+ "end": 5093,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 5056,
+ "end": 5093,
+ "name": "tag",
+ "source": 1,
+ "value": "103"
+ },
+ {
+ "begin": 5056,
+ "end": 5093,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5158,
+ "end": 5176,
+ "name": "PUSH",
+ "source": 1,
+ "value": "FFFFFFFFFFFFFFFF"
+ },
+ {
+ "begin": 5150,
+ "end": 5156,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 5147,
+ "end": 5177,
+ "name": "GT",
+ "source": 1
+ },
+ {
+ "begin": 5144,
+ "end": 5200,
+ "name": "ISZERO",
+ "source": 1
+ },
+ {
+ "begin": 5144,
+ "end": 5200,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "104"
+ },
+ {
+ "begin": 5144,
+ "end": 5200,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 5180,
+ "end": 5198,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "105"
+ },
+ {
+ "begin": 5180,
+ "end": 5198,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "6"
+ },
+ {
+ "begin": 5180,
+ "end": 5198,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 5180,
+ "end": 5198,
+ "name": "tag",
+ "source": 1,
+ "value": "105"
+ },
+ {
+ "begin": 5180,
+ "end": 5198,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5144,
+ "end": 5200,
+ "name": "tag",
+ "source": 1,
+ "value": "104"
+ },
+ {
+ "begin": 5144,
+ "end": 5200,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5224,
+ "end": 5262,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "106"
+ },
+ {
+ "begin": 5256,
+ "end": 5260,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 5250,
+ "end": 5261,
+ "name": "SLOAD",
+ "source": 1
+ },
+ {
+ "begin": 5224,
+ "end": 5262,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "32"
+ },
+ {
+ "begin": 5224,
+ "end": 5262,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 5224,
+ "end": 5262,
+ "name": "tag",
+ "source": 1,
+ "value": "106"
+ },
+ {
+ "begin": 5224,
+ "end": 5262,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5309,
+ "end": 5376,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "107"
+ },
+ {
+ "begin": 5369,
+ "end": 5375,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 5361,
+ "end": 5367,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 5355,
+ "end": 5359,
+ "name": "DUP6",
+ "source": 1
+ },
+ {
+ "begin": 5309,
+ "end": 5376,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "45"
+ },
+ {
+ "begin": 5309,
+ "end": 5376,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 5309,
+ "end": 5376,
+ "name": "tag",
+ "source": 1,
+ "value": "107"
+ },
+ {
+ "begin": 5309,
+ "end": 5376,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5403,
+ "end": 5404,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 5427,
+ "end": 5431,
+ "name": "PUSH",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 5414,
+ "end": 5431,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 5414,
+ "end": 5431,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5459,
+ "end": 5461,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1F"
+ },
+ {
+ "begin": 5451,
+ "end": 5457,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 5448,
+ "end": 5462,
+ "name": "GT",
+ "source": 1
+ },
+ {
+ "begin": 5476,
+ "end": 5477,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1"
+ },
+ {
+ "begin": 5471,
+ "end": 6089,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 5471,
+ "end": 6089,
+ "name": "EQ",
+ "source": 1
+ },
+ {
+ "begin": 5471,
+ "end": 6089,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "109"
+ },
+ {
+ "begin": 5471,
+ "end": 6089,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 6133,
+ "end": 6134,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 6150,
+ "end": 6156,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 6147,
+ "end": 6224,
+ "name": "ISZERO",
+ "source": 1
+ },
+ {
+ "begin": 6147,
+ "end": 6224,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "110"
+ },
+ {
+ "begin": 6147,
+ "end": 6224,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 6199,
+ "end": 6208,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 6194,
+ "end": 6197,
+ "name": "DUP8",
+ "source": 1
+ },
+ {
+ "begin": 6190,
+ "end": 6209,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 6184,
+ "end": 6210,
+ "name": "MLOAD",
+ "source": 1
+ },
+ {
+ "begin": 6175,
+ "end": 6210,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 6175,
+ "end": 6210,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 6147,
+ "end": 6224,
+ "name": "tag",
+ "source": 1,
+ "value": "110"
+ },
+ {
+ "begin": 6147,
+ "end": 6224,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 6250,
+ "end": 6317,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "111"
+ },
+ {
+ "begin": 6310,
+ "end": 6316,
+ "name": "DUP6",
+ "source": 1
+ },
+ {
+ "begin": 6303,
+ "end": 6308,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 6250,
+ "end": 6317,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "48"
+ },
+ {
+ "begin": 6250,
+ "end": 6317,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 6250,
+ "end": 6317,
+ "name": "tag",
+ "source": 1,
+ "value": "111"
+ },
+ {
+ "begin": 6250,
+ "end": 6317,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 6244,
+ "end": 6248,
+ "name": "DUP7",
+ "source": 1
+ },
+ {
+ "begin": 6237,
+ "end": 6318,
+ "name": "SSTORE",
+ "source": 1
+ },
+ {
+ "begin": 6106,
+ "end": 6328,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5441,
+ "end": 6328,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "108"
+ },
+ {
+ "begin": 5441,
+ "end": 6328,
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 5471,
+ "end": 6089,
+ "name": "tag",
+ "source": 1,
+ "value": "109"
+ },
+ {
+ "begin": 5471,
+ "end": 6089,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5523,
+ "end": 5527,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1F"
+ },
+ {
+ "begin": 5519,
+ "end": 5528,
+ "name": "NOT",
+ "source": 1
+ },
+ {
+ "begin": 5511,
+ "end": 5517,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 5507,
+ "end": 5529,
+ "name": "AND",
+ "source": 1
+ },
+ {
+ "begin": 5557,
+ "end": 5594,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "112"
+ },
+ {
+ "begin": 5589,
+ "end": 5593,
+ "name": "DUP7",
+ "source": 1
+ },
+ {
+ "begin": 5557,
+ "end": 5594,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "33"
+ },
+ {
+ "begin": 5557,
+ "end": 5594,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 5557,
+ "end": 5594,
+ "name": "tag",
+ "source": 1,
+ "value": "112"
+ },
+ {
+ "begin": 5557,
+ "end": 5594,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5616,
+ "end": 5617,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "tag",
+ "source": 1,
+ "value": "113"
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5644,
+ "end": 5651,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 5641,
+ "end": 5642,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 5638,
+ "end": 5652,
+ "name": "LT",
+ "source": 1
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "ISZERO",
+ "source": 1
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "115"
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 5723,
+ "end": 5732,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 5718,
+ "end": 5721,
+ "name": "DUP10",
+ "source": 1
+ },
+ {
+ "begin": 5714,
+ "end": 5733,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 5708,
+ "end": 5734,
+ "name": "MLOAD",
+ "source": 1
+ },
+ {
+ "begin": 5700,
+ "end": 5706,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 5693,
+ "end": 5735,
+ "name": "SSTORE",
+ "source": 1
+ },
+ {
+ "begin": 5774,
+ "end": 5775,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1"
+ },
+ {
+ "begin": 5766,
+ "end": 5772,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 5762,
+ "end": 5776,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 5752,
+ "end": 5776,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 5752,
+ "end": 5776,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5821,
+ "end": 5823,
+ "name": "PUSH",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 5810,
+ "end": 5819,
+ "name": "DUP6",
+ "source": 1
+ },
+ {
+ "begin": 5806,
+ "end": 5824,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 5793,
+ "end": 5824,
+ "name": "SWAP5",
+ "source": 1
+ },
+ {
+ "begin": 5793,
+ "end": 5824,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5667,
+ "end": 5671,
+ "name": "PUSH",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 5664,
+ "end": 5665,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 5660,
+ "end": 5672,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 5655,
+ "end": 5672,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 5655,
+ "end": 5672,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "113"
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "tag",
+ "source": 1,
+ "value": "115"
+ },
+ {
+ "begin": 5630,
+ "end": 5838,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5866,
+ "end": 5872,
+ "name": "DUP7",
+ "source": 1
+ },
+ {
+ "begin": 5857,
+ "end": 5864,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 5854,
+ "end": 5873,
+ "name": "LT",
+ "source": 1
+ },
+ {
+ "begin": 5851,
+ "end": 6030,
+ "name": "ISZERO",
+ "source": 1
+ },
+ {
+ "begin": 5851,
+ "end": 6030,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "116"
+ },
+ {
+ "begin": 5851,
+ "end": 6030,
+ "name": "JUMPI",
+ "source": 1
+ },
+ {
+ "begin": 5924,
+ "end": 5933,
+ "name": "DUP5",
+ "source": 1
+ },
+ {
+ "begin": 5919,
+ "end": 5922,
+ "name": "DUP10",
+ "source": 1
+ },
+ {
+ "begin": 5915,
+ "end": 5934,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 5909,
+ "end": 5935,
+ "name": "MLOAD",
+ "source": 1
+ },
+ {
+ "begin": 5967,
+ "end": 6015,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "117"
+ },
+ {
+ "begin": 6009,
+ "end": 6013,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1F"
+ },
+ {
+ "begin": 6001,
+ "end": 6007,
+ "name": "DUP10",
+ "source": 1
+ },
+ {
+ "begin": 5997,
+ "end": 6014,
+ "name": "AND",
+ "source": 1
+ },
+ {
+ "begin": 5986,
+ "end": 5995,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 5967,
+ "end": 6015,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "47"
+ },
+ {
+ "begin": 5967,
+ "end": 6015,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 5967,
+ "end": 6015,
+ "name": "tag",
+ "source": 1,
+ "value": "117"
+ },
+ {
+ "begin": 5967,
+ "end": 6015,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5959,
+ "end": 5965,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 5952,
+ "end": 6016,
+ "name": "SSTORE",
+ "source": 1
+ },
+ {
+ "begin": 5874,
+ "end": 6030,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5851,
+ "end": 6030,
+ "name": "tag",
+ "source": 1,
+ "value": "116"
+ },
+ {
+ "begin": 5851,
+ "end": 6030,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 6076,
+ "end": 6077,
+ "name": "PUSH",
+ "source": 1,
+ "value": "1"
+ },
+ {
+ "begin": 6072,
+ "end": 6073,
+ "name": "PUSH",
+ "source": 1,
+ "value": "2"
+ },
+ {
+ "begin": 6064,
+ "end": 6070,
+ "name": "DUP9",
+ "source": 1
+ },
+ {
+ "begin": 6060,
+ "end": 6074,
+ "name": "MUL",
+ "source": 1
+ },
+ {
+ "begin": 6056,
+ "end": 6078,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 6050,
+ "end": 6054,
+ "name": "DUP9",
+ "source": 1
+ },
+ {
+ "begin": 6043,
+ "end": 6079,
+ "name": "SSTORE",
+ "source": 1
+ },
+ {
+ "begin": 5478,
+ "end": 6089,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5478,
+ "end": 6089,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5478,
+ "end": 6089,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5441,
+ "end": 6328,
+ "name": "tag",
+ "source": 1,
+ "value": "108"
+ },
+ {
+ "begin": 5441,
+ "end": 6328,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 5441,
+ "end": 6328,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5031,
+ "end": 6334,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5031,
+ "end": 6334,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 5031,
+ "end": 6334,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4939,
+ "end": 6334,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4939,
+ "end": 6334,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 4939,
+ "end": 6334,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 6340,
+ "end": 6520,
+ "name": "tag",
+ "source": 1,
+ "value": "17"
+ },
+ {
+ "begin": 6340,
+ "end": 6520,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 6388,
+ "end": 6465,
+ "name": "PUSH",
+ "source": 1,
+ "value": "4E487B7100000000000000000000000000000000000000000000000000000000"
+ },
+ {
+ "begin": 6385,
+ "end": 6386,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 6378,
+ "end": 6466,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 6485,
+ "end": 6489,
+ "name": "PUSH",
+ "source": 1,
+ "value": "32"
+ },
+ {
+ "begin": 6482,
+ "end": 6483,
+ "name": "PUSH",
+ "source": 1,
+ "value": "4"
+ },
+ {
+ "begin": 6475,
+ "end": 6490,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 6509,
+ "end": 6513,
+ "name": "PUSH",
+ "source": 1,
+ "value": "24"
+ },
+ {
+ "begin": 6506,
+ "end": 6507,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 6499,
+ "end": 6514,
+ "name": "REVERT",
+ "source": 1
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "19"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH #[$]",
+ "source": 0,
+ "value": "0000000000000000000000000000000000000000000000000000000000000000"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [$]",
+ "source": 0,
+ "value": "0000000000000000000000000000000000000000000000000000000000000000"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "CODECOPY",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "RETURN",
+ "source": 0
+ }
+ ],
+ ".data": {
+ "0": {
+ ".auxdata": "a26469706673582212209afc85b0006e5ba9fd94d0aa763eec28613e731ddcd180afdcb3bb6b9a10903364736f6c63430008150033",
+ ".code": [
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "80"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "CALLVALUE",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "ISZERO",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "REVERT",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "4"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "CALLDATASIZE",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "LT",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "2"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "CALLDATALOAD",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "E0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "SHR",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "5C36B186"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "EQ",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "3"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPI",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "tag",
+ "source": 0,
+ "value": "2"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 166,
+ "end": 630,
+ "name": "REVERT",
+ "source": 0
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "tag",
+ "source": 0,
+ "value": "3"
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "4"
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "5"
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "tag",
+ "source": 0,
+ "value": "4"
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "STOP",
+ "source": 0
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "tag",
+ "source": 0,
+ "value": "5"
+ },
+ {
+ "begin": 460,
+ "end": 628,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 497,
+ "end": 500,
+ "name": "PUSH",
+ "source": 0,
+ "value": "65"
+ },
+ {
+ "begin": 493,
+ "end": 494,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 493,
+ "end": 494,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "PUSH",
+ "source": 0,
+ "value": "100"
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "EXP",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FF"
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "NOT",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FF"
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "OR",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 493,
+ "end": 500,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 518,
+ "end": 520,
+ "name": "PUSH",
+ "source": 0,
+ "value": "2B"
+ },
+ {
+ "begin": 510,
+ "end": 512,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 513,
+ "end": 514,
+ "name": "PUSH",
+ "source": 0,
+ "value": "2"
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "SIGNEXTEND",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "KECCAK256",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 515,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "PUSH",
+ "source": 0,
+ "value": "100"
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "EXP",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFFFFFF"
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "NOT",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFFFFFF"
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "OR",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 510,
+ "end": 520,
+ "name": "POP",
+ "source": 0
+ },
+ {
+ "begin": 547,
+ "end": 552,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC16"
+ },
+ {
+ "begin": 530,
+ "end": 534,
+ "name": "PUSH",
+ "source": 0,
+ "value": "3"
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "7"
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "PUSH [tag]",
+ "source": 0,
+ "value": "8"
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "tag",
+ "source": 0,
+ "value": "7"
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "JUMPDEST",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "MSTORE",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "PUSH",
+ "source": 0,
+ "value": "20"
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "PUSH",
+ "source": 0,
+ "value": "40"
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "MLOAD",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "SWAP2",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "SUB",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 541,
+ "name": "KECCAK256",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 544,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 530,
+ "end": 544,
+ "name": "ADD",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 544,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "PUSH",
+ "source": 0,
+ "value": "100"
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "EXP",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "SLOAD",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "DUP2",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFF"
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "NOT",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "DUP4",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "PUSH",
+ "source": 0,
+ "value": "1"
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "SIGNEXTEND",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "PUSH",
+ "source": 0,
+ "value": "FFFF"
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "AND",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "MUL",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "OR",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "SWAP1",
+ "source": 0
+ },
+ {
+ "begin": 530,
+ "end": 552,
+ "name": "SSTORE",
+ "source": 0
+ },
+ {
+ "begin": 563,
+ "end": 571,
+ "name": "PUSH",
+ "source": 0,
+ "value": "0"
+ },
+ {
+ "begin": 563,
+ "end": 571,
+ "name": "DUP1",
+ "source": 0
+ },
+ {
+ "begin": 563,
+ "end": 571,
+ "name": "REVERT",
+ "source": 0
+ },
+ {
+ "begin": 7,
+ "end": 155,
+ "name": "tag",
+ "source": 1,
+ "value": "10"
+ },
+ {
+ "begin": 7,
+ "end": 155,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 109,
+ "end": 120,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 146,
+ "end": 149,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 131,
+ "end": 149,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 131,
+ "end": 149,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 7,
+ "end": 155,
+ "name": "SWAP3",
+ "source": 1
+ },
+ {
+ "begin": 7,
+ "end": 155,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 7,
+ "end": 155,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 7,
+ "end": 155,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 7,
+ "end": 155,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 161,
+ "end": 314,
+ "name": "tag",
+ "source": 1,
+ "value": "11"
+ },
+ {
+ "begin": 161,
+ "end": 314,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 301,
+ "end": 306,
+ "name": "PUSH",
+ "source": 1,
+ "value": "676F6F0000000000000000000000000000000000000000000000000000000000"
+ },
+ {
+ "begin": 297,
+ "end": 298,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 289,
+ "end": 295,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 285,
+ "end": 299,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 278,
+ "end": 307,
+ "name": "MSTORE",
+ "source": 1
+ },
+ {
+ "begin": 161,
+ "end": 314,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 161,
+ "end": 314,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 320,
+ "end": 720,
+ "name": "tag",
+ "source": 1,
+ "value": "12"
+ },
+ {
+ "begin": 320,
+ "end": 720,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 480,
+ "end": 483,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 501,
+ "end": 585,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "17"
+ },
+ {
+ "begin": 583,
+ "end": 584,
+ "name": "PUSH",
+ "source": 1,
+ "value": "3"
+ },
+ {
+ "begin": 578,
+ "end": 581,
+ "name": "DUP4",
+ "source": 1
+ },
+ {
+ "begin": 501,
+ "end": 585,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "10"
+ },
+ {
+ "begin": 501,
+ "end": 585,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 501,
+ "end": 585,
+ "name": "tag",
+ "source": 1,
+ "value": "17"
+ },
+ {
+ "begin": 501,
+ "end": 585,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 494,
+ "end": 585,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 494,
+ "end": 585,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 594,
+ "end": 687,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "18"
+ },
+ {
+ "begin": 683,
+ "end": 686,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 594,
+ "end": 687,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "11"
+ },
+ {
+ "begin": 594,
+ "end": 687,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 594,
+ "end": 687,
+ "name": "tag",
+ "source": 1,
+ "value": "18"
+ },
+ {
+ "begin": 594,
+ "end": 687,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 712,
+ "end": 713,
+ "name": "PUSH",
+ "source": 1,
+ "value": "3"
+ },
+ {
+ "begin": 707,
+ "end": 710,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 703,
+ "end": 714,
+ "name": "ADD",
+ "source": 1
+ },
+ {
+ "begin": 696,
+ "end": 714,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 696,
+ "end": 714,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 320,
+ "end": 720,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 320,
+ "end": 720,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 320,
+ "end": 720,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 320,
+ "end": 720,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 726,
+ "end": 1107,
+ "name": "tag",
+ "source": 1,
+ "value": "8"
+ },
+ {
+ "begin": 726,
+ "end": 1107,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 911,
+ "end": 914,
+ "name": "PUSH",
+ "source": 1,
+ "value": "0"
+ },
+ {
+ "begin": 933,
+ "end": 1081,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 1077,
+ "end": 1080,
+ "name": "DUP3",
+ "source": 1
+ },
+ {
+ "begin": 933,
+ "end": 1081,
+ "name": "PUSH [tag]",
+ "source": 1,
+ "value": "12"
+ },
+ {
+ "begin": 933,
+ "end": 1081,
+ "jumpType": "[in]",
+ "name": "JUMP",
+ "source": 1
+ },
+ {
+ "begin": 933,
+ "end": 1081,
+ "name": "tag",
+ "source": 1,
+ "value": "20"
+ },
+ {
+ "begin": 933,
+ "end": 1081,
+ "name": "JUMPDEST",
+ "source": 1
+ },
+ {
+ "begin": 926,
+ "end": 1081,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 926,
+ "end": 1081,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 1098,
+ "end": 1101,
+ "name": "DUP2",
+ "source": 1
+ },
+ {
+ "begin": 1091,
+ "end": 1101,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 1091,
+ "end": 1101,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 726,
+ "end": 1107,
+ "name": "SWAP2",
+ "source": 1
+ },
+ {
+ "begin": 726,
+ "end": 1107,
+ "name": "SWAP1",
+ "source": 1
+ },
+ {
+ "begin": 726,
+ "end": 1107,
+ "name": "POP",
+ "source": 1
+ },
+ {
+ "begin": 726,
+ "end": 1107,
+ "jumpType": "[out]",
+ "name": "JUMP",
+ "source": 1
+ }
+ ]
+ }
+ },
+ "sourceList": [
+ "contracts/layout_maps.sol",
+ "#utility.yul"
+ ]
+ },
+ "methodIdentifiers": {
+ "ping()": "5c36b186"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ping\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/layout_maps.sol\":\"Layout_map\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/layout_maps.sol\":{\"keccak256\":\"0x18ea27b67c1cd6d48e5afd3de906461c7ebebeeb00f5edd764c2d1a62030f609\",\"urls\":[\"bzz-raw://b4ad0a9a83022a71a21fd1015c6f8f2a0ccca3641fe420a97c9b5b6d1f12f060\",\"dweb:/ipfs/QmTy5gWa926Eg7zbVcvZvoVb2Zrco97WQRRZrJRdWSrq2J\"]}},\"version\":1}",
+ "storageLayout": {
+ "storage": [
+ {
+ "astId": 20,
+ "contract": "contracts/layout_maps.sol:Layout_map",
+ "label": "a",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_uint8"
+ },
+ {
+ "astId": 24,
+ "contract": "contracts/layout_maps.sol:Layout_map",
+ "label": "m1",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_mapping(t_int16,t_uint32)"
+ },
+ {
+ "astId": 26,
+ "contract": "contracts/layout_maps.sol:Layout_map",
+ "label": "b",
+ "offset": 0,
+ "slot": "2",
+ "type": "t_uint8"
+ },
+ {
+ "astId": 31,
+ "contract": "contracts/layout_maps.sol:Layout_map",
+ "label": "fMap",
+ "offset": 0,
+ "slot": "3",
+ "type": "t_mapping(t_string_memory_ptr,t_struct(Foo)11_storage)"
+ }
+ ],
+ "types": {
+ "t_array(t_int256)dyn_storage": {
+ "base": "t_int256",
+ "encoding": "dynamic_array",
+ "label": "int256[]",
+ "numberOfBytes": "32"
+ },
+ "t_int16": {
+ "encoding": "inplace",
+ "label": "int16",
+ "numberOfBytes": "2"
+ },
+ "t_int256": {
+ "encoding": "inplace",
+ "label": "int256",
+ "numberOfBytes": "32"
+ },
+ "t_int8": {
+ "encoding": "inplace",
+ "label": "int8",
+ "numberOfBytes": "1"
+ },
+ "t_mapping(t_int16,t_uint32)": {
+ "encoding": "mapping",
+ "key": "t_int16",
+ "label": "mapping(int16 => uint32)",
+ "numberOfBytes": "32",
+ "value": "t_uint32"
+ },
+ "t_mapping(t_string_memory_ptr,t_struct(Foo)11_storage)": {
+ "encoding": "mapping",
+ "key": "t_string_memory_ptr",
+ "label": "mapping(string => struct Foo)",
+ "numberOfBytes": "32",
+ "value": "t_struct(Foo)11_storage"
+ },
+ "t_string_memory_ptr": {
+ "encoding": "bytes",
+ "label": "string",
+ "numberOfBytes": "32"
+ },
+ "t_string_storage": {
+ "encoding": "bytes",
+ "label": "string",
+ "numberOfBytes": "32"
+ },
+ "t_struct(Foo)11_storage": {
+ "encoding": "inplace",
+ "label": "struct Foo",
+ "members": [
+ {
+ "astId": 3,
+ "contract": "contracts/layout_maps.sol:Layout_map",
+ "label": "fa",
+ "offset": 0,
+ "slot": "0",
+ "type": "t_int8"
+ },
+ {
+ "astId": 5,
+ "contract": "contracts/layout_maps.sol:Layout_map",
+ "label": "fb",
+ "offset": 1,
+ "slot": "0",
+ "type": "t_int16"
+ },
+ {
+ "astId": 7,
+ "contract": "contracts/layout_maps.sol:Layout_map",
+ "label": "fc",
+ "offset": 0,
+ "slot": "1",
+ "type": "t_string_storage"
+ },
+ {
+ "astId": 10,
+ "contract": "contracts/layout_maps.sol:Layout_map",
+ "label": "fd",
+ "offset": 0,
+ "slot": "2",
+ "type": "t_array(t_int256)dyn_storage"
+ }
+ ],
+ "numberOfBytes": "96"
+ },
+ "t_uint32": {
+ "encoding": "inplace",
+ "label": "uint32",
+ "numberOfBytes": "4"
+ },
+ "t_uint8": {
+ "encoding": "inplace",
+ "label": "uint8",
+ "numberOfBytes": "1"
+ }
+ }
+ },
+ "userdoc": {
+ "kind": "user",
+ "methods": {},
+ "version": 1
+ }
+ }
+ }
+ },
+ "errors": [
+ {
+ "component": "general",
+ "errorCode": "1878",
+ "formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> contracts/layout_maps.sol\n\n",
+ "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": -1,
+ "file": "contracts/layout_maps.sol",
+ "start": -1
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "2462",
+ "formattedMessage": "Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> contracts/layout_maps.sol:21:5:\n |\n21 | constructor() public {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n",
+ "message": "Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 454,
+ "file": "contracts/layout_maps.sol",
+ "start": 285
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "5740",
+ "formattedMessage": "Warning: Unreachable code.\n --> contracts/layout_maps.sol:35:9:\n |\n35 | m1[1] = 10;\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n",
+ "message": "Unreachable code.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 620,
+ "file": "contracts/layout_maps.sol",
+ "start": 581
+ },
+ "type": "Warning"
+ }
+ ],
+ "sources": {
+ "contracts/layout_maps.sol": {
+ "ast": {
+ "absolutePath": "contracts/layout_maps.sol",
+ "exportedSymbols": {
+ "Foo": [
+ 11
+ ],
+ "Layout_map": [
+ 113
+ ],
+ "MapStruct": [
+ 18
+ ]
+ },
+ "id": 114,
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1,
+ "literals": [
+ "solidity",
+ "0.8",
+ ".21"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "0:23:0"
+ },
+ {
+ "canonicalName": "Foo",
+ "id": 11,
+ "members": [
+ {
+ "constant": false,
+ "id": 3,
+ "mutability": "mutable",
+ "name": "fa",
+ "nameLocation": "47:2:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "42:7:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ },
+ "typeName": {
+ "id": 2,
+ "name": "int8",
+ "nodeType": "ElementaryTypeName",
+ "src": "42:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 5,
+ "mutability": "mutable",
+ "name": "fb",
+ "nameLocation": "61:2:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "55:8:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ },
+ "typeName": {
+ "id": 4,
+ "name": "int16",
+ "nodeType": "ElementaryTypeName",
+ "src": "55:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7,
+ "mutability": "mutable",
+ "name": "fc",
+ "nameLocation": "76:2:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "69:9:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 6,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "69:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 10,
+ "mutability": "mutable",
+ "name": "fd",
+ "nameLocation": "90:2:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "84:8:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
+ "typeString": "int256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 8,
+ "name": "int",
+ "nodeType": "ElementaryTypeName",
+ "src": "84:3:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 9,
+ "nodeType": "ArrayTypeName",
+ "src": "84:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
+ "typeString": "int256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "Foo",
+ "nameLocation": "32:3:0",
+ "nodeType": "StructDefinition",
+ "scope": 114,
+ "src": "25:70:0",
+ "visibility": "public"
+ },
+ {
+ "canonicalName": "MapStruct",
+ "id": 18,
+ "members": [
+ {
+ "constant": false,
+ "id": 13,
+ "mutability": "mutable",
+ "name": "msA",
+ "nameLocation": "125:3:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 18,
+ "src": "120:8:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ },
+ "typeName": {
+ "id": 12,
+ "name": "int8",
+ "nodeType": "ElementaryTypeName",
+ "src": "120:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 17,
+ "mutability": "mutable",
+ "name": "b1",
+ "nameLocation": "159:2:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 18,
+ "src": "134:27:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "typeName": {
+ "id": 16,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 14,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "142:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "134:24:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 15,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "153:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "name": "MapStruct",
+ "nameLocation": "104:9:0",
+ "nodeType": "StructDefinition",
+ "scope": 114,
+ "src": "97:67:0",
+ "visibility": "public"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Layout_map",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 113,
+ "linearizedBaseContracts": [
+ 113
+ ],
+ "name": "Layout_map",
+ "nameLocation": "175:10:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "id": 20,
+ "mutability": "mutable",
+ "name": "a",
+ "nameLocation": "198:1:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 113,
+ "src": "192:7:0",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 19,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "192:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 24,
+ "mutability": "mutable",
+ "name": "m1",
+ "nameLocation": "230:2:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 113,
+ "src": "205:27:0",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_int16_$_t_uint32_$",
+ "typeString": "mapping(int16 => uint32)"
+ },
+ "typeName": {
+ "id": 23,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 21,
+ "name": "int16",
+ "nodeType": "ElementaryTypeName",
+ "src": "213:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "205:24:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_int16_$_t_uint32_$",
+ "typeString": "mapping(int16 => uint32)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 22,
+ "name": "uint32",
+ "nodeType": "ElementaryTypeName",
+ "src": "222:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 26,
+ "mutability": "mutable",
+ "name": "b",
+ "nameLocation": "244:1:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 113,
+ "src": "238:7:0",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 25,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "238:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 31,
+ "mutability": "mutable",
+ "name": "fMap",
+ "nameLocation": "274:4:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 113,
+ "src": "251:27:0",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Foo_$11_storage_$",
+ "typeString": "mapping(string => struct Foo)"
+ },
+ "typeName": {
+ "id": 30,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 27,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "259:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "251:22:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Foo_$11_storage_$",
+ "typeString": "mapping(string => struct Foo)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 29,
+ "nodeType": "UserDefinedTypeName",
+ "pathNode": {
+ "id": 28,
+ "name": "Foo",
+ "nameLocations": [
+ "269:3:0"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 11,
+ "src": "269:3:0"
+ },
+ "referencedDeclaration": 11,
+ "src": "269:3:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Foo_$11_storage_ptr",
+ "typeString": "struct Foo"
+ }
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 73,
+ "nodeType": "Block",
+ "src": "306:148:0",
+ "statements": [
+ {
+ "expression": {
+ "id": 36,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 34,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 20,
+ "src": "316:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "31",
+ "id": 35,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "320:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "316:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "id": 37,
+ "nodeType": "ExpressionStatement",
+ "src": "316:5:0"
+ },
+ {
+ "expression": {
+ "id": 40,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 38,
+ "name": "b",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 26,
+ "src": "331:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "32",
+ "id": 39,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "335:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "331:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "id": 41,
+ "nodeType": "ExpressionStatement",
+ "src": "331:5:0"
+ },
+ {
+ "expression": {
+ "id": 46,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 42,
+ "name": "m1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 24,
+ "src": "346:2:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_int16_$_t_uint32_$",
+ "typeString": "mapping(int16 => uint32)"
+ }
+ },
+ "id": 44,
+ "indexExpression": {
+ "hexValue": "31",
+ "id": 43,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "349:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "346:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "3432",
+ "id": 45,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "354:2:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_42_by_1",
+ "typeString": "int_const 42"
+ },
+ "value": "42"
+ },
+ "src": "346:10:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 47,
+ "nodeType": "ExpressionStatement",
+ "src": "346:10:0"
+ },
+ {
+ "expression": {
+ "id": 62,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 48,
+ "name": "fMap",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 31,
+ "src": "367:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Foo_$11_storage_$",
+ "typeString": "mapping(string memory => struct Foo storage ref)"
+ }
+ },
+ "id": 50,
+ "indexExpression": {
+ "hexValue": "676f6f",
+ "id": 49,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "372:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d",
+ "typeString": "literal_string \"goo\""
+ },
+ "value": "goo"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "367:11:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Foo_$11_storage",
+ "typeString": "struct Foo storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 53,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "-",
+ "prefix": true,
+ "src": "385:2:0",
+ "subExpression": {
+ "hexValue": "31",
+ "id": 52,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "386:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_minus_1_by_1",
+ "typeString": "int_const -1"
+ }
+ },
+ {
+ "hexValue": "31303030",
+ "id": 54,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "389:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ },
+ "value": "1000"
+ },
+ {
+ "hexValue": "6479",
+ "id": 55,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "395:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_77023b3216cbbeabffea63b85427856a5b868fd17100f725609b0a5945621cc0",
+ "typeString": "literal_string \"dy\""
+ },
+ "value": "dy"
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "31",
+ "id": 59,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "411:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ }
+ ],
+ "id": 58,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "401:9:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int256_$dyn_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (int256[] memory)"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 56,
+ "name": "int",
+ "nodeType": "ElementaryTypeName",
+ "src": "405:3:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 57,
+ "nodeType": "ArrayTypeName",
+ "src": "405:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
+ "typeString": "int256[]"
+ }
+ }
+ },
+ "id": 60,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "401:12:0",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
+ "typeString": "int256[] memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_minus_1_by_1",
+ "typeString": "int_const -1"
+ },
+ {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_77023b3216cbbeabffea63b85427856a5b868fd17100f725609b0a5945621cc0",
+ "typeString": "literal_string \"dy\""
+ },
+ {
+ "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
+ "typeString": "int256[] memory"
+ }
+ ],
+ "id": 51,
+ "name": "Foo",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11,
+ "src": "381:3:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_struct$_Foo_$11_storage_ptr_$",
+ "typeString": "type(struct Foo storage pointer)"
+ }
+ },
+ "id": 61,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "structConstructorCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "381:33:0",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Foo_$11_memory_ptr",
+ "typeString": "struct Foo memory"
+ }
+ },
+ "src": "367:47:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Foo_$11_storage",
+ "typeString": "struct Foo storage ref"
+ }
+ },
+ "id": 63,
+ "nodeType": "ExpressionStatement",
+ "src": "367:47:0"
+ },
+ {
+ "expression": {
+ "id": 71,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "expression": {
+ "baseExpression": {
+ "id": 64,
+ "name": "fMap",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 31,
+ "src": "424:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Foo_$11_storage_$",
+ "typeString": "mapping(string memory => struct Foo storage ref)"
+ }
+ },
+ "id": 66,
+ "indexExpression": {
+ "hexValue": "676f6f",
+ "id": 65,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "429:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d",
+ "typeString": "literal_string \"goo\""
+ },
+ "value": "goo"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "424:11:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Foo_$11_storage",
+ "typeString": "struct Foo storage ref"
+ }
+ },
+ "id": 67,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "436:2:0",
+ "memberName": "fd",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 10,
+ "src": "424:14:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_int256_$dyn_storage",
+ "typeString": "int256[] storage ref"
+ }
+ },
+ "id": 69,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 68,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "439:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "424:17:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "313030",
+ "id": 70,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "444:3:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_100_by_1",
+ "typeString": "int_const 100"
+ },
+ "value": "100"
+ },
+ "src": "424:23:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int256",
+ "typeString": "int256"
+ }
+ },
+ "id": 72,
+ "nodeType": "ExpressionStatement",
+ "src": "424:23:0"
+ }
+ ]
+ },
+ "id": 74,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 32,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "296:2:0"
+ },
+ "returnParameters": {
+ "id": 33,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "306:0:0"
+ },
+ "scope": 113,
+ "src": "285:169:0",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 111,
+ "nodeType": "Block",
+ "src": "483:145:0",
+ "statements": [
+ {
+ "expression": {
+ "id": 79,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 77,
+ "name": "a",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 20,
+ "src": "493:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "313031",
+ "id": 78,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "497:3:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_101_by_1",
+ "typeString": "int_const 101"
+ },
+ "value": "101"
+ },
+ "src": "493:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "id": 80,
+ "nodeType": "ExpressionStatement",
+ "src": "493:7:0"
+ },
+ {
+ "expression": {
+ "id": 85,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 81,
+ "name": "m1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 24,
+ "src": "510:2:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_int16_$_t_uint32_$",
+ "typeString": "mapping(int16 => uint32)"
+ }
+ },
+ "id": 83,
+ "indexExpression": {
+ "hexValue": "32",
+ "id": 82,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "513:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "510:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "3433",
+ "id": 84,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "518:2:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_43_by_1",
+ "typeString": "int_const 43"
+ },
+ "value": "43"
+ },
+ "src": "510:10:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 86,
+ "nodeType": "ExpressionStatement",
+ "src": "510:10:0"
+ },
+ {
+ "expression": {
+ "id": 93,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "baseExpression": {
+ "id": 87,
+ "name": "fMap",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 31,
+ "src": "530:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Foo_$11_storage_$",
+ "typeString": "mapping(string memory => struct Foo storage ref)"
+ }
+ },
+ "id": 89,
+ "indexExpression": {
+ "hexValue": "676f6f",
+ "id": 88,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "535:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d",
+ "typeString": "literal_string \"goo\""
+ },
+ "value": "goo"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "530:11:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Foo_$11_storage",
+ "typeString": "struct Foo storage ref"
+ }
+ },
+ "id": 90,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "542:2:0",
+ "memberName": "fb",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 5,
+ "src": "530:14:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 92,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "-",
+ "prefix": true,
+ "src": "547:5:0",
+ "subExpression": {
+ "hexValue": "31303032",
+ "id": 91,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "548:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1002_by_1",
+ "typeString": "int_const 1002"
+ },
+ "value": "1002"
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_minus_1002_by_1",
+ "typeString": "int_const -1002"
+ }
+ },
+ "src": "530:22:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int16",
+ "typeString": "int16"
+ }
+ },
+ "id": 94,
+ "nodeType": "ExpressionStatement",
+ "src": "530:22:0"
+ },
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 95,
+ "name": "revert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 4294967277,
+ 4294967277
+ ],
+ "referencedDeclaration": 4294967277,
+ "src": "563:6:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_revert_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 96,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "563:8:0",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 97,
+ "nodeType": "ExpressionStatement",
+ "src": "563:8:0"
+ },
+ {
+ "expression": {
+ "id": 102,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 98,
+ "name": "m1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 24,
+ "src": "581:2:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_int16_$_t_uint32_$",
+ "typeString": "mapping(int16 => uint32)"
+ }
+ },
+ "id": 100,
+ "indexExpression": {
+ "hexValue": "31",
+ "id": 99,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "584:1:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "581:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "3130",
+ "id": 101,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "589:2:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "src": "581:10:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint32",
+ "typeString": "uint32"
+ }
+ },
+ "id": 103,
+ "nodeType": "ExpressionStatement",
+ "src": "581:10:0"
+ },
+ {
+ "expression": {
+ "id": 109,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "expression": {
+ "baseExpression": {
+ "id": 104,
+ "name": "fMap",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 31,
+ "src": "601:4:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_Foo_$11_storage_$",
+ "typeString": "mapping(string memory => struct Foo storage ref)"
+ }
+ },
+ "id": 106,
+ "indexExpression": {
+ "hexValue": "676f6f",
+ "id": 105,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "606:5:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_55a1d10f5a7bb4b8da100e62a9ca0e09d2c8a171e25b4fb1435f0e1317a0810d",
+ "typeString": "literal_string \"goo\""
+ },
+ "value": "goo"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "601:11:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_struct$_Foo_$11_storage",
+ "typeString": "struct Foo storage ref"
+ }
+ },
+ "id": 107,
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "memberLocation": "613:2:0",
+ "memberName": "fa",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 3,
+ "src": "601:14:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "3131",
+ "id": 108,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "618:2:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_11_by_1",
+ "typeString": "int_const 11"
+ },
+ "value": "11"
+ },
+ "src": "601:19:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_int8",
+ "typeString": "int8"
+ }
+ },
+ "id": 110,
+ "nodeType": "ExpressionStatement",
+ "src": "601:19:0"
+ }
+ ]
+ },
+ "functionSelector": "5c36b186",
+ "id": 112,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "ping",
+ "nameLocation": "469:4:0",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 75,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "473:2:0"
+ },
+ "returnParameters": {
+ "id": 76,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "483:0:0"
+ },
+ "scope": 113,
+ "src": "460:168:0",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 114,
+ "src": "166:464:0",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "0:631:0"
+ },
+ "id": 0
+ }
+ }
+}
diff --git a/test/samples/local/layout_maps_fail/contracts/contracts/layout_maps.sol b/test/samples/local/layout_maps_fail/contracts/contracts/layout_maps.sol
new file mode 100644
index 0000000..3cf09ca
--- /dev/null
+++ b/test/samples/local/layout_maps_fail/contracts/contracts/layout_maps.sol
@@ -0,0 +1,38 @@
+pragma solidity 0.8.21;
+
+struct Foo {
+ int8 fa;
+ int16 fb;
+ string fc;
+ int[] fd;
+}
+
+struct MapStruct {
+ int8 msA;
+ mapping(address => uint) b1;
+}
+
+contract Layout_map {
+ uint8 a;
+ mapping(int16 => uint32) m1;
+ uint8 b;
+ mapping(string => Foo) fMap;
+
+ constructor() public {
+ a = 1;
+ b = 2;
+ m1[1] = 42;
+
+ fMap["goo"] = Foo(-1, 1000, "dy", new int[](1));
+ fMap["goo"].fd[0] = 100;
+ }
+
+ function ping() public {
+ a = 101;
+ m1[2] = 43;
+ fMap["goo"].fb = -1002;
+ revert();
+ m1[1] = 10;
+ fMap["goo"].fa = 11;
+ }
+}
diff --git a/test/samples/local/layout_maps_fail/txs/tx00.json b/test/samples/local/layout_maps_fail/txs/tx00.json
new file mode 100644
index 0000000..e8f10b1
--- /dev/null
+++ b/test/samples/local/layout_maps_fail/txs/tx00.json
@@ -0,0 +1,93 @@
+{
+ "initialState": {
+ "accounts": {
+ "0xAaaaAaAAaaaAAaAAaAaaaaAAAAAaAaaaAaAaaAA0": {
+ "nonce": 0,
+ "balance": "0x0000000000000000000000f000000000",
+ "code": "",
+ "storage": {}
+ },
+ "0xAaAaaAAAaAaaAaAaAaaAAaAaAAAAAaAAAaaAaAa2": {
+ "nonce": 0,
+ "balance": "0x0000000000000000000000f000000000",
+ "code": "",
+ "storage": {}
+ },
+ "0xafFEaFFEAFfeAfFEAffeaFfEAfFEaffeafFeAFfE": {
+ "nonce": 0,
+ "balance": "0x0000000000000000000000f000000000",
+ "code": "",
+ "storage": {}
+ }
+ }
+ },
+ "steps": [
+ {
+ "address": "0x0000000000000000000000000000000000000000",
+ "gasLimit": "0xff0000",
+ "gasPrice": "0x1",
+ "input": "0x608060405234801561000f575f80fd5b5060015f806101000a81548160ff021916908360ff1602179055506002805f6101000a81548160ff021916908360ff160217905550602a60015f6001800b81526020019081526020015f205f6101000a81548163ffffffff021916908363ffffffff16021790555060405180608001604052807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f0b81526020016103e860010b81526020016040518060400160405280600281526020017f64790000000000000000000000000000000000000000000000000000000000008152508152602001600167ffffffffffffffff81111561010b5761010a61027e565b5b6040519080825280602002602001820160405280156101395781602001602082028036833780820191505090505b50815250600360405161014b906102ff565b90815260200160405180910390205f820151815f015f6101000a81548160ff02191690835f0b60ff1602179055506020820151815f0160016101000a81548161ffff021916908360010b61ffff16021790555060408201518160010190816101b39190610520565b5060608201518160020190805190602001906101d0929190610218565b50905050606460036040516101e4906102ff565b90815260200160405180910390206002015f81548110610207576102066105ef565b5b905f5260205f20018190555061061c565b828054828255905f5260205f20908101928215610252579160200282015b82811115610251578251825591602001919060010190610236565b5b50905061025f9190610263565b5090565b5b8082111561027a575f815f905550600101610264565b5090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81905092915050565b7f676f6f00000000000000000000000000000000000000000000000000000000005f82015250565b5f6102e96003836102ab565b91506102f4826102b5565b600382019050919050565b5f610309826102dd565b9150819050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061036157607f821691505b6020821081036103745761037361031d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261039b565b6103e0868361039b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61042461041f61041a846103f8565b610401565b6103f8565b9050919050565b5f819050919050565b61043d8361040a565b6104516104498261042b565b8484546103a7565b825550505050565b5f90565b610465610459565b610470818484610434565b505050565b5b81811015610493576104885f8261045d565b600181019050610476565b5050565b601f8211156104d8576104a98161037a565b6104b28461038c565b810160208510156104c1578190505b6104d56104cd8561038c565b830182610475565b50505b505050565b5f82821c905092915050565b5f6104f85f19846008026104dd565b1980831691505092915050565b5f61051083836104e9565b9150826002028217905092915050565b61052982610313565b67ffffffffffffffff8111156105425761054161027e565b5b61054c825461034a565b610557828285610497565b5f60209050601f831160018114610588575f8415610576578287015190505b6105808582610505565b8655506105e7565b601f1984166105968661037a565b5f5b828110156105bd57848901518255600182019150602085019450602081019050610598565b868310156105da57848901516105d6601f8916826104e9565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610182806106295f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80635c36b1861461002d575b5f80fd5b610035610037565b005b60655f806101000a81548160ff021916908360ff160217905550602b60015f600260010b81526020019081526020015f205f6101000a81548163ffffffff021916908363ffffffff1602179055507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1660036040516100b490610138565b90815260200160405180910390205f0160016101000a81548161ffff021916908360010b61ffff16021790555f80fd5b5f81905092915050565b7f676f6f00000000000000000000000000000000000000000000000000000000005f82015250565b5f6101226003836100e4565b915061012d826100ee565b600382019050919050565b5f61014282610116565b915081905091905056fea26469706673582212209afc85b0006e5ba9fd94d0aa763eec28613e731ddcd180afdcb3bb6b9a10903364736f6c63430008150033",
+ "origin": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0",
+ "value": "0x0",
+ "blockCoinbase": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0",
+ "blockDifficulty": "0xc",
+ "blockGasLimit": "0xff0000",
+ "blockNumber": 1,
+ "blockTime": 1,
+ "result": {
+ "kind": "contract_created",
+ "address": "0xf084a83954ce917799e0b4dbd03934a2ea65888c"
+ }
+ },
+ {
+ "address": "0xf084a83954ce917799e0b4dbd03934a2ea65888c",
+ "gasLimit": "0xff0000",
+ "gasPrice": "0x1",
+ "input": "0x5c36b186",
+ "origin": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0",
+ "value": "0x0",
+ "blockCoinbase": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0",
+ "blockDifficulty": "0xc",
+ "blockGasLimit": "0xff0000",
+ "blockNumber": 2,
+ "blockTime": 2,
+ "result": {
+ "kind": "revert",
+ "value": ""
+ },
+ "layoutBefore": {
+ "a": "1",
+ "m1": {
+ "1": "42"
+ },
+ "b": "2",
+ "fMap": {
+ "goo": {
+ "fa": "-1",
+ "fb": "1000",
+ "fc": "dy",
+ "fd": ["100"]
+ }
+ }
+ },
+ "layoutAtFailure": {
+ "0xf084a83954ce917799e0b4dbd03934a2ea65888c": {
+ "a": "101",
+ "m1": {
+ "1": "42",
+ "2": "43"
+ },
+ "b": "2",
+ "fMap": {
+ "goo": {
+ "fa": "-1",
+ "fb": "-1002",
+ "fc": "dy",
+ "fd": ["100"]
+ }
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/test/unit/debug.spec.ts b/test/unit/debug.spec.ts
index 0b88563..4117f1d 100644
--- a/test/unit/debug.spec.ts
+++ b/test/unit/debug.spec.ts
@@ -292,7 +292,7 @@ describe("Local tests", () => {
});
if (forAny(testJSON.steps, (step) => step.layoutBefore !== undefined)) {
- it("Layouts ok (if specified)", async () => {
+ it("Layouts before tx ok (if specified)", async () => {
for (let i = 0; i < runner.txs.length; i++) {
const curStep = testJSON.steps[i];
@@ -340,6 +340,61 @@ describe("Local tests", () => {
}
});
}
+
+ if (forAny(testJSON.steps, (step) => step.layoutAtFailure !== undefined)) {
+ it("Layouts at failure ok (if specified)", async () => {
+ for (let i = 0; i < runner.txs.length; i++) {
+ const curStep = testJSON.steps[i];
+
+ if (curStep.layoutBefore === undefined) {
+ continue;
+ }
+
+ if (
+ !(
+ curStep.result.kind === ResultKind.Revert ||
+ curStep.result.kind === ResultKind.LastRevert ||
+ curStep.result.kind === ResultKind.FoundryFail
+ )
+ ) {
+ continue;
+ }
+
+ const tx = runner.txs[i];
+ const block = runner.getBlock(tx);
+ const stateBefore = runner.getStateBeforeTx(tx);
+ const [trace] = await solDbg.debugTx(tx, block, stateBefore);
+
+ const errorStep = getStepFailTraceStep(curStep, trace);
+
+ expect(errorStep).not.toBeUndefined();
+ assert(
+ errorStep !== undefined,
+ "Should be catched by prev statement"
+ );
+
+ const errorStepIdx = trace.indexOf(errorStep);
+ assert(errorStepIdx > 0, "");
+
+ const layout = await runner.getDecodedContractStatesOnTxStep(
+ tx,
+ errorStepIdx
+ );
+
+ expect(layout).toBeDefined();
+
+ const strLayout = JSON.stringify(
+ sanitizeBigintFromJson(layout),
+ undefined,
+ 2
+ );
+
+ expect(strLayout).toEqual(
+ JSON.stringify(curStep.layoutAtFailure, null, 2)
+ );
+ }
+ });
+ }
});
}
});